release: 0.2.3#17
Merged
Merged
Conversation
The manifest journal (PR #16): manifest.json becomes a cold checkpoint and a new append-only manifest.journal takes one line per record, cutting per-record manifest writes from O(manifest) full rewrites to O(1) appends at the same fsync count. Schema v1.0 -> v2.0 (bump required; a v2 checkpoint's heads lag, so a v1 reader would report a false MANIFEST_INTEGRITY). Also corrects the sink docstring that called the attestation a cache.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cuts 0.2.3. One feature since 0.2.2 — the manifest journal (#16, already merged) — plus the docstring correction that shipped with it.
Two files, mirroring the 0.2.2 release PR:
pyproject.toml:0.2.2→0.2.3(__version__derives from the installed dist since 0.2.2, so nothing else moves;uv.lockis gitignored).CHANGELOG.md: a0.2.3entry above0.2.2.What ships
The manifest stopped rewriting itself per record.
manifest.jsonis now a cold checkpoint;manifest.journaltakes one append-only line per record carrying the resulting chain/file state. Same fsync count, O(1) bytes instead of O(manifest). A host measured the old behaviour at ~179× faster manifest growth than the records themselves under per-chain-per-run; re-measured, 2000 records / 200 chains now writemanifest.json4 times, not 2000.Schema v1.0 → v2.0, and the bump is required (unlike the 0.2.2
pubkeyschange): a v2 checkpoint's heads lag by up to a compaction interval, so a v1-only reader would report a falseMANIFEST_INTEGRITYon honest evidence.from_dictreads both; only v2 is written; unknown still raises.Docstring fix: the sink called the manifest "NOT load-bearing for chain integrity";
verifyhas always treated disagreement asMANIFEST_INTEGRITY. The manifest is an attestation, not a cache — now documented, guarded by a test, no behaviour change.After merge
Tag the merge commit:
git tag -s v0.2.3 -m "0.2.3" <merge-sha>and push the tag — same as 0.2.2, where the tag on the release merge is whatrelease.ymlbuilds from.