2 Commits

Author SHA1 Message Date
Yaojia Wang
548b7abd6f feat(db): C3 langgraph 检查点建表迁移 + alembic 漂移豁免
多章工作流链(docs/design/chain-workflow.md §4/§7)唯一新增 DDL:langgraph
检查点四表(checkpoints/checkpoint_blobs/checkpoint_writes/checkpoint_migrations)。

- 新增迁移 d3e4f5a6b7c8:在迁移内调 langgraph 同步 PostgresSaver.setup() 建表
  (DDL 只在 migrations/CI,绝不 app-runtime)。从 database_url 派生 psycopg
  conn string(去 +asyncpg),与 alembic 的 asyncpg 连接解耦。
- §11 风险落地:setup() 跑 CREATE INDEX CONCURRENTLY,不能在事务块内且会与
  alembic 开着的事务死锁 → 用 op.get_context().autocommit_block() 先提交退出
  事务块再建表。downgrade 幂等 DROP ... CASCADE。
- env.py 加 include_object:langgraph 四表不在 Base.metadata,过滤掉以免
  alembic check 误报漂移。
- jobs 表零迁移(C2 判定:result.awaiting_chapter 表达待裁决,复用现有状态枚举)。

验证:alembic upgrade head 应用、downgrade/re-upgrade 往返、alembic check
无漂移;ruff/format/mypy(packages/db) 全绿。
2026-06-23 17:23:06 +02:00
Yaojia Wang
d3dc620a71 feat: Phase 0 — monorepo 骨架 + 全表迁移 + FastAPI/Next 骨架 + CI
- uv(workspace) + pnpm monorepo;docker-compose(pg+api+web)
- SQLAlchemy 16 MVP 表 + Alembic 初版迁移(无漂移,users stub)
- FastAPI 骨架:统一错误信封(带 request_id) + structlog + /jobs/:id + OpenAPI
- Next.js 骨架:纸感主题 token + OpenAPI→TS 客户端代码生成(gen:api)
- CI(ruff/mypy/pytest + pg service + alembic 漂移校验)
- 四份设计规格(PRODUCT/UX/ARCHITECTURE/DEV_PLAN) + CLAUDE.md
2026-06-18 11:38:28 +02:00