feat(harness): add canonical tool invocation boundary
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user