aps-agent/docs/round-67-approval-migration...

58 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Round 67 多智能体并行实施计划
日期:2026-08-03
## 1. 边界
- W67-MIGRATE 独占:`server/agent_core/approval_migrate.py`。
- W67-TEST 独占:`tests/golden/test_approval_migration.py`。
- 主 agent:GitNexus/Serena 门禁、契约协调、全量回归、真实运行、文档和最终审计。
- worker 不修改彼此文件,不提交,不触碰现场数据。
## 2. 协议约束
- canonical digest 复用 `server.agent_core.approval_store.token_digest`。
- 迁移执行分两阶段:持有文件后端同一 `.lock` 完成全量 load/validate/normalize -> 单 SQLAlchemy Session 事务写入/legacy 修复 -> source digest 复核 -> commit。
- grant 缺 pending request 时从 grant/history 重建 APPROVED request。
- 冲突判断比较不可变身份字段;允许目标状态单调前进,禁止回退覆盖。
- 同时检查 digest/raw-token/confirm_id 三路遗留,canonical event digest 对完整 payload 去重。
- 缺失源文件和损坏源文件必须具有不同结果;未设置 quiesced 必须拒绝。
## 3. Worker 验收
### W67-MIGRATE
- token digest 正确;原 token 不落 DB。
- JSON/schema/记录/引用预检失败关闭。
- 目标冲突失败;一致记录幂等 skipped;合法状态前进不误报。
- legacy raw-token 一致行原子改主键,不一致需人工处置。
- 任一预检或后段故障均整体回滚。
### W67-TEST
- 迁移后 consume once。
- raw token 不落库。
- 损坏 JSON、顶层类型、三类记录非法、引用错误。
- 目标记录不可变字段冲突、状态前进/回退。
- 终态 request 重建、canonical event digest 近似事件、legacy raw-token 修复/冲突。
- quiesced/锁/source digest 与后段故障整体回滚。
- dry-run、缺失文件、幂等旧测试不回归。
## 4. 集成顺序
1. 主 agent 锁定源/目标契约和错误语义。
2. W67-MIGRATE 与 W67-TEST 分离写入并通信对齐。
3. focused -> approval 相关 suites -> full golden。
4. 临时 SQLite 真实迁移/消费证据与现场 hash 保护。
5. detect_changes、文档、独立只读审计。
## 5. Pre-target-merge
仅形成未提交工作区与验收证据;未经授权不 commit/push/merge/release/cleanup。
## 6. 实际执行
- W67-MIGRATE / W67-TEST 均因长时间无回传被关闭;两者已有工作区修改由主 agent 接管,写边界未扩散。
- 主 agent 修复真实 ApprovalStore history 的 `decidedAt` 兼容、orphan grant terminal history 要求、lint 与 legacy payload 身份 blocker。
- 最终:29 focused、74 approval、1053 full golden;计划审计与代码审计均 PASS。