Documentation
¶
Overview ¶
Command wirecheck asserts wire-protocol compatibility between the Go server half (the web-terminal-engine module go.mod pins, used by the PTY shell in internal/hub) and the bundled TS client half (the Dockerfile-ARG- pinned npm artifact that static-src/shell.ts imports). The two halves are pinned INDEPENDENTLY — Renovate moves the Go module and the npm ARG in separate PRs, and a Go-only engine release publishes no npm package at all — so nothing but this gate proves the pair the image ships is one the engine considers compatible.
The compatibility RULE is the engine's (terminal.WirePairIncompatibility — the same verdict its runtime handshake reaches, so this gate can never disagree with the close-4002 refusal). This program supplies the Go side from the engine's public constants; the client side arrives as flags the Dockerfile's wire-floor gate extracts from the vendored artifact.
Without the gate a declared-incompatible pairing builds green, deploys, answers /api/health healthy, and then breaks only the shell tab — every terminal attempt closing with code 4002 while the rest of the app works, so the failure reads as a shell bug rather than a version mismatch. Fail the build instead.
Exit 0: the pairing is declared-compatible. Exit 1: a declared floor is violated. Exit 2: usage error (a missing, malformed, or non-positive -client-rev / -client-min-server flag).