$ the-wire · showcase
Realtime credentials isolated in openai-node
By RepoJournal · Filed · About OpenAI
A breaking fix in openai-node ensures concurrent Realtime connections keep their own API credentials, so a later provider response cannot hijack an earlier connection's authentication.
openai-node ships a breaking fix to Realtime connection handling [1]: concurrent factories now capture the API credential at connection time, and both stable and beta transports use that captured value for WebSocket auth and native browser eligibility. Previously a later provider response or URL callback could replace a connection's credential, so concurrent sessions could authenticate with the wrong key over time. `_callApiKey()` keeps its boolean return and `client.apiKey` update; an optional internal capture callback supplies the connection-local value.
Codex's bundled TUI gains live WebRTC voice conversations behind a feature gate [2]: new `/voice`, `/voice mute`, and `/voice stop` commands stream local audio with app-server signaling, show live transcripts and mic/speaker levels, preserve captions and undelivered answers across thread switches, and speak only final answers while keeping delegated reasoning hidden. Separately, the TUI now groups adjacent computer actions into a compact "Using computer" or "Used computer" summary with action/failure counts and a `ctrl+t` hint to expand [3].
In related fixes, openai-node's raw streaming proxy example now respects `ServerResponse.write(false)` by waiting for Node's `drain` event before reading the next upstream chunk [4]. The vendored Zod converter preserves a registered definition named `__proto__`, which previously dropped from serialized output and left references unresolved [5]. Codex's managed app-server shutdown grace period is now configurable via the new `shutdownGraceSeconds` daemon setting, accepting 0 to 300 seconds and defaulting to 60 [6].
User verification for the bundled TUI is enabled on supported devices [7]: the device-support probe previously always returned `false`; now `native::device_supported` drives the existing initialization path, and eligible in-process `codex-tui` clients with `experimentalApi` advertise the `userVerification` MCP extension capability.
Action items
- → Review any concurrent Realtime usage for credential assumptions before upgrading openai-node openai/openai-node [immediate]
- → Monitor TUI update for the new voice conversation feature gate and shutdownGraceSeconds setting openai/codex [monitor]
References
- [1] fix: isolate realtime connection credentials (#2690) ↗ openai/openai-node
- [2] Add live WebRTC voice conversations to the TUI ↗ openai/codex
- [3] Group adjacent computer actions in the TUI ↗ openai/codex
- [4] fix(examples): respect raw streaming proxy backpressure ↗ openai/openai-node
- [5] fix: preserve own Zod schema definition names (#2695) ↗ openai/openai-node
- [6] Make the managed app-server shutdown grace period configurable ↗ openai/codex
- [7] Enable user verification for the bundled TUI on supported devices ↗ openai/codex