fix(release): 完成分发身份与 CAS legacy ownership 收尾
bat-rust / Build and test Rust (push) Canceled after 0s
bat-rust / Build and test Go API (push) Canceled after 0s

This commit is contained in:
2026-09-13 10:44:24 +08:00
parent 786b739f99
commit 5bae90cb14
14 changed files with 867 additions and 109 deletions
+11 -6
View File
@@ -52,13 +52,18 @@ TextUnit scope、source history 和 approved review。worker、TM 复用、人
`release.status/list/distribution/cleanup` 已由 Rust 从既有状态、manifest、文件系统和
CAS/reference 元数据统一生成,Go 仅 typed 转发。CAS repository 的对象文件、引用计数
和 GC 通过跨进程操作锁协调,release-local CAS 引用以 `(ownership_id, ordinal)` ownership
记录幂等释放;新清单持久化 `ownership_id`,旧清单走不生成新 identity 的 legacy
cleanup pathlocalized publish/rollback 通过 output-root 单写者锁和事务日志恢复
记录幂等释放;新清单持久化 `ownership_id`,旧清单按 output-root scope、稳定 source
identity 和 generation-aware legacy cleanup path 迁移localized publish/rollback 通过
output-root 单写者锁和事务日志恢复
current、version-state、version 目录,publish 只有最终 `verified` phase 才能恢复为已提交。
localized release 还写入实际 bytes/BLAKE3`localized-distribution-manifest.json`
`release.distribution(destination=...)` 使用单条轻量 metadata lookup,返回 exactly one
entry 且不在分发热路径执行完整 release audit`release.cleanup execute` 与 official
sync 共用同一个 `.official-sync.lock`localized cleanup 继续使用 `.localized-release.lock`
localized release 还写入实际 bytes/BLAKE3、完整 source mapping identity 和 destination
index 的 `localized-distribution-manifest.json`official download manifest 同样持久化
canonical mapping identity 和 destination index。`release.distribution(destination=...)`
只比较 persisted identity、查目标索引并校验单文件,返回 exactly one entry 且不在分发
热路径执行完整 release audit`release.cleanup execute` 与 official sync 共用同一个
`.official-sync.lock`localized cleanup 继续使用 `.localized-release.lock`。legacy CAS
manifest 首次 cleanup 时按 output-root scope、release generation 和稳定 source identity
迁移;已有 basename ledger 的部分 cleanup 保持兼容 key,完成后同名新 generation 不再复用。
---