From aafac1854cc617f8a585152ab0de908be7ce4fbd Mon Sep 17 00:00:00 2001 From: cfdaily Date: Mon, 1 Jun 2026 22:41:30 +0800 Subject: [PATCH] auto-sync: 2026-06-01 22:41:30 --- docs/design/archive-2.0/test-plan-v2.6.md | 76 ++++++++++++++++++++--- 1 file changed, 67 insertions(+), 9 deletions(-) diff --git a/docs/design/archive-2.0/test-plan-v2.6.md b/docs/design/archive-2.0/test-plan-v2.6.md index 7e7cb26..076dc30 100644 --- a/docs/design/archive-2.0/test-plan-v2.6.md +++ b/docs/design/archive-2.0/test-plan-v2.6.md @@ -290,16 +290,74 @@ def mock_spawner(): | F3 | ✅ | ✅ 11 | ✅ | ✅ 11/11 | ✅ 通过 | | F4 | ✅ | ✅ 14 | ✅ | ✅ 14/14 | ✅ 通过 | | F5 | ✅ | ✅ 23 | ✅ | ✅ 23/23 | ✅ 通过(附 1 条意见) | -| F6 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F7 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F8 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F9 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F10 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F11 | ✅ 本文档 | ⬜ 本文档 | ⬜ | — | — | -| F12 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | +| F6 | ✅ 本文档 | ✅ 17 | ✅ | ✅ 通过 | ✅ | +| F7 | ✅ 本文档 | ✅ 5 | ✅ | ✅ 通过 | ✅ | +| F8 | ✅ 本文档 | ✅ 4 | ✅ | ✅ 通过 | ✅ | +| F9 | ✅ 本文档 | ✅ 16 | ✅ | ✅ 通过 | ✅ | +| F10 | ✅ 本文档 | ✅ 13 | ✅ | ✅ 通过 | ✅ | +| F11 | ✅ 本文档 | ✅ 10 | ✅ | ✅ 通过 | ✅ | +| F12 | ✅ 本文档 | ✅ 13 | ✅ | ✅ 通过 | ✅ | | F13 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | | F14 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F15 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | +| F15 | ✅ 本文档 | ✅ 4 | ✅ | ✅ 通过 | ✅ | | F16 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | -| F17 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | +| F17 | ✅ 本文档 | ✅ 6 | ✅ | ✅ 通过 | ✅ | | F18 | ✅ 本文档 | ⬜ 待设计 | ⬜ | — | — | + +--- + +## 八、v2.8 新增测试(2026-06-01 更新) + +> 覆盖 #07 Spawner Acquire-First + Prompt v3.0 + _check_timeouts 统一 + +### F6-ext: Ticker _check_timeouts 增强(新增 4 个测试) + +| # | 测试用例 | P0 | 验证点 | +|---|---------|-----|-------| +| T-ext1 | crash_limit 统一检查(working) | ✅ | executor crash 3 次/30min → _check_timeouts 标 failed | +| T-ext2 | crash_limit 统一检查(review) | ✅ | reviewer crash 3 次/30min → _check_timeouts 标 failed | +| T-ext3 | updated_at fallback | ✅ | mail auto-working 无 started_at → updated_at fallback → 超时回收 | +| T-ext4 | process_dead 对 review 状态 | ✅ | review agent 进程死 → 保持 review(不推 pending) | + +### F9-ext: Spawner Acquire-First(新增 6 个测试) + +| # | 测试用例 | P0 | 验证点 | +|---|---------|-----|-------| +| T-ext1 | Phase 0 Pre-acquire revive | ✅ | timeout/failed → revive → acquire 成功 | +| T-ext2 | Phase 0 假死检测 | ✅ | status=running + lock PID 死 → revive | +| T-ext3 | Phase 1 Counter acquire 互斥 | ✅ | 并发 spawn → 第二个 AgentBusyError(counter_blocked) | +| T-ext4 | Phase 2 Session check 锁保护 | ✅ | acquire 后 → session locked → release counter → AgentBusyError(session_locked) | +| T-ext5 | Phase 2 多 blockers 收集 | ✅ | locked + compact → detail.blockers 列表 | +| T-ext6 | Phase 3 on_checks_passed 异常回滚 | ✅ | 回调异常 → counter 自动 release | + +### F9-ext2: Compact Hanging + Retry(新增 3 个测试) + +| # | 测试用例 | P0 | 验证点 | +|---|---------|-----|-------| +| T-ext1 | compact_hanging release counter | ✅ | compact 超限 → 不标 failed → release counter → 任务保持 working | +| T-ext2 | compact_hanging ticker 重新 dispatch | P1 | compact_hanging → ticker 超时 → pending → 重新 dispatch | +| T-ext3 | retry 遇 busy 释放 counter | ✅ | _do_retry 遇 AgentBusyError → release counter → 任务保持 working | + +### F9-ext3: AgentBusyError 分类(新增 3 个测试) + +| # | 测试用例 | P0 | 验证点 | +|---|---------|-----|-------| +| T-ext1 | counter_blocked | ✅ | counter acquire 失败 → reason=counter_blocked | +| T-ext2 | session blockers | ✅ | session locked/running/compacting → reason + detail.blockers | +| T-ext3 | Dispatcher 错误区分 | ✅ | AgentBusyError → 路由决策记录具体原因 | + +### 设计文档引用 + +- `docs/design/07-spawner-acquire-first.md`:#07.1 Acquire-First、#07.2 Executor/Review 统一、#07.3 Startup Recovery +- `docs/design/03-prompt-evolution.md`:Prompt v3.0 任务式指挥 +- `docs/design/06-pm2-crash-recovery.md`:PM2 crash 恢复设计(启动恢复机制,待实施) + +### E2E 测试文件映射 + +| 文件 | 覆盖范围 | 状态 | +|------|---------|------| +| `tests/test_e2e_v27.py` | E1-E10 API + 状态机 + 真实 Agent | ✅ 已有 | +| `tests/test_e2e_v31.py` | v3.1 E2E 集成 | ✅ 已有 | +| `tests/test_e2e_four_phase.py` | #01 四相循环 E2E | ✅ 已有 | +| `tests/test_four_phase_unit.py` | #01 四相循环单元测试 | ✅ 已有 | +| E11-E15 新增用例 | 待添加到 test_spawner.py / test_ticker.py / test_dispatcher.py | ⬜ 本轮更新 |