3.0 KiB
3.0 KiB
Chat Diagnosis StateGraph ChatService Cutover 验收
结果
已接受。OpenSpec tasks 26/26 完成,阶段 3 可归档。
验证
静态验证
git diff --check:通过。- source/reference isolation:cutover 核心文件中的
SequentialAgent、VerifierContextHolder、VerifierInputHook、tool_trace_summary命中 0;核心 TODO/FIXME/placeholder 命中 0。 - schema whitelist:V012 为 1 个 ALTER TABLE、1 个 ADD COLUMN、0 CREATE、0 DROP,目标仅
diagnosis_run.orchestration_trace JSON NULL。 openspec validate chat-diagnosis-stategraph-chatservice-cutover --strict:通过。openspec validate --specs --strict:14 passed,0 failed。
脚本验证
- focused Maven regression:Graph runtime/result mapper/real nodes、ChatService cutover、Trace、Controller、Repository、Gatekeeper、Composer、Eval,共 27 suites / 119 tests;0 failures、0 errors、0 skipped。
mvn -q -DskipTests test-compile:通过。ChatServiceGraphIntegrationTest覆盖 SUCCESS、handled Fallback、unhandled failure、blank answer/partial trace 和同 session 多 Run 隔离。
浏览器/人工验证
- 未运行。阶段 3 的公开协议由 Controller/service tests 覆盖,完整人工/live 验收按用户规则保留到阶段 5。
未验证
- 未使用 Maven 启动应用做 live E2E。
- 未检查
logs/运行日志。 - 未执行
scripts/query_mysql.py查询真实数据库。 - 原因:用户明确要求只有阶段 5 全部完成后统一执行端到端、日志和数据库验收;阶段 3 只做风险相关自动化验证。
- 剩余风险:真实模型/工具调用下的 Prompt 行为、Flyway 在真实 MySQL 的应用结果和最终 Trace 数据须由阶段 5 E2E 证明。
已完成范围
- 复杂 Chat 唯一生产编排切换到 Diagnosis StateGraph,公开 ChatResult 保持兼容。
- Run 生命周期、metrics、Eval、finally cleanup 与 runId 隔离保持;handled Fallback=SUCCESS,未处理/空答案=FAILED。
- 新增 Run 级 compact orchestration trace,并只在 Trace run 对象暴露解析结果。
- Verifier Prompt/self-evaluation 使用 verified-only 数据,不伪造未发生 verdict/event。
- 移除冲突的 Sequential 实现测试并以 Graph/public contract tests 替代。
Bug 修复和诊断
- 替代测试错误引用
com.superbiz.agent.tool.ToolInvocationRecorder:通过定义/引用搜索确认类型位于同一service包,删除错误 import。 - no-answer 新测试错误期待 inner cause:分类为测试断言偏差,改为公开 wrapper error,同时保留 FAILED 与真实 partial trace 核心断言。
交接
- OpenSpec archive:已同步 5 份 delta specs,并归档到
openspec/changes/archive/2026-07-17-chat-diagnosis-stategraph-chatservice-cutover/。 - 下一步:审查精确 Git diff 并完成阶段 3 独立提交,之后才启动阶段 4。
- OpenSpec 归档确认:用户已明确授权后续阶段直接实现/归档;归档已完成。