v2.4.0 — Scoped Channels & Session Affinity
DB-backed session-ownership lease: for an addressed conversation, only the owning session of the addressed agent responds; every other session and agent stays silent. Solves multi-session double-emit and native wake hitting/spawning the wrong session.
- SessionLeaseStore (atomic CAS claim_or_skip, heartbeat, per-turn fencing token, session_presence registry, preemptPrefix) — published in @murmurv2/core@0.3.0.
- Native wake = presence-deferring, lease-gated fallback (createNativeLeaseGate) behind MURMUR_SCOPED_CHANNELS (default OFF, backward-compatible).
- All delivery paths honor one claim. Verified live: N sessions -> exactly 1 emit, native defer (no competing thread).
See CHANGELOG.md for details.