Record real Playwright ledgers, mark 20 audits and 9 remediations done, and leave management-implementation-plan as plan-only.
50 lines
2.5 KiB
Markdown
50 lines
2.5 KiB
Markdown
---
|
||
title: "任务 run SSE 超时断线后同 turn 误击 DOC_BUSY"
|
||
status: done
|
||
created: 2026-09-13
|
||
updated: 2026-09-22
|
||
severity: critical
|
||
---
|
||
|
||
# 任务 run SSE 超时断线后同 turn 误击 DOC_BUSY
|
||
|
||
> **W3 UI-rerun 关闭(2026-09-22)**:`status=done`。真实 Playwright 账本 PASS:[`ui-acceptance-results.json`](../test-reports/assets/2026-09-22-docrev-ui-rerun/ui-acceptance-results.json)(main UI-00..16)+ [`ui-acceptance-results-post-restart.json`](../test-reports/assets/2026-09-22-docrev-ui-rerun/ui-acceptance-results-post-restart.json)(UI-15)。任务 tip 已合入本地 `dev`;详见 [short-term](../ops/short-term/2026-09-22-docrev-ui-rerun.md) 与 [测试报告](../test-reports/2026-09-22-docrev-ui-rerun-test-report.md)。
|
||
|
||
|
||
## 现象
|
||
|
||
真实 Antigravity UI-03(dev schema 30):
|
||
|
||
1. 初始 `POST /api/v1/tasks/runs` → **202** `run_1789308825655387640`
|
||
2. `GET .../events` 约 **157s** 后以 `ERR_INCOMPLETE_CHUNKED_ENCODING` 断开(对齐服务端默认 `WriteTimeout=120s`)
|
||
3. 浏览器用**完全相同** `session=sess-p6098-u107`、`client_turn_id=turn_1789308825646`、`doc_id=doc_proj6098_intake` 再 POST
|
||
4. `handleCreateTaskRun` 在幂等 `ClaimRun` **之前**执行 `preflightTaskDocumentBusy` → **409 DOC_BUSY**,并 `recordBusyPreflightMessages` 写入**重复**用户/失败助手消息
|
||
|
||
## 根因分析
|
||
|
||
| 层 | 问题 |
|
||
|---|---|
|
||
| HTTP | 全局 `WriteTimeout: 120s` 切断长任务 SSE 响应体,客户端见 incomplete chunked encoding |
|
||
| Handler | 同 turn 重试仍走 scope/preflight;活跃小队租约被当成「别人在编」 |
|
||
| FE | `subscribeTaskRunEvents` 遇意外 EOF 直接结束,上层可能再次 `createTaskRun` |
|
||
|
||
## 严重度
|
||
|
||
`critical`
|
||
|
||
## 关联整改
|
||
|
||
- Short-term: [../ops/short-term/2026-09-13-document-revision-sse-idempotency.md](../archive/ops/2026-09-13-document-revision-sse-idempotency.md)
|
||
- 分支: `fix/document-revision-sse-idempotency`
|
||
|
||
## 证据
|
||
|
||
- 运行产物目录(勿删):[../test-reports/assets/2026-09-13-document-revision-runtime-ui/](../test-reports/assets/2026-09-13-document-revision-runtime-ui/)
|
||
- 前序 UI-03 客户端同步审计:[./2026-09-13-controlled-doc-client-sync-ui03.md](./2026-09-13-controlled-doc-client-sync-ui03.md)
|
||
- 现场键:`run_1789308825655387640` / `sess-p6098-u107` / `turn_1789308825646` / `doc_proj6098_intake`
|
||
|
||
## 开放问题
|
||
|
||
- 合入前占槽真实 UI 重跑 UI-03(本轮不 rebuild Docker)
|
||
- chat `/stream` 与 `tasks/run/stream` 是否需同样 SSE write-deadline 扩展(本轮优先 `/tasks/runs/{id}/events`)
|