$ the-wire · showcase
Agent environment suspension lands across the SDKs, MITM hook bypass closed in Codex
By RepoJournal · Filed · About OpenAI · Composed from the cited sources · methodology
Agent environment suspension and expiration shipped in both the Node and Python SDKs the same day, while Codex closed a credential path that let brokered aliases route around MITM hook policy.
feat(api): add agent environment suspension and expiration openai/openai-node
Snapshot suspension and expiration types and events land in the Node client: new snapshot status values on the existing lifecycle enums, agent.session.environment.suspended and .expired stream events, and agent.environment.suspended and .expired webhook events accepted in subscriptions. Shipped as openai-node 7.32.0 alongside a next bump in the Vercel edge ecosystem tests.
feat(api): add agent environment suspension and expiration openai/openai-python
The Python client gets the same surface: suspended and expired agent session environment stream event types, matching webhook event types, and the new names accepted in create, update, and test subscription parameters, with the existing ready and failed variants preserved. The change was validated against 163 focused sync/async lifecycle and signed-webhook tests in Pydantic v2 mode, and shipped...
Prevent brokered credential aliases from bypassing MITM hooks (#52661) openai/codex
A credential bound to a host with MITM hooks could previously be used at an unhooked alias, letting the proxy inject the real credential without enforcing hook policy. Codex now rejects requests to unhooked aliases when the selected brokered credentials are also bound to a hooked host, checking both HTTP forwarding and MITM requests before dummy credentials are replaced and returning 403 with a...
Reject reserved Serde JSON keys in code mode openai/codex
JavaScript objects carrying Serde's reserved JSON keys could be reinterpreted during deserialization, letting nested RawValue markers bypass the parser's recursion limit. Codex now rejects $serde_json::private::RawValue and $serde_json::private::Number object keys before V8's serialized JSON reaches serde_json, reporting a reserved JSON object key serialization error while still allowing marker...
Classify voice session failures and record terminal outcomes openai/codex
Voice failure metrics carried no cause or lifecycle phase, and session durations were recorded before the final outcome was known, with a failed control send able to overwrite a more specific WebRTC error. codex.voice.session.failure is now tagged with bounded cause and phase values at most once per session, and duration is captured at stop time and emitted as codex.voice.session.duration at cl...
Action items