Files
Agent-System/.doc/archive/ops/handoffs/2026-09-13-document-revision-reviewer-duty-sync.md
T
weichenandCursor 9345109dca docs(ops): archive completed document-revision session files
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>
2026-09-14 00:27:18 +00:00

2.7 KiB
Raw Blame History

title, created, from, to, status, updated
title created from to status updated
reviewer 职责同步:heal 同事务锁后交接 2026-09-13 Cursor-Auto next-agent done 2026-09-14

交接:reviewer 职责同步(暂不合入)

目标(下一位 Agent 应完成什么)

  • 不要在本分支继续改职责语义,除非新审查点
  • 合入前占 CURRENT 集成槽位,再 --no-ff 合 dev;本轮禁止 merge / 重建容器 / 声称 E2E
  • 6145 的 B 仍是空 document_duty,须再走成员 API 写成 reviewer 后自愈才会对齐文档

已完成

  • Heal 以 assigned 为权威;空 assigned 只清失效审核/批准 holder
  • 成员增改/移出:同一事务内 advisory lock + 读旧/冲突 holder + 成员写 + 精确清 reviewer/approver 槽;提交后服务层 heal 新 holder
  • HealProjectDocuments 与成员写共用 pg_advisory_xact_lock(project_id);解析与文档读写同事务;错误回滚
  • 确定性并发 PG:成员写持锁未提交时 heal 进入 pg_locks 等待;提交后旧 reviewer 不复活;第二次 heal 幂等
  • 同步失败仍显式 ERR_DUTY_SYNC;author 不因普通成员变更清空
  • 账本创建失败任务失败

未完成

  • 真实 UI-13a
  • 合入 dev 与共享容器 schema 31 晋升

认领 / 槽位状态

项 值
mutex 已释放 no(document-revision-reviewer-duty-sync 仍 in_progress)
集成槽位 holder 他人 e2e;本任务未占槽
branch fix/document-revision-reviewer-duty-sync
worktree -

若 mutex 未释放,下一位须先在 CURRENT 认领或写 blocker。

关键文件

路径 说明
internal/docduty/revoke.go AcquireProjectDutyLock(与成员写同键)
internal/docduty/store.go heal lock + 解析 + 回填同事务
internal/authz/authorizer.go upsert / setStatus 走同一 lock helper
scripts/run-isolated-duty-sync-pg-tests.sh 隔离 PG 入口

如何验证

go test -short ./...
go test -short -race ./internal/docduty ./internal/authz ./internal/bizdev ./internal/server
cd web && npm test && npm run build
# 隔离库,禁止 agent_system_dev:
./scripts/run-isolated-duty-sync-pg-tests.sh

风险 / Blocker

  • 旧项目未写 document_duty 时,在任成员仍留在文档槽位(有意兼容)
  • 显式降级/退出才会撤 reviewer/approver;author 永不被 revoke
  • 6145 B 不会被臆造为 reviewer

相关链接