HydraCache 0.64.0
HydraCache 0.64.0
0.64.0 strengthens HydraCache's correctness evidence around Raft snapshots,
membership changes, recovery, concurrency, and asynchronous cancellation. This
release intentionally prioritizes executable proof over new product surface: it
adds deterministic, model-based, adversarial, and real-process test tiers while
keeping the public cache and protocol scope stable.
Highlights
- Added immutable snapshot and committed-tail replay proofs, including snapshots
taken during membership changes and fail-loud handling of malformed,
truncated, stale, swapped, and misdirected durable artifacts. - Expanded the Raft fault matrix with deterministic message filtering,
composed-fault nemesis schedules, shrinking, bad-seed replay, bounded model
checking, leadership handoff, snapshot-delivery fan-out, retry idempotency,
clock-skew safety, rejoin, and recovery scenarios. - Added independent concurrency evidence through loom, Miri, ThreadSanitizer,
mutation testing, invariant canaries, and ordinary contention tests. These
tiers remain separate so one green detector cannot stand in for another. - Added trace-driven cache-policy characterization against Belady, cache-core
race and expiry-storm tests, connection/resource chaos, adapter/configuration
property corpora, parser fuzz corpora, and differential behavior checks. - Added an executable TLA+/TLC election model and a separate Rust state-space
model, each with a negative canary and explicit traceability to implementation
invariants. - Added W39 cancellation-safety contracts for local single-flight loading, the
Axum client and token-safe lock path, and Raft proposal/shutdown recovery.
Cancellation outcomes are classified explicitly and retries remain
command-idempotent. - Added machine-readable release governance: registered gated tests, exact-commit
evidence receipts, dynamic expected-red canaries, quarantine expiry, fast-tier
budgets, deterministic logical digests, and a coverage ratchet. - Added tag-gated crates.io automation. A successful full CI run for a release
tag publishes workspace crates in dependency order through the protected
releaseenvironment, verifies fresh crates.io consumers, and only then
creates the GitHub Release.
Compatibility And Scope
- The workspace MSRV remains Rust
1.88. - The Redis RESP facade and protocol-v4 lock subset introduced in
0.63.0
remain unchanged; this release does not add Redis Cluster, general Lua,
multi-endpoint lock, or cross-daemon RESP key-visibility claims. - In-process and deterministic snapshot/backpressure proofs do not claim
production slow-TCP or receiver-process-kill behavior. Those stronger
real-process and operational rows remain assigned to0.66. - Previous-version compatibility is proved against the frozen
v0.63.0
wire/snapshot/API baseline. Mixed-version daemon rollout remains a later
operational gate. - Test-only failpoints, canaries, fuzz harnesses, and cluster testkits are not
part of the published runtime dependency graph.
Verification
The release candidate is accepted only when the ordinary Rust/MSRV checks and
all registered 0.64 evidence lanes are green, including performance and
coverage budgets, Redis compatibility proof, DST/soak, Raft corner cases, loom,
fuzz corpus replay, mutation shards, Miri, ThreadSanitizer, dynamic canaries,
TLA+/TLC, cancellation safety, packaging, and post-publish consumer checks.
The authoritative implementation boundaries and exact commands are recorded in
V0_64_RAFT_SNAPSHOT_AND_AGENTIC_DEBUGGING_TEST_EXPANSION_PLAN.md,
GATES.md, and TESTING.md.
Not Shipped In 0.64.0
- New cache, Redis, Hazelcast, ownership-routing, or consensus APIs.
- Production snapshot streaming and slow-receiver process-kill guarantees.
- Mixed-version daemon rolling upgrades and external Jepsen process drivers.
- Backup/PITR, operator scale chaos, or new disk-backed compaction product
features beyond the existing tested seams.