feat: add A-card operations frontend and backend foundation
This commit is contained in:
@@ -10,7 +10,9 @@
|
||||
- `migrations` — Alembic schema + seed migrations.
|
||||
- `nginx` — static frontend, `/api/` proxy, authenticated `/jupyter/` proxy.
|
||||
|
||||
Redis and the former separate Storage API container are intentionally removed.
|
||||
Redis is reintroduced only for the A-card operations query cache and event
|
||||
Streams. MySQL Outbox remains authoritative, and Redis outages must not block
|
||||
core APIs. The former separate Storage API container remains removed.
|
||||
|
||||
## Commands
|
||||
|
||||
@@ -135,4 +137,4 @@ Lessons from splitting `frontend/app/features/schedules/state/schedulesStore.ts`
|
||||
- **前端 — 页面 vs 路由 wrapper**:Page 组件持有 useState,route 文件只做 `<Page key={...} />` 重挂载,二者不要混在一起。
|
||||
- **拆分前先列调用面**(`grep "from <old_path>"`),任何外部 import 路径必须仍然可用 — 用 re-export 或 shim 兜底,不要让调用方被迫改。
|
||||
- **拆分后**每个新文件 ≤ 500 行是硬约束,验证方式:`wc -l <file>` 或 CI 脚本。
|
||||
- 拆分本身是**纯结构调整**,endpoint 行为 / URL / 响应 schema 零变化 — 不要顺手"清理"。
|
||||
- 拆分本身是**纯结构调整**,endpoint 行为 / URL / 响应 schema 零变化 — 不要顺手"清理"。
|
||||
|
||||
Reference in New Issue
Block a user