Skip to content

Protocol spec v2 (sans-IO, multiplexed, negotiated) #12

@bradgessler

Description

@bradgessler

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0Priority 0 — foundational, do firstv2Terminalwire v2 clean-sheet rewrite

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions