pub enum HarnessOperatorTerminalEventV1 {
TerminalFrame {
sequence: u64,
session: HarnessRuntimeSessionAddressV1,
frame: HarnessRuntimeTerminalFrameV1,
coalesced_since_last: u32,
},
Ping {
sequence: u64,
},
}Expand description
Long-lived, server-push counterpart to a SubscribeTerminal connection –
see HarnessOperatorEventV1’s own doc comment for the shared framing this
also uses. Deliberately its own type, not a variant of
HarnessOperatorEventV1: that type’s Lagged/SnapshotBaseline pair
promises a full task/run/node resync on overflow, which is both wrong for
a terminal frame (there is no “task/run/node” to resync, only a screen
that is already self-contained) and unaffordable at terminal-frame volume
(see TerminalSubscriberRegistry’s own doc comment for the coalescing
discipline this type’s coalesced_since_last field reports on).
Variants§
TerminalFrame
Sent once per session immediately after a successful subscribe (the
tail of whatever TerminalBufferRegistry already holds, or nothing
if the ring is empty for that session – a legitimate state for a
pane with no output yet), and again every time that session’s ring
gains a strictly newer frame. Always a full screen, never a delta
(see backlog item 4) – a client that missed intermediate frames is
already caught up the moment this one arrives.
Fields
session: HarnessRuntimeSessionAddressV1Ping
Same keep-alive rationale as HarnessOperatorEventV1::Ping: this is
a physically separate connection with its own dead-peer-detection
problem, independent of the task/run/node subscription’s.