Files
Agent-System/.doc/audit/2026-09-13-document-revision-pg-id-remap.md
weichenandCursor 89163d2d18 docs(test): close document revision runtime UI Round20
Record the official Playwright headless pass for project 6159 and release the runtime integration slot without claiming the whole system production-ready.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 00:17:47 +00:00

2.0 KiB
Raw Permalink Blame History

title, status, created, updated, severity
title status created updated severity
首次生成 PG ID 未同步计数器导致 baseline 被误删 done 2026-09-13 2026-09-14 critical

首次生成 PG ID 未同步计数器导致 baseline 被误删

现象

第19轮真实 UI(schema 31,项目 6158 / doc_proj6158_intake):小队输出、baseline snapshot=249、version=217、candidate id=175、output snapshot id=250、report id=175 均已落库,candidate 保持 ready,任务失败 docrevision: not found(CommitAgentVersion 找不到 input snapshot)。不要把 output snapshot 250 误写成 candidate 250。

根因分析

openTemplatePGLocked 把 PostgreSQL RETURNING id 写入 s.snapshots[249] / s.versions[217],但不推进 nextSnapID / nextVerID / nextEvtID。

当进程内计数器已因其它文档 hydration 停在 248 时:

  1. putSnapshotLocked 执行 nextSnapID++ 得到临时 ID 249,覆盖真实 baseline;
  2. persistAgentCandidateLocked 把输出重映射到 250 后 delete(s.snapshots, 249),误删 baseline;
  3. CommitAgentVersion 按 InputSnapshotID=249 查找 → ErrNotFound;
  4. 任务失败,candidate 仍 ready(不得伪装成功)。

同类无条件 delete(map, oldID) 也存在于 version / event / report / candidate 持久化路径。

严重度

critical

关联整改

证据

  • 失败归档(只读,不改不删):.doc/test-reports/assets/2026-09-13-document-revision-runtime-ui/schema31-round19-ui03-advisor-briefing-docrevision-not-found/
  • Playwright:squad observation rejected: error_terminal:failed

开放问题

  • 无(本缺陷)。Round20 已在项目 6159 重跑 UI-03 PASS。Round19 归档不删。

关闭记录

工程修复合入 dev@b258ab8。验收:../test-reports/2026-09-14-document-revision-runtime-ui-test-report.md。