Files
buzz/crates
Duncan 59165297d1 fix(acp): close inbound permission-decision lifecycle gap
A fire-and-forget permission_decision over the observer control channel is
lost if the harness socket is down when the decision is published, stranding
the card. Close both halves:

- Harness (buzz-acp): a retransmitted decision whose nonce was already applied
  now acks success-shaped (already_decided) via a recently-decided nonce set
  with a retention window, instead of failing no_active_turn/channel_closed.
- Desktop: a retransmit-until-acked orchestrator bounded by the card's
  expiresAt, with already_decided treated as success (never increments
  deliveryFailed). Frames without expiresAt fall back to a 300s freshness
  window from the frame timestamp.

Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-08-28 11:36:42 -04:00
..