Clean-sheet v2 of Terminalwire. No backwards compatibility with v1 (install base is small).
North stars
- Go thin client (Tebako is no longer maintained; Go gives static cross-compiled binaries + easy distribution + goroutines that fit a multiplexed protocol).
- Ruby/Rails server stays Ruby, but behind a framework-agnostic adapter.
- Conformance-harness-first: the protocol test harness is the keystone, built before the client or any server. Protocol-level TDD.
Settled design decisions
- One WebSocket connection, multiplexed with
stream_id + type per frame (SSH-channel model). Not separate sockets.
- stdout/stderr are one-way streamed frames (no per-write ack) — kills the per-line round trip that's the real stdio bottleneck. stdin stays request/response. Large transfers chunked.
- Versioned + capability-negotiated handshake from the first commit (clean-sheet on v1 ≠ skip forward-compat for v2).
- Consent-based entitlements: server declares what it wants, client prompts the user once, client enforces.
- Structured errors that don't tear down the connection; heartbeats for liveness.
- Sans-IO protocol core (pure state machine, no sockets/clock) so one corpus validates client + multiple servers, and tests are fast and precise (deterministic).
Licensing
- v2 is proprietary/closed-source (reverted from AGPL).
- Test harness follows the SQLite/TH3 model, two-tier: spec open + a "starter" corpus open; the exhaustive adversarial/fuzz/security harness closed. Built internal + fast now, kept accurate/precise.
Workstreams tracked as sub-issues below, in priority order.
Clean-sheet v2 of Terminalwire. No backwards compatibility with v1 (install base is small).
North stars
Settled design decisions
stream_id+ type per frame (SSH-channel model). Not separate sockets.Licensing
Workstreams tracked as sub-issues below, in priority order.