Commit Graph

32 Commits

Author SHA1 Message Date
weli 542fb2461a feat(htykc): add course_package CRUD with pagination and org scoping
Introduce course_package table and API for selling course templates.
Supports teacher-owned and org-wide active package queries with keyword
search, sort order, and pagination.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 08:15:12 +08:00
weli 25d33e76d3 chore: moicen manual enqueue script for IMAGE_FORM_COMPRESS PG+Redis
Made-with: Cursor
2026-04-28 10:26:08 +08:00
weli 5cd016cd5d feat(htyproc): IMAGE_FORM_COMPRESS task posts form_image_compress_audit to ai-api
Made-with: Cursor
2026-04-28 10:14:27 +08:00
weli c310769dd4 fix(migration): add_clazz_completed_at 使用 IF NOT EXISTS 便于重复执行
Made-with: Cursor
2026-04-28 00:45:03 +08:00
weli aaa7490a04 fix: tolerate ref-resource errors in course section list APIs
Downgrade list failures when loading ref resources for a section so one bad row does not fail the entire page; log warn with section id.

Made-with: Cursor
2026-04-28 00:25:39 +08:00
weli 2155c66a3b fix(ws-org): enforce org-scoped lianxi relation lookups
Require current_org_id for lianxi deletion and relation traversal, and add org-scoped relation lookups to prevent cross-organization hits in daka/jihua counters.

Made-with: Cursor
2026-04-27 23:20:52 +08:00
weli 07ee6e7cc6 feat(ws-org): add org_id scoping across ws entities
Add org_id fields and migrations for course, section, lianxi, piyue, and jihua/daka data paths, and enforce organization-scoped filtering in ws service queries.

Made-with: Cursor
2026-04-27 23:06:58 +08:00
weli 83f657388c fix(ws-org): enforce current_org_id for teacher-student APIs
Require organization context in teacher/student relation reads and writes, and prevent fallback to cross-organization queries.

Made-with: Cursor
2026-04-27 22:38:59 +08:00
weli c5134c9356 feat(org): enforce tenant isolation in ws/kc with leave and stats APIs
Add org_id schema migrations and service-level filtering for teacher-student and class workflows, then cover org-context behavior with focused unit/e2e tests for leave and hour statistics.

Made-with: Cursor
2026-04-27 20:12:02 +08:00
weli a15b5dbf58 fix(htyproc): convert task_result values to string in wrap_common_task; preserve body text in parse_hty_response on JSON error 2026-04-27 00:32:09 +08:00
weli 2f10cebeca htyproc: add DEBUG trace for task pipeline, TS client, and AI polling
Made-with: Cursor
2026-04-27 00:00:48 +08:00
weli d9b4171771 htyproc: replace local HtyResp with HtyResponse from htycommons 2026-04-26 23:50:25 +08:00
weli 7379b64217 htyproc: add detailed tracing to AI_SCORE pipeline 2026-04-26 23:42:03 +08:00
weli eca81f0134 htyproc: dynamic sudo token via loginWithCert → sudo, drop PROC_SUDOER_TOKEN 2026-04-26 23:15:08 +08:00
weli eee06c31ca refactor(notifications): 模版占位符 QUMU_NAME/COURSE_SECTION → COURSE_NAME/COURSE_SECTION 2026-04-26 22:58:13 +08:00
weli 8af2bc18c9 moicen: start htyproc from release binary when present
Made-with: Cursor
2026-04-26 21:25:33 +08:00
weli c30b5b927e fix(htyts): add trailing slash route /api/v1/ts/ to match nginx proxy_pass
nginx proxy_pass with location /api/v2/ts/ strips the prefix and appends
the remaining path to /api/v1/ts/, resulting in /api/v1/ts/ for root requests.
axum routes are exact-match by default, so add the trailing slash variant.
2026-04-26 20:47:00 +08:00
weli 220265195c feat(moicen): htyts 预检脚本与一键栈 release 检测含 htyts/htyproc
- scripts/moicen_htyts_smoke.sh:Redis、PG/dbtask、本机 TS HTTP、可选公网 v2
- moicen_start:存在 target/release/htyts|htyproc 时也使用 --release

Made-with: Cursor
2026-04-26 20:30:55 +08:00
weli 517023a6cd feat(moicen): htyts/htyproc 与一键栈一致的 nohup 与 logrotate 日志
- start.sh:清代理、可选 --release、追加 *.nohup.log
- moicen_start:默认在有 htyproc/.env 时起 htyproc(MOICEN_START_HTYPROC=0|no 可关)
- moicen_stop:pkill 含 htyproc

Made-with: Cursor
2026-04-26 20:22:15 +08:00
weli 917685eeb5 feat(moicen): 默认在有 htyts/.env 时随栈启动 htyts
MOICEN_START_HTYTS=0|no 可关闭;显式 1|yes 仍可用。更新脚本说明。

Made-with: Cursor
2026-04-26 20:14:49 +08:00
weli 0e53c9f66d feat(htykc): clazz completed_at migration; logrotate for htykc/htyproc/htyts
Portable run_rotate; moicen_start_huiwings_stack and ws_clazz updates; schema/models sync.

Made-with: Cursor
2026-04-26 17:14:44 +08:00
weli dcb0d3c365 chore(moicen): add env/bootstrap scripts for split AuthCore layout
Make moicen env copying compatible with sibling AuthCore repo and add start/stop/build helper scripts for huiwings stack bring-up on moicen hosts.

Made-with: Cursor
2026-04-25 15:06:11 +08:00
weli 2d7a46a927 feat: add huike_push_info for PushInfo extra accessors; update notifications
Made-with: Cursor
2026-04-24 09:17:32 +08:00
weli 86b1a988a9 chore: 移除 workspace 开源许可证字段(私有仓库)
Made-with: Cursor
2026-04-24 08:35:15 +08:00
weli d1f7db2ab7 ci: sibling 检出 AuthCore 以匹配 Cargo [patch] ../AuthCore
GHA 默认只检出 huike-back,导致 ../AuthCore 不存在。将本仓库检出到 huike-back/、AuthCore 检出到同级目录,并在子目录运行 cargo check;rust-cache 指向 huike-back workspace。

根 Cargo.toml 保留 ../AuthCore patch,避免把 AuthCore 嵌进本 workspace(否则会继承 huike-back 的 workspace.dependencies 而缺依赖)。

Made-with: Cursor
2026-04-24 08:07:30 +08:00
weli bcd2c50729 feat(htykc): clazz 命名迁移、消课点名与 Diesel 迁移
将课程相关表与 API 从 kecheng 迁至 clazz;新增消课/点名迁移;htyws 路由同步;工作区依赖 patch AuthCore。

Made-with: Cursor
2026-04-24 07:43:05 +08:00
weli 1fbd3b7e29 docs update backend ci badge links
Point README CI badge to the current huike-back repository workflow URL.

Made-with: Cursor
2026-04-23 21:50:46 +08:00
weli 4f00f215fc ci add github actions workflow for rust workspace checks
Run cargo check for the backend workspace with required Postgres build dependencies on push/pull_request.

Made-with: Cursor
2026-04-23 21:40:55 +08:00
weli 15dc2c1a3c refactor course_category naming and add jsonb migration runbook
Rename remaining qumu_category db artifacts to course_category and document jsonb key migration procedure for existing production data.

Made-with: Cursor
2026-04-23 21:39:13 +08:00
weli ec85a319a1 Update README.md 2026-04-23 17:22:13 +08:00
weli 44c320d8fa chore add core rust project files and diesel migrations
Track required workspace crates, scripts, and historical diesel migrations so the repository contains the complete runnable backend baseline.

Made-with: Cursor
2026-04-23 17:20:01 +08:00
weli c843fecbce refactor teaching domain naming to course/course_section/course_group
Add diesel migrations and synchronize backend/frontend model fields plus jsonb key migration to support generic teaching subjects beyond piano-specific naming.

Made-with: Cursor
2026-04-23 17:16:10 +08:00