Move done DOCREV short-terms, checklists, and handoffs into archive/ops and retarget relative links after Round20 close-out. Co-authored-by: Cursor <cursoragent@cursor.com>
2.9 KiB
2.9 KiB
title, status, created, updated, owner, branch, worktree, mutex
| title | status | created | updated | owner | branch | worktree | mutex |
|---|---|---|---|---|---|---|---|
| 任务 SSE 幂等 + 质量门禁自污染与 auto_repair 产品契约 | done | 2026-09-13 | 2026-09-14 | Cursor-Auto | fix/document-revision-sse-idempotency | - | docgov |
任务 SSE 幂等 + 质量门禁自污染与 auto_repair 产品契约
目标
- 同 turn 在 SSE 断线重连时返回既有 run 202、不重复聊天、不误 409 DOC_BUSY;长任务 events SSE 不被 120s WriteTimeout 切断;前端 EOF 按 after_seq 重订阅同一 run。
- 受控文档小队任务质量门禁:服务端启用修复预算;否定性自检引用不误报;
quality_failedUI 保持失败且不激活未过门禁稿。
范围
- SSE/幂等:
task_run_handlers、SSE write deadline、FE subscribe 重连 - 质量 A–D:
repairBudgetForSquadTask、quality_gate语境检测、prompt 去原词、Materialize/TerminalStatus、FEquality_failed、单测 - 证据:
data/dev/workspaces/bizdev/intake_1789308825666278807(output.md:204;events seq10)
非目标
- 不改全局 HTTP 超时为「无超时」;不 rebuild Docker;不 push/merge;不删证据 assets
步骤
- 从
dev开fix/document-revision-sse-idempotency;CURRENT 认领 - 幂等先查 + 属主校验
- SSE write deadline + heartbeat
- FE subscribe 重连
- A 服务端修复预算产品契约
- B 门禁否定/元语境 + prompt 去原词
- C quality_failed UI/Materialize 契约
- D 真实问题单测 + 门禁回归
- E 质量失败在 SetDocumentWorkDir/Materialize 前短路(无正式投影副作用)
- 豁免收窄为同行 meta+否定紧邻/引号;handlers 阶段请求字段边界单测锁定
- ExecuteStage 质量失败停链:不吸收事实、不追加 PriorDoc
- 小队 AutoRepair/Success 语义恢复;受控修复仅在 bizdev docRec 与 HTTP 边界强制
- 补强:quality projection / 阶段停链 / 非受控不强制 repair 单测;全量 Go+Web 门禁 PASS
验收标准
- 同 turn + 活跃租约 → 同 run 202、仅一对消息;不同 turn → 仍 409
- SSE 心跳/写期限可测;FE EOF/after_seq 单测
- TaskKey 任务 AutoRepair=false 仍有 DefaultMaxRepairRounds;L204 自检引用不误报;真敷衍仍 FAIL
- quality_failed ≠ completed;Materialize 跳过未过门禁稿
go test -short ./...、go vet、npm test/build、git diff --check