Artifact 718fc45da9fb5ced93c9770ce94bf6c1a47f1780ce9d716279d17ad559f31227:
- File
internal/sync/handler.go
-
2026-10-23 01:42:00
— part of check-in
[2c0329ede4]
on branch feat/horizon-cones
— fix(sync): void a cursor when a fork moves a leaves-rule meeting point
Under the leaves rule a new childless check-in forked below C can move the meeting point of its ancestry with C's deeper, and older check-ins join K together with their blobs. Those sit below every cursor the origin had handed out, so a client holding one was never told of them: the origin recorded a reclassification only when a phantom was filled (6.2.6 requires recording any change of the classification).
The origin now also voids a cursor when K holds a check-in at or below it that the held set computed over the check-ins it held through that cursor lacked (horizon.Graph.JoinedAfter, a walk bounded by rid). Like the slot walk's void it is a function of the store, so the memo and a fresh classification agree: TestHorizonMemoEqualsFresh compares them at every cursor and now requires some world to void this way, and a cursor conformance case pulls under the leaves rule across such a fork, the stale cursor answered as if absent once and the next one honoured. (user: [email protected], size: 85875) [annotate] [blame] [check-ins using]
-
2026-10-23 01:57:19
— part of check-in
[c216f38b6a]
on branch feat/horizon-cones
— Merge branch 'wip/repin-2445' into feat/horizon-cones
The horizon draft re-pinned to zit horizon-rfc 24457c7dd6, the batch agreed with zit's author: the list-form merge-base query (at most two secondaries; silence when a named check-in is unknown), must-ask when either ancestry crosses the horizon, deepen refusing without a common ancestor, boundary labels over every held manifest, the seed's date and label, the structural fallback dropping the seed, and cursors voided when the leaves rule's held set grows below them. (user: [email protected], size: 85875) [annotate] [blame] [check-ins using]
-
2026-10-23 01:42:00
— part of check-in
[2c0329ede4]
on branch feat/horizon-cones
— fix(sync): void a cursor when a fork moves a leaves-rule meeting point