Parents and children of check-in [be103fe35a]
|
2026-10-21
| ||
| 22:19 |
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. check-in: 75ded1b0e0 user: [email protected] tags: feat/horizon-cones, trunk | |
| 22:16 |
Merge branch 'wip/horizon-cone-member' into feat/horizon-cones
The horizon member of a cone and its version-3 serialization, byte-identical to zit's (draft-fossil-horizon-00 §3.3). check-in: 6da46813f9 user: [email protected] tags: feat/horizon-cones, trunk | |
| 22:15 |
feat(cone): serialize the horizon member as cone version 3
A horizon names one check-in by full hash, a held-set rule and a depth. Version 3 carries it between the count and the flagged members, a distinct version so a reader predating horizons refuses the cone instead of reading the lead-in as path members. Forms without a horizon are unchanged, so their digests hold. A horizon-only cone has no path members and is path-dense. Parse re-serializes and compares, so an upper-case hash or any other non-canonical input is refused. HZ-3.3-1 and HZ-3.3-2 are now covered. check-in: 5f637a3b62 user: [email protected] tags: feat/horizon-cones, trunk | |
| 22:04 |
conform(horizon): pin the horizon draft at horizon-rfc e6ee276c89
Moves the horizon copy from 86d4b67372 to e6ee276c89, the check-in the sparse-cone copy is already pinned at. Every change between the two is in §6: §6.1 lets any request carry pragma horizon-cursor, §6.2 adds the SHOULDs to keep the classification and the structural graph per store prefix, and §6.2.6 defines the cursor. Five new rows read them into the table (HZ-6.2-9 to HZ-6.2-13) and HZ-6.1-1 names the cursor; the table is now 50 requirements, none implemented. check-in: be103fe35a user: [email protected] tags: feat/horizon-cones, trunk | |
| 21:27 |
Merge pull request #460 from danmestas/release/v0.14.0
chore(release): v0.14.0 changelog leaf check-in: 6d5357235a user: [email protected] tags: main, trunk, v0.14.0 | |