Yaojia Wang
7f3eaaba3d
feat(orchestrator): C1 多章工作流链图 — write→review→decide→accept 有环图
实现 chain-workflow 设计 §3 的 LangGraph 链图,激活休眠资产
(checkpointer + interrupt-on-conflict)。
- packages/core/ww_core/orchestrator/chain/{state,nodes,graph}.py:
- ChainState(§3.1):只放控制流(章号/计数/written/has_conflicts),
正文/审稿/冲突明文落领域表,resume 重读(不变量 #1/#3/#5)。
- 四节点 write_chapter/review_chapter/decide/accept_chapter(§3.2):
各自短事务、独立 session;decide 纯逻辑读最近审稿留痕定 has_conflicts;
accept 节点起始处遇冲突 interrupt() 暂停交人,恢复值=裁决清单。
- build_chain_graph(§3.3 签名):节点 DB 依赖经 session_factory +
repo 工厂 + assemble/accept_op 闭包默认参绑定(langgraph 不收 partial);
条件边实现循环(current<=last 回 write)+ interrupt。
- 验收事务(apps/api)经 accept_op 闭包注入,守目录所有权 + 不变量 #3/#4。
- 收集版写章:复用 build_write_request 同一组装路径(stream=False → run)。
- 删除无人调用的 build_write_graph 工厂(write_node 本体保留,被链复用);
清理其 __init__ 导出 + 旧单节点图单测(YAGNI,解决审计死代码)。
- 单测(mock gateway + fake session_factory + fake repos + MemorySaver):
无冲突全跑到 END 且 written 满 / 有冲突→__interrupt__ / resume(Command)→
accept→END / decide 纯逻辑 / accept 推进章号;零 token 零联网。
门禁:packages ruff/format/mypy 干净;pytest 314 passed。
2026-06-23 16:54:47 +02:00
..
2026-06-18 14:21:17 +02:00
2026-06-23 16:54:47 +02:00
2026-06-18 11:38:28 +02:00
2026-06-21 19:32:24 +02:00
2026-06-18 11:38:28 +02:00
2026-06-18 14:21:17 +02:00
2026-06-21 19:32:24 +02:00
2026-06-18 14:21:17 +02:00
2026-06-20 10:39:58 +02:00
2026-06-20 10:39:58 +02:00
2026-06-20 11:31:59 +02:00
2026-06-20 10:39:58 +02:00
2026-06-20 18:25:00 +02:00
2026-06-23 16:54:47 +02:00
2026-06-18 14:21:17 +02:00
2026-06-18 14:21:17 +02:00
2026-06-18 11:38:28 +02:00
2026-06-22 18:28:04 +02:00
2026-06-20 10:39:58 +02:00
2026-06-20 10:39:58 +02:00
2026-06-20 10:39:58 +02:00
2026-06-22 20:37:55 +02:00