$ the-wire · showcase
Typed Live sideband events land in both SDKs
By RepoJournal · Filed · About OpenAI · Composed from the cited sources · methodology
openai-python 3.35.0 and openai-node 7.38.0 both ship typed Live sideband events, while Codex puts its zstd WebSocket compression and idle-session wakeup behind disabled-by-default flags.
feat(api): add typed Live sideband events openai/openai-python
Both SDKs now recognize reflected input/output audio, DTMF, ringing, answered, and failed events on Live sideband connections, adding the seven existing sideband event variants while keeping current public event classes and unknown-event handling intact. Code that reads sideband traffic off untyped dicts or objects can depend on the event shapes directly.
feat(api): add typed Live sideband events openai/openai-node
The TypeScript side of the same work: openai-node emits typed access to reflected audio and Live transport events, with connection runtimes and generated code otherwise unchanged for callers not touching sideband.
v3.35.0 openai/openai-python
by openai-sdks[bot]
openai-python 3.35.0 also adds an ultrafast service tier for Agents, so the service tier is now a typed option rather than a string you pass through by hand. The Live sideband work above rides in this release.
fix: preserve beta Realtime byte reads on websockets 13 openai/openai-python
Synchronous beta Realtime called recv(decode=False), which websockets 13.x sync does not accept, so receiving a message raised TypeError. The fix routes through the SDK's existing byte-receive helper, matching the other synchronous APIs.
Add negotiated zstd compression to app-server WebSockets openai/codex
Codex app-server WebSockets negotiate zstd over TCP and local sockets via the x-codex-app-server-compression: zstd-stream-v1 header, falling back to plain JSON text when negotiation fails, with decompressed messages capped at 64 MiB and windows at 1 MiB. It only turns on when the new flag is enabled and the client offers the protocol.