mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Adds NoActiveLease, OwnerMismatch, and FutureGeneration alongside
StaleGeneration so every fence-visible reject is a typed variant, never
a generic Transport(..) — Wren's chaos-gate ruling: live kill-9 /
partition / replay evidence must be unambiguous, and the harness
counters (mesh_fence_rejections_total{reason=...}) key off these.
Purely additive, non-serialized: the wire-level fence signal remains
GoodbyeReason::StaleGeneration in wire.rs — zero wire-shape change.
Field naming per Wren: NoActiveLease carries frame_owner_runtime_id
(the frame's *claimed* owner; no current owner exists by definition).
Consumed by the session-directory lane's validate_fenced_header().
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>