Close FEATURE-MATRIX evidence gaps for multi-intent U8 and workflow full/none; release the integration slot after live PASS. Co-authored-by: Cursor <cursoragent@cursor.com>
5.1 KiB
5.1 KiB
Wave 2 PU4 真实 PI 补证(U8 + full/none)测试报告
一、 测试背景 (Background)
Wave 0 校准后,FEATURE-MATRIX 将 multi-intent U8 与工作流 full/none 标为证据缺口:U8 仅有 adapter 单测与 TestTaskGenerateRealPIStopGate 假 SKIP;full/none 仅有设置页矩阵,缺少真实 PI 长链。本轮在隔离 PG + 共享 data/dev/workspaces + 产品 PI Runner(MiniMax-M2.7-highspeed)上补证,不升 MULTI_INTENT_PLAN_TIER。
二、 测试目标 (Test Objectives)
- U8:确认前零副作用 → 确认后真实 PI generate → 幂等重放 → 撤权 → PG 重启恢复 → HTTP 刷新 GET
- full:intake 真实 PI + 跨用户 author/reviewer/approver
- none:research 真实 PI + submit-review 403 + 阶段就绪不阻塞 + 推进 + settings 刷新
- 发现的产品缺陷就地修复并回归;不得用 stub/SKIP 冒充 PASS
三、 测试方案与环境 (Test Plan & Environment)
| 项 | 值 |
|---|---|
| OS | Linux 7.0.0-31-generic |
| Go | go test(非 -short) |
| 隔离 PG | 127.0.0.1:5434/agent_wave2_pi(schema 47) |
| Runner | http://127.0.0.1:18865,model MiniMax-M2.7-highspeed |
| DATA_DIR | data/dev(与容器 workspaces 绑定) |
| 分支 | feature/wave2-real-pi-evidence |
| 用例 | TestMultiIntentU8_RealPI_ConfirmGenerate_PG;TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain |
| 证据 | .doc/test-reports/assets/2026-09-16-wave2-real-pi-evidence/ |
本轮顺带修复:
intent_plan_steps.depends_on/intent_plan_decisions.step_ids空切片落 NULL →textArrayOrEmptytaskrun.completed终态事件消费者误写projection/fav→ 改为登记的notifyintent.plan.step_changed与 plan 级事件共享(aggregate_type,id,version)冲突 → step 使用intent_plan_step聚合;AdvanceEligible全失败时不再吞错
四、 预期结果 (Expected Results)
- U8:
starts=0直至 Advance;PIcompleted;重放 starts=1;Denied 后 forbidden;重启后 task.run=succeeded;HTTP GET 200 - full/none:intake 审批通过并推进 V0.1;research 生成成功且 submit 403;readiness Ready;推进 V0.5;settings 可读
五、 实际测试结果与判定 (Actual Results & Evaluation)
用例 1:U8 真实 PI confirm generate
- 测试输入 (Input):
TEST_DATABASE_URL=…/agent_wave2_pi+ runner token;go test ./internal/server -run TestMultiIntentU8_RealPI_ConfirmGenerate_PG - 实际输出 (Actual Output)(摘自
assets/2026-09-16-wave2-real-pi-evidence/u8-go-test.txt):
✓ [1. awaiting] plan_id=pln_79d640abce7c0f2ecf8c3726d28206a9 revision=1 starts=0
taskrun_status_transition run_id=run_1789554232489934117 status=completed
✓ [2. real PI generate] … status=completed elapsed=3m11s
✓ [3. idempotent replay] starts still 1
✓ [4. revoke] TaskRunAdapter denied
✓ [5. PG restart recovery] … status=executing
✓ [6. HTTP refresh] GET plan 486 bytes
--- PASS: TestMultiIntentU8_RealPI_ConfirmGenerate_PG (191.34s)
- 评价判定 (Evaluation / Verdict):PASS
- 性能与耗时 (Duration & Latency):约 191s(含一次 intake PI)
- 说明:浏览器双标签 Playwright 仍为 gated stub(
web/e2e/intent-plan-cards.spec.ts);本轮签署的是 API 层刷新/重登 GET + Plans 重绑模拟 app restart,不宣称 UI 双标签已绿。
用例 2:full/none 混合真实 PI 长链
- 测试输入 (Input):同环境;
TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain(intake=full,research=none,其余文档关闭) - 实际输出 (Actual Output)(摘自
assets/…/fullnone-go-test.txt):
✓ [1. activate] instance=6 full=intake none=research
✓ pi-agent intake … elapsed=3m17s
✓ [2. full intake] cross-user approve complete
✓ [3. advance V0.1] ok
✓ pi-agent research … elapsed=10m22s
✓ [4. none research] generate ok; submit-review denied HTTP 403
✓ [5. readiness] none does not block
✓ [6. advance V0.5] none non-blocking PASS
✓ [7. refresh] settings still readable
--- PASS: TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain (818.64s)
- 评价判定 (Evaluation / Verdict):PASS
- 性能与耗时 (Duration & Latency):约 818s(两次真实 PI)
六、 自动化测试套件汇总 (Test Suite Execution)
go test -short ./internal/app/intentflow ./internal/app ./internal/taskrun → PASS
go vet ./internal/app/intentflow ./internal/app ./internal/taskrun ./internal/server → PASS
go test ./internal/server -run TestMultiIntentU8_RealPI_ConfirmGenerate_PG → PASS (191s)
go test ./internal/server -run TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain → PASS (819s)
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
- PU4 证据缺口可关闭:U8 真实 PI + full/none 混合长链均 PASS;默认
MULTI_INTENT_PLAN_TIER=legacy不升。 - 建议:将
intent-plan-cardsPlaywright 双标签纳入独立 short-term;CI 夜间RUN_PI_E2E=1跑本两用例;合入dev前占槽 smoke。 - 产品修复(nil 数组、taskrun 终态消费者、step 事件聚合)随本分支合入。