The strop UI protocol (0056 AR09/AR10): one bounded, versioned,
non-graphical contract between the strop --ui-stdio backend and any
frontend process (the future Windows GUI, test drivers, automation).
Shape:
- Bytes: bounded Content-Length framing ([
frame]), the convention strop-lsp already pins at its trace boundary. stdout carries frames only; diagnostics stay on stderr. - Envelopes: [
message] — handshake, admitted actions, acknowledgements with explicit outcomes, semantic snapshots/deltas keyed by backend incarnation + view generation, host effects, resync and shutdown. - Actions: [
message::AdmittedAction] mirrors the engine's admitted input surface one-to-one — there is no parallel command table. - Client: [
client::Client] is the pure readonly cache (snapshot/delta application, resync poisoning); [driver::Driver] is the stdio process transport with deterministic state/revision barriers.
The client is never an editing model: it holds the last published view, refuses to act on stale or poisoned state, and recovers through an explicit resync — never by blindly applying a delta.