Files
Agent-System/.doc/audit/2026-09-13-document-revision-sse-idempotency.md
T
WeiCHEN 4baa1220ee docs(ops): close docrev UI audits after main+post-restart PASS
Record real Playwright ledgers, mark 20 audits and 9 remediations done, and leave management-implementation-plan as plan-only.
2026-09-23 04:00:49 +08:00

2.5 KiB
Raw Blame History

title, status, created, updated, severity
title status created updated severity
任务 run SSE 超时断线后同 turn 误击 DOC_BUSY done 2026-09-13 2026-09-22 critical

任务 run SSE 超时断线后同 turn 误击 DOC_BUSY

W3 UI-rerun 关闭(2026-09-22):status=done。真实 Playwright 账本 PASS:ui-acceptance-results.json(main UI-00..16)+ ui-acceptance-results-post-restart.json(UI-15)。任务 tip 已合入本地 dev;详见 short-term 与 测试报告。

现象

真实 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

关联整改

证据

开放问题

  • 合入前占槽真实 UI 重跑 UI-03(本轮不 rebuild Docker)
  • chat /stream 与 tasks/run/stream 是否需同样 SSE write-deadline 扩展(本轮优先 /tasks/runs/{id}/events)