One frame waiting to be written to the host. Tracks the saga_id
when known so we can emit a meaningful SagaFailed if the frame
is dropped on overflow / timeout.
Phase CPD-1 (cross-process dispatch) — envelope enum for frames
sent over the launcher → host pipe direction. Today the host’s
read loop only expects Event JSON; CPD-2 extends the read loop
to recognize this tagged union and dispatch by kind:
Maximum disconnect duration before the pending buffer is flushed.
After this, every buffered Command’s saga is failed with
"host unreachable". See spec §3.9.
Maximum number of frames buffered while the host is disconnected.
On overflow, the oldest frame is dropped; if it was a Command,
Event::SagaFailed is emitted for the saga whose dispatch was
lost. See spec §3.9.
Serialize a HostFrame as newline-delimited JSON and write it
to a writer. Used both for direct writes (connected) and for
pending-buffer drain (post-reconnect).