aps-agent/docs/round-70-approval-database-...

3.2 KiB
Raw Permalink Blame History

Round 70 多智能体并行实施计划:审批数据库权威 Clock / TTL / CAS

日期:2026-08-04 状态:PLAN AUDIT: PASS 原则:写边界互斥;测试智能体不得直接修改实现文件;主 agent 负责最终集成和门禁。

1. 依赖图

W70-DISCOVERY
  ├─ W70-CLOCK
  ├─ W70-SCHEMA
  └─ W70-TEST-DESIGN
         ↓
      Main integration
         ↓
      focused regression
         ↓
      independent audit/fixes
         ↓
      full golden + runtime + detect_changes

W70-DISCOVERY 已完成:确认 MySQL DDL 当前为 FLOAT;本机 Docker daemon 不可用且无 mysql client;DatabaseApprovalStore LOW impact,ApprovalRequestRecord HIGH impact。

2. Worker 边界

W70-CLOCK

  • 写:server/agent_core/approval_db_store.py
  • 不写:models、migration、tests、Harness/API
  • 交付:dialect-aware transaction clock;同 session DB now;request CAS expiry;grant consume/expire;fail-closed 错误分类。
  • 自检:approval clock/store focused tests、Ruff、compileall。

W70-SCHEMA

  • 写:server/db/models.py
  • 新建:server/db/migrations/versions/20260804_01_approval_database_clock.py
  • 不写:approval store 逻辑、tests、API
  • 交付:六个 epoch 字段 MySQL DOUBLE variant;upgrade/downgrade;新 revision;InnoDB/索引/FK 不漂移。
  • 自检:MySQL/SQLite DDL 编译、migration upgrade/downgrade、Ruff、compileall。

W70-TEST

  • 新建:tests/golden/test_approval_database_clock.py
  • 必要时写:tests/golden/test_approval_database_store.py
  • 不写:生产代码、migration、docs
  • 交付:TTL 边界、应用时钟偏移无权威性、DB clock 失败关闭、approve/expire、consume/expire、事务回滚、MySQL DOUBLE/SQL 编译。
  • 自检:新测试 + 现有 approval database/migration/store/harness 回归。

Main agent

  • 写:Round 70 文档、plan.md、完成矩阵、CHANGELOG;必要的窄集成修复需先 impact。
  • 负责:合并审阅、全量回归、数据保护、服务健康、GitNexus reindex/detect_changes、独立只读审计。

3. 集成策略

  1. W70-SCHEMA 先提供 revision/type 合同,W70-CLOCK 只引用新 required revision,不接触 migration。
  2. W70-TEST 可先基于约定接口写测试;最终由主 agent 对齐具体私有函数名。
  3. Worker 之间不得互相修改对方文件;如发现接口不一致,通过消息交给主 agent 集成。
  4. 任何修改 Harness/API/文件 backend 的需求视为扩界,停止并重新 impact。

4. 最终验收

  • 本地合同全部通过后,结论为 R67-B2 LOCAL PASS / EXTERNAL MYSQL PENDING。
  • 无真实 MySQL 8、多节点、时钟偏移、网络/HA 故障注入证据时,完成矩阵保持 Partial external。
  • 最终审计必须区分 SQLite 合同、MySQL 方言编译和真实 MySQL 环境三种证据层级。

5. Pre-target-merge gate

本轮明确不 commit/merge。未来若获授权,主 agent 必须先报告:

  • HIGH impact 模型变更和迁移风险;
  • 数据库时间、TTL、CAS 与事件原子性证据;
  • SQLite 与真实 MySQL 的验收边界;
  • 全量回归、detect_changes 和未关闭外部风险;

并等待用户确认后才能进入 target merge。