Skip to content

release: 0.2.3#17

Merged
Nik7A merged 1 commit into
mainfrom
release-0-2-3
Jul 17, 2026
Merged

release: 0.2.3#17
Nik7A merged 1 commit into
mainfrom
release-0-2-3

Conversation

@Nik7A

@Nik7A Nik7A commented Jul 17, 2026

Copy link
Copy Markdown
Owner

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.20.2.3 (__version__ derives from the installed dist since 0.2.2, so nothing else moves; uv.lock is gitignored).
  • CHANGELOG.md: a 0.2.3 entry above 0.2.2.

What ships

The manifest stopped rewriting itself per record. manifest.json is now a cold checkpoint; manifest.journal takes 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 write manifest.json 4 times, not 2000.

Schema v1.0 → v2.0, and the bump is required (unlike the 0.2.2 pubkeys change): a v2 checkpoint's heads lag by up to a compaction interval, so a v1-only reader would report a false MANIFEST_INTEGRITY on honest evidence. from_dict reads both; only v2 is written; unknown still raises.

Docstring fix: the sink called the manifest "NOT load-bearing for chain integrity"; verify has always treated disagreement as MANIFEST_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 what release.yml builds from.

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.
@Nik7A
Nik7A merged commit 86496f8 into main Jul 17, 2026
1 check passed
@Nik7A
Nik7A deleted the release-0-2-3 branch July 17, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant