50 descendants and 50 ancestors of 04ddaed6a6e6ec3b
|
2026-10-21
| ||
| 11:51 |
feat(sparse): public policy-form demand fetch with saved-peer default
Repo.SetStoreConeContext replaces the store cone and pulls newly covered elided artifacts from an explicit peer through ordinary cone-scoped sync; with no peer it refuses naming the elided count, and a cancelled context refuses before any request, both leaving policy unchanged. repo cone store shows or replaces the store cone, defaulting the peer to last-sync-url. Closes SC-6.4-1 and SC-6.4-2. check-in: 08efefff20 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:48 |
test(sparse): pin tree-manifest holdings on aware and cone-ignorant receive
An aware clone and pull hold exactly the spines, in-cone nodes and in-cone blobs and never request or receive the remainder. Against a cone-ignorant server the requester elides exactly the blobs every F card names out of the cone and keeps every structural artifact, as zit does. Expected sets come from the origin's decks. check-in: af86aff844 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:48 |
feat(checkout): verify a present R card on extract, as fossil's checkout
Extract now runs fossil's repo-cksum check after materializing: a present R card is compared with the aggregate over every file the manifest names, read from the store, so a sparse checkout over a dense store reaches the same verdict as a dense one, and a sparse store skips the check. Like fossil, a disagreement is a warning delivered through ExtractOpts.Warn and never fails the extract; repo-cksum off disables it. The conformance case builds its repository with fossil and checks fossil warns exactly where go-libfossil does. Clears the SC-4.3-4 scope note. check-in: 318f46de9e user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:45 |
feat(sync): serve partial-mirror clones from the partial-mirror setting
A sparse store refuses a clone its cone does not cover unless the boolean partial-mirror repository setting is on, read as fossil reads a boolean setting. It reaches HandleSync, XferHandler, ServeHTTP and repo serve alike; libfossil.SettingPartialMirror names it. Closes SC-5.3-2. check-in: 6012d82bd6 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:44 |
feat(sparse): expose narrow-then-compact as Repo.CompactStore and repo cone compact
The public entry point refuses a dense store, as zit's pack --drop-elided does, and drops exactly the blobs that only out-of-cone F cards name. The test computes that set from the held artifacts, then verifies the store and recovers every dropped payload by widening through SetConeContext. check-in: 774f579bfa user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:42 |
fix(sync): bound a sparse clone round's walk by the dense batch measure
A cone-excluded row is charged at its expanded size plus card overhead, so a round over a long excluded run stops where a dense batch would and the cursor resumes it, instead of walking the whole run in one round. SC-6.2-1 stays partial: ordinary keep-set discovery still reads the whole store. check-in: 1da7f0f002 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:42 |
test(conformance): refuse a cone walk past the visited-node bound on the wire
Many check-ins sharing one wide sub-manifest cross the 1<<20 visit bound at depth two; 1023 roots are served and 1024 are refused the way depth 17 is. Clears the SC-8-2 scope note. check-in: 8652936469 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:40 |
test(conformance): cover widening over a sparse store
Widening a sparse-store checkout with a peer fetches and materializes exactly the newly covered payloads; with no peer it refuses naming the elided class and changes nothing; a peer lacking the content is refused with the unavailable artifact named. Clears the SC-3.5-2 scope note. check-in: fcb7f90f2c user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:35 |
docs(changelog): record cone-scoped transfer and record-only merge
The sparse-store entry said nothing yet fills a store sparsely and the sparse-checkout entry said a merge touching an uncovered file is refused; both are no longer true on this branch. check-in: 7720f39cd0 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:34 |
test(conformance): restate what SC-4.1-2 and SC-4.4-1 still lack
The checkout lane's review blockers are fixed and re-reviewed, so the two scope notes now name only what is unverified: durable crash recovery of the private marker, a conformance case for reverting a record-only change, and stash apply on a sparse checkout. check-in: 7163d16293 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:30 | Merge branch 'fix/sparse-update-vmerge' into feat/sparse-consolidated check-in: ac542fa1de user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:29 |
fix(checkout): restore restoreCommitted's empty-path assertion
Only managed revert steps reach it, each with a resolved path, so the fallback for an empty path was dead code standing in for a broken invariant. check-in: a3cc82b191 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:29 |
refactor(checkout): drop the unreachable record-only merge payload path
Record-only merge steps return before the content switch, and a both-changed path outside the cone is refused, so storeMergePayload had no production caller. Its tests called it directly; they go with it, and the merge-failure test keeps its vmerge assertion. check-in: dac73e55c9 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:27 |
fix(checkout): hold record-only changes to the commit queue
A partial commit wrote every pending change outside the cone into the check-in. Such changes now behave as disk changes do: a full commit records them, a partial commit leaves them pending against the new version, and a partial commit is still refused while a merge is pending. Fossil-oracle tests cover the dense analog of each case. check-in: 802906e3b8 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:26 |
docs(sync): state the prepared sparse service's liveness limit
After the observed generation changes, every request falls back to dense and the service never re-prepares. Say so where the type is documented, so a caller does not expect sparse serving to resume after a foreign commit. check-in: 322c8ef406 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:26 |
fix(content): charge the sparse card budget only to decks
Preparation counted newlines in every artifact against the 1M card budget, so a repository holding one large multi-line text file was refused far below its byte limits. Only an artifact with a verified Z card can parse as a deck, so only those are charged cards and parsed; the byte budgets still bound all content. check-in: 2f0f64f464 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:25 |
fix(sync): send the private notice for a prepared sparse gimme
The prepared index left private and shunned RIDs out, so a gimme for an in-cone private artifact failed keeps() and got no reply, where the dense handler sends the private igot. A client never told the artifact is private can keep requesting it. The index now answers cone membership only, as the dense keep-set does; the handler's live private and shun gates decide visibility, so no payload is exposed. check-in: 87f44dbf99 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:24 |
fix(checkout): keep a pending merge across a sparse update
Fossil's update leaves vmerge alone, so the next commit records the merge parent. The sparse update cleared vmerge, losing the parent and letting a partial commit through while the merge was still pending. check-in: 5a070508db user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:18 |
fix(manifest): bound MergeParentFiles' required-content check by the caller's context
The fallback that explains a parent whose tree the store does not hold ran under context.Background, so a cancelled commit still paid for it. Commit passes its context; snapshot, which has no deadline, says so explicitly. check-in: c25e714b08 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:18 |
fix(sync): parse each structural node once in the required-content walk
The closure walk parsed a node before checking whether its frame had been visited, so a tree whose S cards name one sub-manifest many times parsed it once per reference: a 616 KB node took 0.46s at 50 references and 3.7s at 400. The visit and byte limits bound what is held, not that work, and a caller without a deadline could wait for days inside the budget. The walk is its own function now, parsing through a callback it calls at most once per (artifact, baseline) pair, so a test can count parses. check-in: 6824f7701a user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:15 |
test(conformance): register sparse protocol bound cases honestly
(cherry picked from commit f10fb0eca15614a98bdecfc9d715464615738924) check-in: db1f83c19a user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:06 |
test(checkout): preserve public phantom visibility after merge failure
(cherry picked from commit fc1c110fa16c178c73a4bbf937c1f01cc41d5795) check-in: 20b51362a4 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 11:06 |
fix(checkout): refuse unstamped legacy sparse undo images
(cherry picked from commit 63520cd9e0d6ed4f96be8b302dfc217ee57da82f) check-in: 9d336c0907 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 02:10 | fix(checkout): refuse occupied destination SQLite sidecars check-in: 1208731132 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 02:04 | test(conformance): register canonical sparse recovery vectors check-in: 6e27cad4ad user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:58 | test(conformance): retain partial review gate for physical sparse records check-in: 20c05b6e64 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:58 | test(conformance): retain partial sparse lifecycle coverage check-in: 44737f0cbc user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:58 | test(conformance): register record-only sparse merge coverage check-in: ed3318aae5 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:56 | feat(sparse): recover required update content with explicit context check-in: 5e75c2e59a user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:52 | fix(checkout): retain update target across readiness refusal check-in: f5e355bd08 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:50 | fix(checkout): retain extra update failure rollback state check-in: 1fd5efc3bb user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:45 | feat(checkout): add nonmutating update recovery planning check-in: 11b36b946c user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:41 | Merge commit 'ba688b7' into feat/sparse-required-content check-in: f25fae939d user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:38 | fix(sparse): preflight exports and explain local read refusals check-in: 068797500b user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:26 | fix(cli): discover sparse checkout markers consistently check-in: 88b3cdd2ef user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:25 | test(checkout): align public native interoperability with private sparse metadata check-in: b118dd3935 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:25 | fix(checkout): skip carried baseline recovery for unborn checkouts check-in: 342ed76b79 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:25 | test(checkout): isolate native sparse marker interoperability check-in: 8df112e120 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:25 | fix(checkout): match recovery selection to enqueue union semantics check-in: 7f6bb342c3 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:25 | Merge commit '24fb005' into feat/sparse-required-content check-in: acd2d2ea27 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:24 | fix(cli): discover private checkout state during sparse recovery check-in: 740fd56d95 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 01:11 | fix(sparse): recover exact carried payloads for selective checkins check-in: b03e747f55 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:54 | feat(checkout): expose nonmutating carried-file recovery selection check-in: 04a8ea0b25 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:53 | fix(sparse): bind checkout recovery to full pending-state snapshots check-in: 0f9775add6 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:52 | fix(checkout): finalize published commits despite late cancellation check-in: f1f8cd6cb8 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:52 | test(sparse): expose selected checkin carried-payload recovery gap check-in: ed971d634b user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | feat(checkout): expose nonmutating context recovery guards check-in: 4c8312ae48 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(checkout): cover control-path extraction and data collisions check-in: 59f53f4abc user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(conformance): require widen and rerun for outside merge conflicts check-in: 3afd0481ed user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(conformance): discover private checkout state in sparse fixtures check-in: 4e00e588c9 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): carry outside pending bytes across update check-in: 04ddaed6a6 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): bind undo images to their materialization cone check-in: c06eb7bc22 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): mark record-only mode outcomes pending for revert check-in: 052b3e87cb user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): preserve public phantom visibility when filling merge bytes check-in: 31e9096847 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(stash): require widening before replaying excluded paths check-in: d1d2c218c0 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): preserve wider undo images without escaping cone check-in: 1f215be1a4 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(checkout): prove native commit after sparse densification check-in: a95deda46a user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): migrate legacy sparse records behind private marker check-in: 34d90cea93 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): protect disk metadata with simulated working storage check-in: 3fda9d3007 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): match sparse pending merge lifecycle check-in: 3779a280ac user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): separate sparse managed rows from pending outcomes check-in: c82ec862f2 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): stage sparse marker transitions before disk changes check-in: cf1e964bf5 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): isolate newly created sparse checkout metadata check-in: be8abf5ed3 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(conformance): keep record-only cases available on wasm check-in: 1d7c669153 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | test(conformance): cover record-only merges and native checkout boundary check-in: 7a7b6bfaee user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:43 | fix(checkout): preserve record-only sparse merge changes check-in: 139d96b210 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:41 | fix(sparse): retain explicit cone widening for future pulls check-in: e7ed09f027 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 00:30 | fix(sparse): bound local recovery and validate retained closure atomically check-in: 16c802bdd9 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
|
2026-10-20
| ||
| 23:53 | feat(sparse): add explicit public and CLI required-content recovery check-in: f57ca7de6a user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 23:51 | feat(sparse): recover exact operation-selected payloads safely check-in: 221f0135ce user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 23:17 | fix(sparse): preserve elided payloads across canonical recovery check-in: 40cdcdc837 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 22:47 | feat(sparse): recover exact required structural content atomically check-in: 7b478974f3 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 21:38 |
perf(manifest): bound repair work by the linked batch (#455)
Propagate tags and apply scheduled leaf rechecks before each link transaction commits. Preserve sparse metadata repair, pretagged merge-parent rechecks, and rollback-safe retries. Tracked in #432. check-in: b38bf23f79 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 21:00 |
fix(verify): audit leaves and parent ancestry (#454)
Use same-branch and arrival-order evidence for leaf validation, validate parent overrides, and match Fossil parent tokenization. Preserve sparse readiness and delta-tree scans within one verification snapshot. Tracked in #433. check-in: 35672aadc7 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 19:07 |
fix(sync): preserve cleanup after a fatal clone refusal
Keep Fossil's mandatory operation-less second round without accepting any cleanup payload or clearing the refusal. Exercise dense and sparse refusal alongside the existing client compatibility cases. check-in: a453db484d user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:33 | docs(conformance): record partial-tree lifecycle support and remaining limits check-in: b29428a4e2 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:31 | Merge commit 'bac111b' into feat/submanifest-reader check-in: e79a5cef6c user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:30 | fix(manifest): scope sparse readiness proof to crosslink transactions check-in: 7ee2a8713d user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:23 | test(manifest): cover sparse dependency arrival and cascade orders check-in: 61bc211295 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:13 | fix(verify): share snapshot-scoped sparse checkin readiness check-in: fe64b28b2d user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 18:10 | Merge branch 'feat/submanifest-reader' into feat/sparse-tree-writer check-in: 08f1cd28ac user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:41 | fix(manifest): preserve sparse ancestry and refuse incomplete file history check-in: ea3c1d6cc3 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:31 | Merge public-content publication while preserving sparse carried files check-in: fb96ac5642 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:26 | feat(manifest): derive sparse tree metadata with explicit completion gaps check-in: e96adae02f user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:26 | fix(checkout): enumerate covered files over sparse tree stores check-in: 6878fdd664 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:20 | Merge commit '45d80da' into feat/submanifest-reader check-in: eaa6316fd7 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:20 | Merge commit 'f2cf3ed' into feat/submanifest-reader check-in: 1fe16a6bf5 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:20 | Merge commit '80cfe22' into feat/submanifest-reader check-in: 4d78b267c8 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:20 | test(conformance): require immediate error-only clone refusal check-in: 7bc35863dc user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:18 | test(conformance): register sparse wire cases without hiding remaining gaps check-in: 743a561747 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:17 | test(conformance): bound sparse protocol fixtures and document test scope check-in: bf7bc337f5 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:15 | test(sync): cover failed cone fetch intent and retention counts check-in: 34adfc91d0 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:15 | Merge commit '20b56c4' into feat/submanifest-reader check-in: 1f9f94350f user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:13 | test(conformance): execute sparse sync protocol cases over loopback wire check-in: 233143abec user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:12 | fix(sync): retain raw sparse provenance across rebuilds check-in: 5d727706dd user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:06 | Merge branch 'feat/submanifest-reader' into feat/sparse-tree-writer check-in: 320629c0cb user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:06 | fix(manifest): filter tree baselines before delta enumeration check-in: 9419a375f0 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:01 | Merge sparse transfer with rebuild-safe compaction and schema guards check-in: a16e178c81 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 17:00 | Merge commit '00162b8' into feat/submanifest-reader check-in: e73fd9e276 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 16:58 | test(conformance): distinguish subtree classification from writer support check-in: 440f271b07 user: [email protected] tags: feat/submanifest-reader, main, trunk | |
| 16:58 |
test(sparse): preserve compaction provenance across rebuild and sync
Exercise mixed held and nested missing S siblings after clearing and rebuilding derived tables. Repeated compaction preserves holdings and elided identities; ordinary sync must not request the rebuilt elided artifacts. check-in: 29a11b0aa8 user: [email protected] tags: feat/submanifest-reader, main, trunk | |