Artifact 5ecbefbf59c205b894ac2beca8172d9d2566f5869333e063cda11fc9a79cc360:
- File
internal/horizon/heldset_test.go
-
2026-10-21 22:19:03
— part of check-in
[75ded1b0e0]
on branch feat/horizon-cones
— feat(horizon): compute the held set K under both rules
draft-fossil-horizon-00 Section 3.1 defines K as a function of C, the rule and the check-in graph, recomputed by whoever needs it and stored by no one. internal/horizon.HeldSet computes it from the plink and leaf tables: one bounded plink load, then iterative breadth-first walks.
Merge parents are followed both ways, as zit's walk does (src/sparse.zig, ClassifyState.extend and walkParents). Under the leaves rule each open leaf's ancestry is held up to where it meets C's ancestry, inclusive, so every equally near common ancestor the walk reaches is held. "Open leaf" is fossil's leaf table minus active closed tags rather than zit's "no held child", which keeps a below-C branch merged into a descendant held back to its fork, so any two open leaves keep their merge base in K. C that is not a held check-in is ErrNotHeld; phantom parents are never entered.
Section 8 requires the walk to carry visited-node bounds: the load and every walk share the 1<<20 bound of the other graph walks and fail with ErrBound, and cancellation is honoured. The conformance suite gains cases for HZ-3.1-1 and HZ-3.1-3, both PARTIAL until the horizon member and the content horizon exist. (user: [email protected], size: 9408) [annotate] [blame] [check-ins using]
-
2026-10-21 22:20:45
— part of check-in
[7a5ae7cee7]
on branch feat/horizon-cones
— Merge branch 'wip/horizon-held-set' into feat/horizon-cones
The held set K of draft-fossil-horizon-00 ยง3.1 under both rules, bounded and computed from the check-in graph the repository holds. Conflicts in the horizon suite and table resolved by keeping both slices' cases and rows. (user: [email protected], size: 9408) [annotate] [blame] [check-ins using]
-
2026-10-21 22:19:03
— part of check-in
[75ded1b0e0]
on branch feat/horizon-cones
— feat(horizon): compute the held set K under both rules