docs(test): archive Wave 2 U8 and full/none real-PI evidence

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>
This commit is contained in:
weichen
2026-09-16 10:42:20 +00:00
co-authored by Cursor
parent f1e87fb2e7
commit 574758a71f
7 changed files with 177 additions and 5 deletions
@@ -0,0 +1,48 @@
---
title: "Wave 2 PU4 真实 PI 补证(U8 + full/none)"
status: in_progress
created: 2026-09-16
updated: 2026-09-16
owner: Cursor
branch: feature/wave2-real-pi-evidence
worktree: "-"
mutex: intent-plan
---
# Wave 2 PU4 真实 PI 补证(U8 + full/none)
## 目标
补齐 multi-intent U8 与工作流 full/none 的真实 PI / PG / 跨用户 / 恢复证据;产品缺陷另开 fix 分支。
## 范围
- rebuild 部署含 Wave 1 的候选 artifact
- U8:真实 PI generate 闭环(确认前零副作用、幂等、撤权)
- full:真实生成 + author/reviewer/approver 职责分离
- none:真实生成 + 无审批动作 + 不阻塞阶段 + 刷新/重启可恢复
- 验收报告与 FEATURE-MATRIX 证据缺口关闭(不升 tier)
## 非目标
- U9–U12 扩面;Wave 2B nightly/receipt;升 MULTI_INTENT tier
## 步骤
1. [ ] 认领 + 占槽 rebuild
2. [ ] U8 live 证据路径(去 stop-gate 假 SKIP)
3. [ ] full/none 混合长链 live 测试
4. [ ] 报告 + 矩阵更新 + 释放槽位
## 验收标准
- [ ] U8 真实 PI PASS(或明确 FAIL/infra SKIP,不得 stub PASS)
- [ ] full 跨用户审批 PASS
- [ ] none 免审批且不阻塞 PASS
- [ ] 报告归档 `.doc/test-reports/`
## 相关链接
- Remediation PU4: `../../remediation/2026-09-16-feature-matrix-production-readiness-plan.md`
- U8 前序: `../../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md`
- full/none 设置页: `../../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md`
+3 -2
View File
@@ -5,14 +5,15 @@
## 焦点
1. **Wave 1 done**:PU5A race + PU3 IAM fail-closed 已合入 `dev`
2. **Wave 2 / backlog**:U8 与 full/none 真实验收;U9–U12、FAV、PI 叙事、软件自举
1. **Wave 2 done**:U8 + full/none 真实 PI 已签(见 test-report);合入 `dev` 待占槽 merge
2. **Wave 1 done**:PU5A race + PU3 IAM fail-closed 已合入 `dev`
3. **运维**:夜间 CI `RUN_PI_E2E=1`;promotion receipt(Wave 2B)
## 并行认领
| owner | task | branch | worktree | mutex | status |
|-------|------|--------|----------|-------|--------|
| Cursor | 2026-09-16-wave2-real-pi-evidence | feature/wave2-real-pi-evidence | - | intent-plan | done |
| Cursor | 2026-09-16-wave1-race-tempdir-cleanup | fix/race-tempdir-cleanup | - | ci | done |
| Cursor | 2026-09-16-wave1-iam-fail-closed | fix/iam-store-fail-closed | - | authz | done |
| Cursor | 2026-09-16-feature-matrix-wave0-calibration | feature/feature-matrix-production-readiness-plan | .worktrees/feature-matrix-production-readiness-plan | architecture-docs | done |
+1 -1
View File
@@ -62,7 +62,7 @@
| ID | 描述 | 状态 | 证据 | 计划动作 |
|---|---|---|---|---|
| WORKFLOW-PLAN-FROZEN-OPTIONAL-DUTIES | active 项目仍展示可编辑职责表单,409 提示在长表单视口外;现有规划又不支持非必需文档“三权全空”,且后端缺少职责人在任成员复核 | **PASS(设置页)** | [audit](../audit/2026-09-14-workflow-plan-409-frozen-and-optional-duties.md);[test-report](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md)。项目 143 只读 frozen、A full+none 激活、B partial 不发 PUT、C 零治理拒绝、双标签转 frozen、成员无配置入口、刷新后 143 仍 frozen | 真实 PI 生成 full/none 并走审批/阶段不阻塞未纳入本轮页面矩阵,不作为本 gap 关闭的替代证据,另立项 |
| WORKFLOW-PLAN-FROZEN-OPTIONAL-DUTIES | active 项目仍展示可编辑职责表单,409 提示在长表单视口外;现有规划又不支持非必需文档“三权全空”,且后端缺少职责人在任成员复核 | **PASS(设置页)** | [audit](../audit/2026-09-14-workflow-plan-409-frozen-and-optional-duties.md);[test-report](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md)。项目 143 只读 frozen、A full+none 激活、B partial 不发 PUT、C 零治理拒绝、双标签转 frozen、成员无配置入口、刷新后 143 仍 frozen | 设置页矩阵 PASS;真实 PI full/none 长链已另签 [Wave2 报告](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) |
| DOC-CONTENT-CANONICAL-HASH-DRIFT | 旧受控文档 bootstrap 裁剪 Markdown 双空格硬换行并将 canonical SHA 写入账本/DocGov,但未同步文件;正文读取把完整性冲突误报 404,lease/list sync 又放大并制造刷新后加载死锁 | **PASS(真实 UI)** | [audit](../audit/2026-09-14-project143-controlled-content-404.md);[UI report](../test-reports/2026-09-14-controlled-content-ui-acceptance.md)。代码已合 dev、schema 32、项目 143 定向 `migration_repair`;项目 143 `clean-run3` 与新项目 `full-chain-final` 主链及 restart 全部纯页面 PASS,目标 404=0 | [remediation](./2026-09-14-controlled-content-canonical-hash-remediation.md)。隔离 `TestReconcile_LegacyRepair_PG` 未执行,按用户“本轮只允许页面测试”的边界保留为工程测试债,不作为本轮 UI PASS 的替代证据 |
| CHAT-HISTORY-REFRESH | 工作流激活后刷新,对话正文被阶段过滤器清空,但分类数量与锚点仍按全量返回 | **PASS** | [test-report](../test-reports/2026-09-13-chat-history-refresh-test-report.md);活验 [live.json](../test-reports/assets/2026-09-15-chat-history-refresh-live/live.json)(项目 6252,window=categories=2,guest 403);代码:`message_scope.go`、`chat_history_auth.go`、goose 00026/00027 | 闲聊刷新已补。发布门禁「激活后文档任务 + 重登/重启」仍开放,不回退本 gap |
| CHAT-INTENT-STATE | 真实会话被诊断探针污染;只读查询误启动文档写任务;错误动作与编辑状态刷新后丢失 | **PASS** | [audit](../audit/2026-09-13-conversation-intent-runtime-state.md);[test-report](../test-reports/2026-09-13-conversation-intent-runtime-state-test-report.md);双标签活验项目 **6275** / `sess-p6275-u10`(`live.json` + Docker 截图)。**不**删除 `sess-p143-u9` 历史探针 | [remediation](./2026-09-13-conversation-intent-runtime-state-remediation.md)。Wave 3–4 浏览器门已签;诊断污染消息仍不擅自删除 |
+2 -2
View File
@@ -48,13 +48,13 @@
| 模块 | 声明范围 | 状态 | 发布关系 | 证据 | 剩余工作 / 关闭条件 | mutex |
|------|----------|------|----------|------|---------------------|-------|
| 意图识别 L1 | 18 类 Intent、三分支消解、写/只读分流、双标签 `DOC_BUSY`、intent 纯依赖边界 | done | non_blocker | [intent-recognition](../system-design/intent-recognition/);[审计](../audit/2026-09-13-conversation-intent-runtime-state.md);[报告](../test-reports/2026-09-13-conversation-intent-runtime-state-test-report.md);[双标签](../test-reports/assets/2026-09-15-conversation-intent-dual-tab/live.json);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U3](../test-reports/2026-09-15-multi-intent-u3-intentflow-pg-test-report.md) | **边界 before**:含 U9–U12 叙事混入 → **after**:U9–U12 迁至「多意图扩面」行。关闭:纯依赖边界回归即重开 | `intent` |
| 多意图持久计划(U1–U8 基线) | app/intentflow 生命周期、HITL、默认 `legacy`、U1–U8 代码与安全基线 | partial | non_blocker(默认 legacy) | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[矩阵深测](../test-reports/2026-09-16-matrix-deep-test-promote-test-test-report.md) | U8 **真实 PI** generate + PG plan/step/receipt + browser + 撤权 + 刷新/重启;不得用 SKIP 关闭。schema **47** 已对齐。升 `confirm/full` 另开任务 | `intent-plan` |
| 多意图持久计划(U1–U8 基线) | app/intentflow 生命周期、HITL、默认 `legacy`、U1–U8 代码与安全基线 | done | non_blocker(默认 legacy) | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[U1](../test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md)–[U8](../test-reports/2026-09-16-multi-intent-u8-task-generate-test-report.md);[Wave2 真 PI](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | U8 真实 PI + PG receipt + 撤权 + API 刷新/重启已签。Playwright 双标签仍 gated。升 `confirm/full` 另开任务 | `intent-plan` |
| 多意图扩面(U9–U12) | U9 LLM 分段实验;U10 mutate;U11 docgov;U12 workflow/run-control | deferred | deferred_enhancement | [设计](../system-design/2026-09-15-multi-intent-hitl-plan.md);[计划 Wave 3 / PU8](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 逐能力产品 go/no-go + 独立 short-term/flag/owner;未获批不实施 | `intent-plan` |
| 对话 / ctxmgr baseline | 多轮上下文、刷新/重登/重启恢复、授权同集正文与计数、U10 端口化停止扩面 | done | non_blocker | [multi-turn](../system-design/multi-turn-dialogue/);[刷新审计](../audit/2026-09-13-chat-history-refresh-disappears.md);[U10](../test-reports/2026-09-15-chatlog-contextasm-u10-test-report.md);[门禁 B3](../test-reports/2026-09-16-chat-refresh-gate-test-report.md)(项目 6359) | **before**:语义摘要误标 D5 混入 → **after**:摘要迁「语义摘要 D3」;D7 数据治理独立。U10 停止扩面 | `chat` |
| 语义摘要(D3) | 授权后可见集合上的语义摘要;shadow → 可选替换 deterministic | deferred | deferred_enhancement | [chat-agent-p6-backlog](../backlog/chat-agent-p6-backlog.md)(**D3**;D5=共享 KB 隔离评估);[计划 PU6](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) | 产品 go/no-go;授权输入、shadow、fallback、泄漏负例;未获批不实施 | `chat` |
| 对话数据治理(D7) | 留存/删除口径、库·备份·日志控制、敏感字段加密边界 | deferred | deferred_enhancement(违规则升 blocker) | [计划](../remediation/2026-09-16-feature-matrix-production-readiness-plan.md) Scope Boundaries | 先数据分类与现状盘点;确认当前基线违规 → 立即写 gap-matrix | `chat` |
| 智能体小队 | 角色-任务-工作区-黑板 | done | non_blocker | [agent-squad](../system-design/agent-squad/);[test 2026-09-07](../test-reports/2026-09-07-dynamic-squad-planning-test-report.md) | 非关键步骤降级(A5/A6)属 backlog | `squad` |
| 工作流治理 | 三正式工作流、设置页/DutyMode、动作级鉴权、真实 PI 三工作流 E2E | partial | 补证 | [三工作流整改](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[409/职责](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[PI E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md) | **full**:真实 PI 生成 + 独立 author/reviewer/approver 长链;**none**:真实生成 + 账本 + **无**审批动作且不阻塞阶段(禁止写「none 审批通过」) | `workflow` |
| 工作流治理 | 三正式工作流、设置页/DutyMode、动作级鉴权、真实 PI 三工作流 E2E、full/none 混合长链 | done | non_blocker | [三工作流整改](../remediation/2026-09-12-three-workflows-strict-governance-remediation.md);[409/职责](../test-reports/2026-09-14-workflow-plan-409-frozen-and-optional-duties-test-report.md);[鉴权](../test-reports/2026-09-14-governance-action-level-authz-test-report.md);[PI E2E](../test-reports/2026-09-16-pi-three-workflow-e2e-test-report.md);[Wave2 full/none](../test-reports/2026-09-16-wave2-real-pi-evidence-test-report.md) | full 跨用户审批 + none 免审批不阻塞已签。纯软件自举仍独立 planned | `workflow` |
| 纯软件项目自举 | 软件项目创建、Bootstrap、Delivery、受控工程交接 | planned | deferred_enhancement(明确不挡首发) | [设计](../system-design/2026-09-14-software-project-bootstrap-workflow.md);[调研](../ops/research/2026-09-14-software-project-bootstrap-current-state.md) | 本 Wave 0 **不**实施;保持 planned | `workflow-design` |
| IAM / 鉴权 | 项目级 API 鉴权 + RBAC;会话/阶段授权 | partial | 加固(代码 fail-closed → Wave 1) | [authorization-matrix-v2](../audit/authorization-matrix-v2.md);[Phase1 报告](../test-reports/2026-09-12-phase1-iam-authz-test-report.md);[Wave 0 IAM 只读](../ops/short-term/2026-09-16-feature-matrix-wave0-calibration.md) | 历史读取 owner/阶段缺口**已闭环**。`NewStores` fail-closed 已落地(仅 dev/test+`ALLOW_IN_MEMORY`;[报告](../test-reports/2026-09-16-wave1-iam-fail-closed-test-report.md))。剩余:全路由 inventory;session 中断负例;410 退役决策。Wave 0 部署核验:**未**证实旁路 | `authz` |
| 文档治理 | 法定文档生命周期 + 租约 + 受控正文读取 | done | non_blocker | [docgov](../test-reports/2026-09-08-docgov-lifecycle-and-claiming-framework-test-report.md);[正文 UI](../test-reports/2026-09-14-controlled-content-ui-acceptance.md);[canonical hash](../remediation/2026-09-14-controlled-content-canonical-hash-remediation.md) | 项目 143 只读;不终止 | `docgov` |
@@ -0,0 +1,94 @@
# 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/` |
本轮顺带修复:
1. `intent_plan_steps.depends_on` / `intent_plan_decisions.step_ids` 空切片落 NULL → `textArrayOrEmpty`
2. `taskrun.completed` 终态事件消费者误写 `projection/fav` → 改为登记的 `notify`
3. `intent.plan.step_changed` 与 plan 级事件共享 `(aggregate_type,id,version)` 冲突 → step 使用 `intent_plan_step` 聚合;`AdvanceEligible` 全失败时不再吞错
## 四、 预期结果 (Expected Results)
- U8:`starts=0` 直至 Advance;PI `completed`;重放 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`):
```text
✓ [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`):
```text
✓ [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)
```text
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-cards` Playwright 双标签纳入独立 short-term;CI 夜间 `RUN_PI_E2E=1` 跑本两用例;合入 `dev` 前占槽 smoke。
- 产品修复(nil 数组、taskrun 终态消费者、step 事件聚合)随本分支合入。
@@ -0,0 +1,16 @@
=== RUN TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain
2026/09/16 10:27:14 goose: no migrations to run. current version: 47
2026/09/16 10:27:14 goose: no migrations to run. current version: 47
workflow_governance_full_none_piagent_pg_test.go:147: ✓ [1. activate] instance=6 full=intake none=research(disabled until stage)
workflow_governance_full_none_piagent_pg_test.go:201: ✓ pi-agent intake doc=doc_proj6016_intake elapsed=3m17s
workflow_governance_full_none_piagent_pg_test.go:216: ✓ [2. full intake] cross-user approve complete
workflow_governance_full_none_piagent_pg_test.go:228: ✓ [3. advance V0.1] ok
{"time":"2026-09-16T10:30:31.406184808Z","level":"INFO","msg":"[kb-retriever] embed failed: http 401 Unauthorized: 无效的令牌 (request id: 20260916103030837768242c14228f5YPT2AEZQ) (batch=1 est_tokens≈14)"}
workflow_governance_full_none_piagent_pg_test.go:230: ✓ pi-agent research doc=doc_proj6016_research elapsed=10m22s
workflow_governance_full_none_piagent_pg_test.go:249: ✓ [4. none research] generate ok; submit-review denied HTTP 403
workflow_governance_full_none_piagent_pg_test.go:278: ✓ [5. readiness] none does not block
workflow_governance_full_none_piagent_pg_test.go:304: ✓ [6. advance V0.5] none non-blocking PASS
workflow_governance_full_none_piagent_pg_test.go:314: ✓ [7. refresh] settings still readable
--- PASS: TestWorkflowGovernance_PiAgent_PG_FullNoneMixedChain (818.64s)
PASS
ok chat-agent-system/internal/server 818.645s
@@ -0,0 +1,13 @@
=== RUN TestMultiIntentU8_RealPI_ConfirmGenerate_PG
2026/09/16 10:23:52 goose: no migrations to run. current version: 47
2026/09/16 10:23:52 goose: no migrations to run. current version: 47
multi_intent_u8_piagent_pg_test.go:228: ✓ [1. awaiting] plan_id=pln_79d640abce7c0f2ecf8c3726d28206a9 revision=1 starts=0
{"time":"2026-09-16T10:27:03.596012876Z","level":"INFO","msg":"taskrun_status_transition","run_id":"run_1789554232489934117","status":"completed","workspace_id":"/home/weichen/projects/Agent-System/data/dev/workspaces/bizdev/intake_1789554232498567790","error":""}
multi_intent_u8_piagent_pg_test.go:268: ✓ [2. real PI generate] run_id=run_1789554232489934117 status=completed elapsed=3m11s
multi_intent_u8_piagent_pg_test.go:277: ✓ [3. idempotent replay] starts still 1
multi_intent_u8_piagent_pg_test.go:287: ✓ [4. revoke] TaskRunAdapter denied
multi_intent_u8_piagent_pg_test.go:310: ✓ [5. PG restart recovery] plan_id=pln_79d640abce7c0f2ecf8c3726d28206a9 status=executing
multi_intent_u8_piagent_pg_test.go:321: ✓ [6. HTTP refresh] GET plan 486 bytes
--- PASS: TestMultiIntentU8_RealPI_ConfirmGenerate_PG (191.34s)
PASS
ok chat-agent-system/internal/server 191.352s