feat(runtime-host): gate accepted Gitoxide ref projection - #33
Closed
zhiiw wants to merge 2 commits into
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add the accepted-ref projection boundary for managed Gitoxide mutations.
promote_candidateCAS operationPrimary invariant
refs/maka/acceptedcan advance from the exact base commit to the exact candidate commit only after SQLite has atomically accepted the corresponding tool outcome, workspace successor, and canonical head. Crash recovery may replay that CAS, but may never rerun Write/Edit or overwrite a third ref value.Ownership / atomicity / failure
Verification
link.exe)Stacked on #32.
中文说明
本 PR 新增 managed Gitoxide mutation 的 accepted-ref projection 边界。
主要不变量是:只有 SQLite 已经在一个事务中接受 tool outcome、workspace successor 和 canonical head 后,
refs/maka/accepted才能从精确 base commit CAS 到精确 candidate commit。进程崩溃后只能重放这个 CAS,不能重新执行 Write/Edit,也不能覆盖任何第三个 ref 值。权限被收窄为三层:SQLite 签发不可伪造的 projection capability;durable candidate owner 同时验证 receipt 与该 capability;短生命周期 Gitoxide helper 只执行经过完整 candidate 身份验证的 ref CAS。已经推进到 candidate 时返回精确重放成功,candidate/ref/capability 任一漂移都 fail closed。