Artifact 78db1eab3dac97cb6fffe58234c92fa799a43b0d16529aeb49a59505e00641ef:
- File
internal/sync/observer.go
-
2026-10-21 12:33:15
— part of check-in
[2909f2a676]
on branch feat/submanifest-reader
— feat(sync): walk a sparse clone's keep set per round
A cone-scoped clone no longer classifies the whole held store before its first round. Each round reads only the rows it reaches: structural artifacts go out at their row, and a check-in's row walks its tree, descending only nodes whose key range meets the cone and that its primary parent's tree does not carry over the same range, then sends the in-cone nodes and blobs that walk reaches. Content and sub-manifest rows wait for those walks and are charged as excluded rows are, so a round's work tracks its batch. A check-in whose walk outgrows a round resumes in the next one from progress kept in the clone-cap cookie. Delta bases the round did not reach are served in full form. The walk keeps the depth and visited-node bounds per request.
A round spent wholly inside an excluded run sends nothing yet advances its cursor; a coned clone now continues on that progress instead of reporting that the server stopped sending.
HandleEnd reports the artifacts a cone request classified. (user: [email protected], size: 3843) [annotate] [blame] [check-ins using]
- 2026-10-21 13:02:39 — part of check-in [b71f13c4ab] on branch feat/submanifest-reader — Merge branch 'feat/sparse-keepset-walk' into feat/submanifest-reader (user: [email protected], size: 3843) [annotate] [blame] [check-ins using]
-
2026-10-21 21:20:46
— part of check-in
[7244496a09]
on branch main
— Merge pull request #437 from danmestas/feat/submanifest-reader
feat: sub-manifest trees and sparse cones (draft-fossil-submanifests-00, draft-fossil-sparse-cone-00) (user: [email protected], size: 3843) [annotate] [blame] [check-ins using]
-
2026-10-21 12:33:15
— part of check-in
[2909f2a676]
on branch feat/submanifest-reader
— feat(sync): walk a sparse clone's keep set per round