Artifact 7ec6a1516e03db7877a880957bb4fe98358ed93eae18b2243dc82329eb37112f:
- File
internal/content/sparse_horizon_test.go
-
2026-10-22 11:18:55
— part of check-in
[f1f4240f40]
on branch feat/horizon-cones
— feat(sync): classify horizon stores locally against dense peers
No peer speaks the horizon pragmas yet, so a content-horizon store receives whatever a dense peer sends (draft-fossil-horizon-00 §6.3). The received-content filter now applies the horizon's classification, read from internal/content rather than re-derived: blobs below the horizon become elided phantoms and are counted in the result's Elided. Blobs no held manifest names yet stay as unreferenced holdings, and retained delta bases stay transit (§4.2).
A horizon store also acts on no cluster (§4.5). Crosslinking a cluster applies its tag but makes no member phantoms. The filter drops the cluster's content, and classification elides any phantom that carries the cluster tag. The client stops sending req-clusters. Path-cone-only stores keep today's cluster behaviour.
Conformance cases run against go-libfossil's handler and fossil(1): clone and pull, deepen, demand fetch through UpdateContext, transit deltas, and cluster rules. (user: [email protected], size: 15744) [annotate] [blame] [check-ins using]
-
2026-10-22 11:19:37
— part of check-in
[27b8439777]
on branch feat/horizon-cones
— Merge branch 'wip/horizon-sync' into feat/horizon-cones
A content-horizon store against any peer: below-horizon blobs it is sent are recorded as elided rather than stored, it holds and requests no cluster, and a below-horizon blob an operation needs is fetched on demand. (user: [email protected], size: 15744) [annotate] [blame] [check-ins using]
-
2026-10-22 11:18:55
— part of check-in
[f1f4240f40]
on branch feat/horizon-cones
— feat(sync): classify horizon stores locally against dense peers