docs(test): record the four dev deep-test fixes
The dev container was rebuilt and the health check, task-run errors, and new UI strings are filed with the report. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+4
-4
@@ -5,15 +5,15 @@
|
||||
|
||||
## 焦点
|
||||
|
||||
1. **需求与影响已改为对话**:常驻面板已从 dev 页面移除;新待复核与下游影响写入已有项目会话。见 [报告](../test-reports/2026-09-21-trace-panel-to-chat-test-report.md)。test/main 未晋升。
|
||||
2. **任务作用域 409 与对话丢失已合入 dev**:旧键 `intake` 对 `bd_intake` 快照可创建任务;陈威项目 6579 实测 202,窗口可读回对话(见 [报告](../test-reports/2026-09-21-taskrun-scope-persist-test-report.md))。test/main 未晋升。
|
||||
1. **dev 四问题修复**:近似说法可启动摸底表;刷新后重放任务进度;继续任务走 resume;模板态显示「模板预览」。见 [报告](../test-reports/2026-09-21-dev-deep-test-four-issues-test-report.md)。test/main 未晋升。
|
||||
2. **需求与影响已改为对话**:常驻面板已从 dev 页面移除;新待复核与下游影响写入已有项目会话。见 [报告](../test-reports/2026-09-21-trace-panel-to-chat-test-report.md)。test/main 未晋升。
|
||||
3. **红线**:禁止整支 merge FAV;不默认升 `MULTI_INTENT_PLAN_TIER=full`;`SEMANTIC_SUMMARY_REPLACE` 不随 W2 开启;FAV live 观察窗证据驱动;`FAV_DEGRADED_READ=false`;项目 143 只读;SWBOOT-10 保持 fail-closed stub;D7 对话 ADR 仍待合规签字(追踪表留存类别已定为 `record`,不授权物理删除);**不改 `production_ready`**;模块解耦批次 A–G 与回溯实施切片未单独认领前保持 `planned`。
|
||||
|
||||
## 并行认领
|
||||
|
||||
| owner | task | branch | worktree | mutex | status |
|
||||
|-------|------|--------|----------|-------|--------|
|
||||
| Cursor | 2026-09-21-dev-deep-test-four-issues | fix/dev-deep-test-four-issues-2026-09-21 | - | web+intent+taskrun | in_progress |
|
||||
| Cursor | 2026-09-21-dev-deep-test-four-issues | fix/dev-deep-test-four-issues-2026-09-21 | - | web+intent+taskrun | done |
|
||||
| Cursor | 2026-09-21-trace-panel-to-chat | feature/trace-panel-to-chat-2026-09-21 | - | trace-impact+web | done |
|
||||
| Cursor | 2026-09-21-taskrun-scope-persist | fix/taskrun-scope-persist-2026-09-21 | - | projectinstance+taskrun | done |
|
||||
| Cursor | 2026-09-21-dev-multiuser-four-issues | fix/dev-multiuser-four-issues-2026-09-21 | .worktrees/fix-dev-multiuser-four-issues | projectinstance+docgov | done |
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
| holder | phase | since | scope | queue |
|
||||
|--------|-------|-------|-------|-------|
|
||||
| - | idle | 2026-09-21 | 需求与影响面板已从 dev 前端移除;多用户四问题修复已合入并重建;`/health` schema_version=59 | - |
|
||||
| - | idle | 2026-09-21 | 四问题修复已重建 dev;`/health` schema_version=59;pi-agent healthy | - |
|
||||
|
||||
**phase**: `idle` | `merging` | `smoke` | `e2e`
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: "dev 深度测试四问题修复"
|
||||
status: in_progress
|
||||
status: done
|
||||
created: 2026-09-21
|
||||
updated: 2026-09-21
|
||||
owner: Cursor
|
||||
@@ -33,18 +33,18 @@ mutex: web+intent+taskrun
|
||||
|
||||
## 步骤
|
||||
|
||||
1. [ ] 意图路由与服务端动词门
|
||||
2. [ ] 进度重放与 interrupted 状态
|
||||
3. [ ] 继续 / 重跑按钮
|
||||
4. [ ] 模板徽标
|
||||
5. [ ] 环境排查、真实环境复测与报告
|
||||
1. [x] 意图路由与服务端动词门
|
||||
2. [x] 进度重放与 interrupted 状态
|
||||
3. [x] 继续 / 重跑按钮
|
||||
4. [x] 模板徽标
|
||||
5. [x] 环境排查、真实环境复测与报告
|
||||
|
||||
## 验收标准
|
||||
|
||||
- [ ] 「编写初始用户需求表」「生成需求表」解析为 intake / `bd_intake`
|
||||
- [ ] 刷新后 running 任务能看到阶段事件,而不是只剩「任务执行中」
|
||||
- [ ] 刷新后点击继续任务会请求 resume 端点
|
||||
- [ ] `lifecycleState=template` 显示「模板预览」,不显示「编制中」或「已生效受控」
|
||||
- [x] 「编写初始用户需求表」「生成需求表」解析为 intake / `bd_intake`
|
||||
- [x] 刷新后 running 任务能看到阶段事件,而不是只剩「任务执行中」
|
||||
- [x] 刷新后点击继续任务会请求 resume 端点
|
||||
- [x] `lifecycleState=template` 显示「模板预览」,不显示「编制中」或「已生效受控」
|
||||
|
||||
## 相关链接
|
||||
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
# dev 深度测试四问题修复 测试报告
|
||||
|
||||
## 一、 测试背景 (Background)
|
||||
|
||||
dev 商务对接实测有四类问题:近似说法启动不了「用户初始需求收集表」;刷新后任务卡片只剩「任务执行中」,随后出现 `step_01_organize failed: TRANSIENT`;失败后继续/重跑没有反应;编制人看到「编制中」却不能编辑模板态文档。
|
||||
|
||||
## 二、 测试目标 (Test Objectives)
|
||||
|
||||
- 「编写初始用户需求表」「生成需求表」解析到 intake,而不是 V0.5 用户需求表。
|
||||
- 刷新后能重放已落库的阶段事件;`interrupted` 不再显示成已完成。
|
||||
- 刷新后的失败气泡能找到原消息,继续任务调用 `POST /tasks/runs/{id}/resume`。
|
||||
- 模板态徽标为「模板预览」,锁定说明不再写成「已生效受控」。
|
||||
|
||||
## 三、 测试方案与环境 (Test Plan & Environment)
|
||||
|
||||
- OS:linux。分支 `fix/dev-deep-test-four-issues-2026-09-21`。
|
||||
- 单元测试:`web` `npm test`、`npm run build`;`go test -short` 中本次改动包 `internal/intent`、`internal/server`、`internal/taskrun`。
|
||||
- 真实环境:`./scripts/env-service.sh dev rebuild`。dev `:8080` 为 `pi-agent`,schema 59。pi-agent `:18865` 健康。
|
||||
- 未使用陈威口令做浏览器代点。点击链路用重建后的前端包字符串和未登录请求核对。
|
||||
|
||||
## 四、 预期结果 (Expected Results)
|
||||
|
||||
- 含「初始 / 首轮 / 摸底」的写请求走 intake / `bd_intake`。
|
||||
- `interrupted` 映射为失败且可继续;刷新后进度来自 `task_run_events`。
|
||||
- 继续任务不走会被清空 `work_dir` 的 SSE 路径。
|
||||
- `lifecycleState=template` 显示「模板预览」。
|
||||
|
||||
## 五、 实际测试结果与判定 (Actual Results & Evaluation)
|
||||
|
||||
### 用例 1:语序变体路由
|
||||
|
||||
- 测试输入:`编写初始用户需求表`、`生成需求表`、`编写用户初始需求收集表`,交付物池同时有 `bd_intake` 与 `bd_user_requirements`。
|
||||
- 实际输出:`npx tsx --test src/engine/templateMatch.test.ts` 33 通过。上述三句的 `resolveTaskTemplateForMessage` 均为 `bd_intake`。`go test ./internal/intent/ -run TestIntentRecognition_RDevProposalAndLongerTitleWins` 通过,「编写初始用户需求表」为 `TRIGGER_TASK/intake`,不再被研发别名「用户需求」截走。
|
||||
- 评价判定:PASS。
|
||||
- 性能与耗时:前端该文件约 0.16s;intent 包约 0.007s。
|
||||
|
||||
### 用例 2:刷新进度与 TRANSIENT
|
||||
|
||||
- 测试输入:dev 库最近 `task_runs`;重建后的前端包与 `replay_only`。
|
||||
- 实际输出:最近失败为 `step step_01_organize failed: TRANSIENT`(05:09、05:16 UTC),其前有多条 `worker lease 过期`。当前容器内一次后续运行已 `completed`(05:52 UTC)。pi-agent 现为 healthy,`/health` 200。重建后的 `index-lWkumBG3.js` 含进度重放逻辑所依赖的运行路径;未登录访问 `events?replay_only=1` 返回 401(路由存在,不匿名放行)。
|
||||
- 评价判定:PASS(代码与环境证据)。TRANSIENT 与 13:05–13:16 本地时间的进程重启/lease 过期聚在一起,当前容器日志里没有新的 connection reset。未在浏览器里对一条仍在跑的任务做刷新点按。
|
||||
- 性能与耗时:查询一次返回。
|
||||
|
||||
### 用例 3:继续任务
|
||||
|
||||
- 测试输入:未登录 `POST /api/v1/tasks/runs/not-a-run/resume`,body `{"confirm":true}`。
|
||||
- 实际输出:HTTP 401。重建包含「正在继续任务」。`useTaskRunAttempts.test.ts` 通过,源码含 `resumeTaskRun` 与 `chatWindow.allMessages.find`。
|
||||
- 评价判定:PASS(端点与前端接线)。未用陈威浏览器再点一次按钮。
|
||||
- 性能与耗时:请求在 1 秒内返回。
|
||||
|
||||
### 用例 4:模板徽标
|
||||
|
||||
- 测试输入:重建后的前端包。
|
||||
- 实际输出:包内同时有「模板预览」和「任务未完成,正文仍为模板预览」。`templatePreviewLabel.test.ts` 通过。侧栏在 `isTemplateOnly` 时原本就显示「初始模板」;这次改的是正文底部误写成「编制中 / 已生效受控」的徽标和锁定条。
|
||||
- 评价判定:PASS。模板仍然只读,没有新增「从模板直接编制」入口。
|
||||
- 性能与耗时:字符串检查一次完成。
|
||||
|
||||
## 六、 自动化测试套件汇总 (Test Suite Execution)
|
||||
|
||||
- `web`:`npm test` 454 通过,vitest 32 通过,`npm run build` 通过。
|
||||
- `go test -short ./internal/intent ./internal/server ./internal/taskrun` 通过(全量 `go test -short ./...` 里 intent/server/taskrun 为 ok)。
|
||||
- 全量短测另有 3 个既有失败,不在本次改动路径:`internal/archtest` 的 docnotify→ctxmgr 导入基线、`TestDocGov_CreateOrGetDocument_OptionalDutiesNullFK` 外键(与 [多用户四问题报告](./2026-09-21-dev-multiuser-four-issues-test-report.md) 记录相同)、`internal/notification` 项目名唯一约束冲突。
|
||||
- 重建后健康检查:
|
||||
|
||||
```json
|
||||
{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":59,"schema_ready":true,"task_store_ready":true}
|
||||
```
|
||||
|
||||
证据:`.doc/test-reports/assets/2026-09-21-dev-deep-test-four-issues/`。
|
||||
|
||||
## 七、 测试结论与后续优化建议 (Conclusion & Next Steps)
|
||||
|
||||
可以合入 `dev`。test/main 不晋升。TRANSIENT 不改重试次数;当前 pi-agent 健康,失败集中在更早的重启窗口。若再出现「未成功落盘」,先看 `task_runs.error_message` 和 pi-agent 容器是否刚被重建。项目 143 未改写。
|
||||
@@ -0,0 +1,3 @@
|
||||
resume_unauth=401
|
||||
events_replay_only_unauth=401
|
||||
bundle=模板预览 / 正在继续任务 / 任务未完成,正文仍为模板预览
|
||||
@@ -0,0 +1 @@
|
||||
{"status":"ok","env":"dev","agent_backend":"pi-agent","version":"v1.0","shared_kb_port":5432,"kb_ready":true,"database_ready":true,"schema_version":59,"schema_ready":true,"task_store_ready":true}
|
||||
@@ -0,0 +1,12 @@
|
||||
status | error | updated_at
|
||||
-------------+---------------------------------------------------------+-------------------------------
|
||||
interrupted | worker lease 过期,任务已中断(进程重启或 worker 失联) | 2026-09-21 06:29:49.232336+00
|
||||
interrupted | worker lease 过期,任务已中断(进程重启或 worker 失联) | 2026-09-21 06:27:11.931157+00
|
||||
completed | | 2026-09-21 05:52:14.884446+00
|
||||
failed | step step_01_organize failed: TRANSIENT | 2026-09-21 05:16:45.980345+00
|
||||
failed | step step_01_organize failed: TRANSIENT | 2026-09-21 05:09:22.390036+00
|
||||
interrupted | worker lease 过期,任务已中断(进程重启或 worker 失联) | 2026-09-21 05:07:38.980383+00
|
||||
interrupted | worker lease 过期,任务已中断(进程重启或 worker 失联) | 2026-09-21 05:05:13.432473+00
|
||||
interrupted | worker lease 过期,任务已中断(进程重启或 worker 失联) | 2026-09-21 03:11:36.413875+00
|
||||
(8 rows)
|
||||
|
||||
Reference in New Issue
Block a user