1.9 KiB
1.9 KiB
Acceptance: single-react-tool-invocation-store
实现结果
- 新增 canonical record/limits/exceptions/store interface/Redis JSON adapter。
- 新增 ToolBoundary envelope/result、executor/projector interfaces 和稳定错误码。
- 实现 preflight、Run/Tool budget、Run capacity、PROJECTING、READY/ERROR、evidence semantics、TTL 和 UTF-8 limits。
- 旧 ToolInvocationRecorder、JPA、Chat/AIOps、Controller、Repository 和公开协议未修改。
静态验证
openspec validate single-react-tool-invocation-store --strict:通过。- 新 Harness 包 Redis 引用仅为
RedisCanonicalInvocationStore。 - legacy recorder/JPA/Chat/AIOps/Controller/repository/resources diff:为空。
- staged diff check 与 Secret scan:提交前执行并通过。
脚本验证
mvn -q -DskipTests compile:通过。mvn -q '-Dtest=CanonicalInvocationStoreTest,ToolBoundaryTest' test:通过。- 综合阶段 0/1/2/3A suite(含 Harness/ACI/Core/retry/key/config/ChatController):通过。
浏览器/人工验证
- 不适用。本阶段没有 UI、Controller、SSE 或公开协议变化。
未验证
- 未连接真实 Redis,未做 ACL/network/TTL live 验证;最终 E2E 阶段执行。
- 未接入 Alibaba ToolInterceptor,真实框架 ID 传播留给后续 Agent/application stage。
- 未实现 RAG/log/MySQL projector,留给 3B/3C。
- canonical update 的 read-TTL-write 并发窗口已记录为风险,尚未 Lua/CAS 化。
剩余风险与后续门禁
- 新旧 JPA audit 与 canonical store 短期并存,后续 projector 必须只以新 boundary 的 READY record 作为引用来源。
- 下一阶段 3B/3C 必须复用本 ToolBoundary,不复制 Redis 状态机。
状态
- Stage acceptance: accepted
- OpenSpec archive: archived at
openspec/changes/archive/2026-07-21-single-react-tool-invocation-store - Main spec sync:
openspec/specs/canonical-tool-invocation-store/spec.md(7 added requirements)