$ the-wire · showcase
Codex adds zstd for app-server WebSockets, opencode fixes retries
By RepoJournal · Filed · About Agentic Coding · Composed from the cited sources · methodology
Codex shipped three app-server transport and session changes behind default-off flags, and opencode routed every buffered generation through the same retry policy the session runner already used.
Add negotiated zstd compression to app-server WebSockets openai/codex
TCP and Unix-domain socket listeners now negotiate zstd via the x-codex-app-server-compression: zstd-stream-v1 header, keeping JSON text messages when negotiation fails and capping decompressed messages at 64 MiB with 1 MiB windows. Clients that speak the protocol get compressed binary frames; everyone else is unaffected.
Gate app-server WebSocket compression behind a feature flag openai/codex
The negotiation above only runs when features.app_server_websocket_compression is enabled, and that flag ships disabled by default. Until you turn it on, connections use plain text messages, so if you want the bandwidth savings you have to set it yourself, including on TUI daemon startup.
Allow agent messages to wake idle root sessions behind a feature flag openai/codex
Behind the disabled-by-default wake_on_agent_messages flag, agent mail arriving by direct delivery or the host mailbox can start a new root turn and reuse the previous turn context. Previously a worker finishing after its parent returned a final answer needed an outstanding durable sleep to wake the session at all.
fix(core): retry buffered generations with shared policy anomalyco/opencode
Both session-backed generation (including /btw) and stateless generation now retry transient failures with the same backoff, jitter, Retry-After handling and retry limits as the session runner, extracted into ModelRetry. Each retry reruns the buffered call with the original prepared request, so transient provider errors no longer surface as hard failures on those paths.
Preserve model catalog caches across header credential rotation openai/codex
Model catalog caches now key on the account ID from CodexAuth::Headers instead of opaque auth headers, so rotating header credentials no longer discards the catalog when a stable account ID exists. Credential-sensitive keys are still retained when the account ID is missing or the provider uses an explicit API key, bearer token, or command auth. In the same cleanup, opencode removed its dead Hon...