deskd 0.1.3
Roadmap P2, two of four items (#3).
The ledger is not the transport. New deskd.channels module owns the pluggable egress half — EscalationChannel / CallableChannel, the registry, deliver(), the outbox fallback. deskd.meetings re-exports every historical name (same objects, one registry), so hosts that registered channels through it keep working unchanged.
The terminal rung is not a UI. Arrival at any leaves_machine rung writes a durable wake_escalations row — once per rung climbed, for every reason kind — inside the planning transaction, and mirrors it out through the registered channels after commit. Closes the live gap where only meeting wakes escalating past the machine reached a person. The reference driver's human branch is now log-only; host drivers with their own meeting-specific branch should drop it or meeting wakes escalate twice.
Wired-rung visibility. board().health gains channels (per-channel availability + outbox marker), human_rung_unwired, and undelivered_escalations.
Schema: new wake_escalations table, created automatically on connect. Plans gain a top-level escalations list. No API breaks.