Define the v2 wire protocol as a language-neutral spec. Foundation — everything depends on this.
- Multiplexed framing:
stream_id + type on every frame (control / stdout / stderr / stdin / transfer-chunk).
- Handshake with protocol-version + capability negotiation (so old installed clients fail gracefully).
- One-way stdout/stderr streaming (no ack); stdin request/response; chunked transfers.
- Structured error model with codes; recoverable errors must NOT tear down the connection.
- MessagePack wire encoding, self-describing frames.
- Sans-IO: spec the protocol as a pure state machine (bytes in → events + bytes out), no sockets/clock. Stream IDs seedable/injectable for deterministic test vectors.
Done when: spec doc exists (open) + every feature has at least one conformance vector.
Define the v2 wire protocol as a language-neutral spec. Foundation — everything depends on this.
stream_id+ type on every frame (control / stdout / stderr / stdin / transfer-chunk).Done when: spec doc exists (open) + every feature has at least one conformance vector.