$ the-wire · showcase
Codex waits now yield to injected input, and WebSocket recovery stops swallowing failures
By RepoJournal · Filed · About OpenAI · Composed from the cited sources · methodology
Codex fixed a real scheduling bug where input queued before a wait was ignored, and across both SDKs the WebSocket layer stopped losing state when observers and recovery paths fail.
Make pending injections interrupt agent waits and sleep openai/codex
Input injected before wait_agent or clock.sleep begins now interrupts the wait and reaches the next model request; the fix tracks notifying response-item injections as pending steering activity and resets that state once pending input is consumed or cleared, so later passive context does not trigger spurious interruptions. Wait and sleep tests were extended to cover both injections queued ahead...
fix: preserve WebSocket lifecycle state when observers throw openai/openai-node
Live and Responses WebSocket streams could miss a successful reconnect if a public listener threw, and a failed reconnect observer followed by a failed error observer could leave a closed socket accepting queued sends after recovery had stopped. The shared controller now delivers the iterator's reconnect event even when public notification fails, and closes stopped recovery before propagating t...
fix(api): preserve large WebSocket messages and default compression off openai/openai-node
Native Node WebSocket connections across Realtime, Live and Responses no longer enable compression implicitly, while explicit perMessageDeflate settings and caller-selected receive limits are preserved; large messages are allowed by default. The PR notes that disabling compression can increase network traffic, with opt-in available through the existing connection options.
fix: end sync WebSocket recovery when an attempt is interrupted openai/openai-python
A KeyboardInterrupt or SystemExit during synchronous WebSocket reconnect could leave later sends queued with no recovery running, because queue admission outlived the interrupted attempt. It now ends whenever the attempt exits, the interruption is preserved, and a later receive retries without replaying rejected sends; the 36 interruption cases across nine public modes failed before the fix.
Add runtime assertion authentication modes and an auth provider openai/codex
Codex added RuntimeAuthProvider plus dual_header mode, which sends a bearer credential alongside x-openai-agent-assertion, and assertion_only mode, which uses Authorization: AgentAssertion. Stale authentication headers are replaced and a fresh assertion is signed for each request attempt, with registration failures propagating instead of falling back to credentials.