Files
Agent-System/.doc/adr/2026-09-14-final-artifact-vault.md
T
weichenandCursor 20d50ef9f1 docs(adr): record final artifact vault authority and fail-closed rules
Lock the three-layer contract, no tenant_id, union-deny delete, and scratch-only recover before storage work.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-14 10:51:25 +00:00

1.5 KiB
Raw Blame History

ADR:最终成果保险库(FAV)

状态

已接受(2026-09-14,落地计划 V0–V6)

背景

运行库 PostgreSQL 与 workspace 投影会一起丢失或错挂。需要独立保存已确认终态的精确字节,但不能成为第三套完整业务真相源,也不能用目录扫描猜测“最终文件”。

决策

  1. 三层权威:PostgreSQL 管项目/权限/工作流/版本关系;workspace 是可清理投影;FAV 只对已归档 payload、manifest、来源证据和删除状态权威。
  2. 无 tenant_id:安全边界沿用 environment + project_members + role-admin。未来组织层另立 ADR。
  3. 事件准入:只接受方案准入表中的数据库事实。显式 publish/pin 不能绕过终态 allowlist。禁止扫描 workspace。
  4. 同事务冻结:终态事务把精确 payload/SHA 写入 staging 并写 unpublished outbox;publisher 不得重读可变消息行。
  5. union-deny 删除:运行库删除账本或 vault tombstone 任一侧删除即拒绝读取/恢复。
  6. 恢复:只进 scratch 库,默认 recover-as-collection。禁止 GET 自动写回或覆盖现有 head。
  7. 互补:FAV、migration corpus、完整 DB backup/PITR 互相不能替代。不作为 409/split-brain 绕行。

后果

  • 实现从 feature/final-artifact-vault 推进;mutex=artifact-vault。
  • Goose 从 00034 增加 FAV 表(00033 已被 task-run 治理占用)。
  • 降级读取默认关闭(FAV_DEGRADED_READ),Unit A 纠挂完成前不得对现网开启。