Repository navigation
WireMesh v0.10.2
·
148 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
WireMesh v0.10.2
Patch release: closes BACKLOG item 5 — the controller's Retire{0} wedge (Phase B / S3, PR #80).
Fixed
- controller: a rotation tracker seeded from a key snapshot with no
activerow gotprior_active_epoch = 0; once promoted it yieldedRetire{0}on every tick,Db::retire_epoch's CAS matched nothing forever, and the stale tracker silently cost the next rotation its firstEpochAck(falling back to the 90s grace promote).prior_active_epochis nowOption<u32>end to end, the coercion is gone from all three seed sites (drive_rotation_for,sweep_rotationsstep 2, and theSync.Reportack path via the hoistedseed_and_record_epoch_acks), anddecideyields the newRotationDecision::Finished— the tracker clears with no DB call.
Evidence
- Full
wiremesh-controllersuite green (47 targets); 54 lib tests incl. five new pins. - Falsification: each seed site's
.or(Some(0))restored in turn turned exactly its own test red (3 runs, 12/12 results), andrecorded_session_generation's unrelated.unwrap_or(0)is pinned as not-a-seed-site. - Clippy identity diff vs main: no new diagnostics.
Unchanged
Automatic key rotation stays off by default. This was hardening, not a timer gate; BACKLOG item 9 (the gateway rotation wedge, PR1/B2) is the remaining code gate, and the timer stays off pending R2/R15 (Phase C).
Full diff: v0.10.1...v0.10.2