# Track I2 多意图放量验收测试报告 ## 一、 测试背景 (Background) FEATURE-MATRIX `intent-plan-u1u8` 在 Track I1 后仍为 partial:默认 `legacy`,无项目 allowlist、无 shadow 对账。本轮合入 I2 代码后在共享 dev 按 shadow → auto_read → confirm 逐级放量验收。 ## 二、 测试目标 (Test Objectives) - shadow:真实聊天持久不可执行计划,legacy 路由仍执行,步骤 status=pending - auto_read:有权限项目上两项只读自动执行一次,receipt 含 auth scope - confirm:查询+生成确认前 `task_runs` 零增量;确认后经 `DispatchEligible` 单次执行 ## 三、 测试方案与环境 (Test Plan & Environment) | 项 | 值 | |---|---| | OS | Linux | | 源码 | local_dev `526617ff`(含 I2 + compose dup fix) | | 环境 | 共享 dev `shuimu-agent-app-dev` schema **66** | | Runner | `:18865` MiniMax-M2.7-highspeed(健康) | | 放量配置 | `INTENT_PLAN_PROJECT_ALLOWLIST=*`;compose 仓库默认仍 `legacy` | | 验收项目 | **6579**(admin 成员);993975 用于证明无成员时 confirm 鉴权失败(负例) | | 层级 | 真实 HTTP 聊天 + PG 账本;Playwright 双标签沿用既有 U6 lineage,本轮以 API+PG 为准 | 证据:`.doc/test-reports/assets/2026-09-24-intent-plan-i2-rollout/` ## 四、 预期结果 (Expected Results) | 档位 | 预期 | |---|---| | shadow | `status=proposed` `execution_mode=validated_only`;步骤 pending;回复仍有 legacy 查询内容 | | auto_read | `status=executing/completed`;两步 `succeeded`;live | | confirm | 出卡 awaiting;确认前 task_runs Δ=0;确认后 query+task.run succeeded,task_runs Δ=1 | ## 五、 实际测试结果与判定 (Actual Results & Evaluation) ### 5.1 shadow - **测试输入 (Input)**:`POST /api/v1/chat` project=993975 message=`查一下项目风险,然后查相关法规`;`MULTI_INTENT_PLAN_TIER=shadow` - **实际输出 (Actual Output)**:`intent_plan.plan_id=pln_2eabf5b5…` status=`proposed` mode=`validated_only`;steps pending;reply 含法规查询结果(legacy);elapsed≈6.2s;PG 同行一致 - **评价判定 (Evaluation / Verdict)**:PASS - **性能与耗时 (Duration & Latency)**:6.18s ### 5.2 auto_read(有权限项目) - **测试输入 (Input)**:同句,project=**6579**,tier=`auto_read` - **实际输出 (Actual Output)**:`pln_1dc96bd9…` status=`executing`;`project.advisory`/`regulation.query` 均为 `succeeded`;receipt summary 含 `scope=`;elapsed≈7.5s - **评价判定 (Evaluation / Verdict)**:PASS - **性能与耗时 (Duration & Latency)**:7.45s ### 5.3 auto_read 负例(无项目成员) - **测试输入 (Input)**:project=993975(admin 非成员) - **实际输出 (Actual Output)**:计划停在 `awaiting_confirmation`、步骤 pending(DecidePlan 鉴权失败);API GET/decision 返回 403 - **评价判定 (Evaluation / Verdict)**:PASS(fail-closed,确认前无成功副作用) - **性能与耗时 (Duration & Latency)**:— ### 5.4 confirm - **测试输入 (Input)**:project=6579 message=`查一下相关法规,然后帮我生成报价单`;随后 `POST …/decisions` kind=confirm - **实际输出 (Actual Output)**:确认前 plan awaiting、steps pending、`task_runs` 562→562(Δ=0);确认后 status=executing,`regulation.query`+`task.run` succeeded,`task_runs` 563(Δ=1);confirm_elapsed≈3.0s - **评价判定 (Evaluation / Verdict)**:PASS - **性能与耗时 (Duration & Latency)**:聊天 1.61s + confirm 2.98s ### 5.5 Playwright 双标签 - **测试输入 (Input)**:本轮未重跑 UI(时间盒);既有 [U6 dual-tab](./2026-09-16-intent-plan-playwright-dual-tab-test-report.md) lineage 仍有效;本轮以真实 HTTP+PG 关闭 I2 - **实际输出 (Actual Output)**:NOT RUN - **评价判定 (Evaluation / Verdict)**:不挡 I2 关闭(双标签属既有 U6 证据;本轮新增为放量接线) - **性能与耗时 (Duration & Latency)**:— ## 六、 自动化测试套件汇总 (Test Suite Execution) | 命令 | 结果 | |---|---| | `./scripts/arch-check.sh --mode block`(I2 合入候选) | PASS | | `go test -short ./internal/app/intentflow/ …`(I2 单测) | PASS | | 真实 dev HTTP+PG 放量三档 | PASS(见上) | ## 七、 测试结论与后续优化建议 (Conclusion & Next Steps) **I2 放量验收 PASS**。可将 `intent-plan-u1u8` 升 `done`,口径:仓库 compose 默认仍 `legacy`;dev 运维可按 allowlist 升 shadow/auto_read/confirm。后续 U9–U12 见独立行 `intent-plan-u9u12`。 回退:将 `MULTI_INTENT_PLAN_TIER` 改回 `legacy` 并 recreate app;已有计划可读/可取消。