fix(openai): correct Realtime auth and transcription secrets#102518
Conversation
|
Land-ready proof for exact head
Known proof gap: the installed pre-fix Mac app discards the provider response body when the browser-owned SDP offer fails, so that UI leg reports only a generic connection reset. A signed exact-head app build and post-merge Gateway install are being used for the final end-to-end retry; the provider/auth and client-secret boundaries are covered above. |
|
Codex review: stale review; fresh review needed. Summary Next step |
|
Final exact-head proof for
The prior UI proof gap is closed. Remaining audit follow-ups are diagnostics-only: preserve the SDP response body on WebRTC failure, and surface a failed relay-creation error instead of rethrowing the original client-session error. |
|
Merged via squash.
|
…w#102518) * fix(openai): correct Realtime auth and transcription secrets * chore: leave release notes to release automation
What Problem This Solves
OpenAI Realtime voice and streaming transcription treated Codex OAuth tokens as interchangeable with OpenAI Platform API keys and sent them to public Platform endpoints. The transcription path also called the retired
/v1/realtime/transcription_sessionsendpoint, so valid credentials still received a 404.Why This Change Was Made
/v1/realtime/client_secretswith the current{ session: ... }request shape.OPENAI_API_KEY, matching the Talk path and preventing a stale environment key from shadowing the profile.CHANGELOG.mdrelease-owned.Direct inspection of the Codex client confirms ChatGPT auth uses the ChatGPT backend and account routing, while API-key Realtime conversations use the public Platform endpoint. This is therefore an auth-owner boundary fix, not a SecretRef transport workaround.
User Impact
Control UI Talk and Voice Call Realtime no longer attempt a doomed OAuth fallback. Users get an actionable Platform API-key requirement instead. Streaming transcription works again with the current OpenAI client-secret API. Existing SecretRef-backed Platform keys continue to resolve only at the network boundary.
Evidence
80 passedacross the three focused OpenAI Realtime suites.pnpm check:changedpassed.talk.client.createreturned the OpenAI WebRTC transport and current Realtime calls offer URL without exposing the Platform key.