Artifact 1bc499aa1dafc37e59ce94e18759a04c87d9f53ab8ce2f610e3f05d24a69d318:
- File
conformance/horizon_pushcheck_zit_test.go
-
2026-10-22 18:00:28
— part of check-in
[8f89198ca1]
on branch feat/horizon-cones
— feat(sync): refuse a push whose branch cancellation names a stale seed
A check-in that creates a branch cancels its parent's branch tag by the name its clone derived, and under a structural horizon that name came from the seed. Section 5.7 has the origin check it against its own derivation: the handler now looks at each check-in a push stored, once crosslinked, and when the parent is on another branch here it rolls the whole push back with an error naming the stale seed and the parent's branch, spelled as zit's pushSeedCancelFault spells it. A check-in is admitted when the push or the store holds a control artifact cancelling the parent's real branch on it, and so is one whose parent this origin cannot place.
zit's check reads only the push for the correction; this one also reads the store, as the draft allows. Interop runs both ways against zit 9bf7ebfe0f. (user: [email protected], size: 5588) [annotate] [blame] [check-ins using]
-
2026-10-22 19:51:28
— part of check-in
[19d7db48d4]
on branch feat/horizon-cones
— Merge branch 'wip/horizon-step6' into feat/horizon-cones
Appendix A step 6: the merge-base query (pragma horizon-mergebase), deepen (Repo.DeepenHorizon, repo cone deepen), merges and bisect that refuse or deepen across the horizon (ErrBelowHorizon, Checkout.MergeContext), the origin's push-time check of a branch cancellation, seed verification by deepening (Repo.VerifySeed, repo verify --seed), and symbolic names below the horizon resolving. Interoperates with zit at 9bf7ebfe0f. (user: [email protected], size: 5588) [annotate] [blame] [check-ins using]
-
2026-10-22 18:00:28
— part of check-in
[8f89198ca1]
on branch feat/horizon-cones
— feat(sync): refuse a push whose branch cancellation names a stale seed