auto-sync: 2026-06-01 22:41:30

This commit is contained in:
cfdaily
2026-06-01 22:41:30 +08:00
parent 9ced211c23
commit aafac1854c
+67 -9
View File
@@ -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 | ⬜ 本轮更新 |