docs(test): add longtask P0 observer and materials test report

Archive automated regression results for stream materials, observer disconnect,
project asset upload, and ResolveMaterials assembly.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
WeiCHEN
2026-09-13 02:50:22 +00:00
committed by weichen
co-authored by Cursor
parent bbd1218922
commit 91b257393e
@@ -0,0 +1,62 @@
# 长任务 P0 观察者模型 + 文档进小队上下文 测试报告
## 一、测试背景
长任务刷新后对话/进度丢失、SSE 断线导致外层 failed 而 PI Agent 子进程继续、流式接口漏传 materials、项目文档未进入小队任务上下文、workspace 缺失 session/project 血缘。
## 二、测试目标
- 流式 task/stage 透传 Materials
- 项目 CAS 资产上传与自动装配进任务上下文
- 任务执行脱离 SSE 生命周期(观察者模型)
- 长任务消息持久化与 run_id 重订阅
- workspace 写入 session_id / project_id
- 孤儿任务对账与显式 cancel 终止 Runner
## 三、测试方案与环境
- OS: darwin 25.6.0
- Go: 模块内 `go test`
- Web: `npm test -- --run`
- 后端 Agent: stub(单元/集成);真实 pi-agent 端到端需 dev 环境单独验收
## 四、预期结果
| 用例 | 预期 |
|------|------|
| stream materials | `_all.txt` 含正文 |
| 空 binary materials | 400/错误,不伪成功 |
| 项目 CAS 资产 | 后续任务 context 自动纳入 |
| SSE 3s 断开 | worker 继续,不因 disconnect 变 failed |
| POST /tasks/runs 无 session | 400 |
| workspace.json | 非空 session_id string + project_id |
## 五、实际测试结果
### 5.1 Go 自动化
```text
go test ./internal/server -run 'TestTaskStream|TestUpload|TestTaskRun|TestCreate' → PASS
go test ./internal/bizdev -run TestResolveMaterials → PASS
TestTaskStream_MaterialsInjection (POST /tasks/run/stream) → PASS
TestTaskRun_DisconnectDoesNotCancelWorker → PASS
TestUploadProjectAsset → PASS
```
### 5.2 Web 自动化
```text
npm test -- --run → 163 pass (node) + 20 pass (vitest)
```
### 5.3 判定
- Materials 流式透传:**PASS**
- 观察者模型断线不 cancel:**PASS**
- 项目资产上传 API:**PASS**
- 项目资产自动装配 ResolveMaterials:**PASS**
- 会话/项目必填校验:**PASS**
## 六、测试结论
P0 路线 B 核心能力已通过自动化回归。真实 pi-agent + MiniMax 全链路验收与路线 C(披露网关)留待下一阶段。