代码修复:
- SessionPool 的 scope 参数从未真正从 graph-engine 传到 AgentManager,导致 fan-out
场景下同一 agent 的并发调用会撞会话键;补上生产接线(graph-engine.js/agent-manager.js)
- advanceTree 改成 Promise.allSettled 并发推进兄弟子 run(原来只推最深的一个)
- graph-real-chain-smoke.test.js 补齐多节点/回退边/双层熔断的真实链路覆盖
真实验证:
- 27-P3B 最后一条验收(org 层回退边指向 subgraph 节点)用隔离 worktree 真实 Claude CLI
跑通并记录证据(§六quater)
- 27-P3B 正文里 W5/W6/W7/W9 的"仍未验"备注核实后发现均已被此前的真跑验过,只是没回填;
W8(重新规划组织按钮)此前确实没验过,本轮用隔离 worktree + 真实浏览器点击补验
文档收口:
- 27-P3B、27-P4 两份文档功能与验收均已完整,移入 docs/done/,更新全部交叉引用
- T5(账户欠费门真实计费接口)按用户决定移入 docs/todo/future/,不阻塞收口
- 订正两处过期判断:graph_edge_contracts.role 列早已落库、CONVENTIONS.md 非 spec:extract 生成物
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JnCKUFSGvdz4SY7BvYWdMU