Enroll branch merge in RFC-022 write path (#345)

This commit is contained in:
Andrew Altshuler 2026-07-11 19:02:20 +03:00 committed by GitHub
parent bd4c614e42
commit e0e145aa92
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 3722 additions and 464 deletions

View file

@ -258,10 +258,15 @@ them explicit.
schema-apply lock branch) — design it before promoting multi-process write
topologies.
- **Fork ownership is durable, but Lance ref deletion is not conditional:** a
first-touch Mutation/Load table no longer creates its target ref while
preparing. Under schema → branch → table gates it revalidates, durably arms a
schema-v3 sidecar naming the target, creates the ref, then stages branch-local
files and commits. Both `reclaim_orphaned_fork_and_refork` and
first-touch Mutation/Load or BranchMerge table never creates its target ref
before recovery ownership is durable. Under schema → branch → table gates it
revalidates and arms a schema-v3 mutation/load or schema-v4 merge sidecar
naming the target; branch merge additionally records the exact fork version
and a pre-minted ordered transaction chain for every logical data effect,
commits that chain without transparent conflict retries, and confirms the
minted target `BranchIdentifier`. Recovery proves the exact chain rather than
treating numeric HEAD movement as ownership. Both
`reclaim_orphaned_fork_and_refork` and
`reconcile_orphaned_branches` consult pending sidecars before destruction; a
foreign claim is conflict/indeterminate, never permission to delete. Full
recovery accepts sidecar-before-ref crashes. When `BranchContents` is absent,