Repository navigation
chore: release v0.8.0 - #23
Merged
Merged
Conversation
Cursor-expiry repair for bounded logs (#21) and the replica-of-record cleanup (#22). Breaking: ExpiryRepair replaces the reader argument (the old Option<reader> still compiles), Relist is refused on buckets that evict current values, Restore/Auto require a store, artifact manifests move to schema 2 (upgrade importers before exporters), delete_with_version tombstones reach watchers as deletes, and the floor guard reports CursorExpired. Also moves the lockfile off yanked fjall/lsm-tree 3.1.4 to 3.1.10 (and chacha20, spin), so the suite runs on what dependents resolve, and refreshes the README install snippets to 0.8. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0152kQKDdP8XRhoeqisJYpWr
jaredLunde
force-pushed
the
jared/release-0.8.0
branch
from
October 2, 2026 02:19
353cec6 to
461afba
Compare
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.
Release 0.8.0: cursor-expiry repair for bounded logs (#21), the replica-of-record cleanup (#22), and the drift cleanup (#24). Merging this publishes to crates.io via the Release workflow.
Breaking changes
watch_applied'sreaderargument is nowrepair(impl Into<ExpiryRepair<S>>).NoneandSome(reader)still compile:Some(reader)meansExpiryRepair::Relist.ExpiryRepair::Relistis refused on buckets whose retention evicts current values (max_age, per-message TTL,discard: oldunder a limit). The watch fails instead of deleting keys that merely aged out. UseExpiryRepair::Auto { reader, restore }with anArtifactRestore.ExpiryRepair::Restore/::Autorequire a store, and are refused at start without one.ExportManifest::scope). Builds older than 0.8 refuse schema-2 manifests.delete_with_versiontombstones (empty-value writes) reach watchers and folds asKvUpdate::Delete, the same ruleget/scan/keysapply.entry()still exposes the raw tombstone.KvError::CursorExpired(wasWatchError) when retention overruns it.watch_appliedrepairs it in process.Snapshot::stale_keys(current_keys, retention)takes the bucket's retention and returnsOption<Vec<&str>>:Nonewhen retention says the key listing isn't the truth, the same rule asExpiryRepair::Relist. It used to hand raw-API callers the very deletes Repair expired cursors from artifacts on buckets that evict current values #21 fixed.KvWatcher::retention()andSnapshotStore::has_entries()are new provided methods. A customSnapshotStorewhose fold can be large should overridehas_entriesto read at most one entry.protocolgains the repair kernels the production code and the models now share:listing_is_truth,plan_repair,cursorless_start_needs_repair,restore_key,restore_ahead, and their types.Fixes
Rollout
ExpiryRepair::Auto { reader, restore: ArtifactRestore::new(..) }.max_age(or thediscard: oldturnover); on small hotmax_agebuckets, export more often.on_applied.Dependencies
fjall/lsm-tree3.1.4 → 3.1.10 (3.1.3–3.1.5 are yanked);chacha200.10.0 → 0.10.2;spin0.9.8 → 0.9.9. The full suite passes on the new versions.🤖 Generated with Claude Code
https://claude.ai/code/session_0152kQKDdP8XRhoeqisJYpWr