Skip to content

WireMesh v0.10.2

Choose a tag to compare

@github-actions github-actions released this 25 Aug 22:46
· 148 commits to main since this release
Immutable release. Only release title and notes can be modified.
v0.10.2
2790292

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 active row got prior_active_epoch = 0; once promoted it yielded Retire{0} on every tick, Db::retire_epoch's CAS matched nothing forever, and the stale tracker silently cost the next rotation its first EpochAck (falling back to the 90s grace promote). prior_active_epoch is now Option<u32> end to end, the coercion is gone from all three seed sites (drive_rotation_for, sweep_rotations step 2, and the Sync.Report ack path via the hoisted seed_and_record_epoch_acks), and decide yields the new RotationDecision::Finished — the tracker clears with no DB call.

Evidence

  • Full wiremesh-controller suite 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), and recorded_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