[codex] upgrade voice runtime for realtime-1.5 and responses ws#136
Draft
[codex] upgrade voice runtime for realtime-1.5 and responses ws#136
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue and User Impact
PRESENT voice runtime needed a production-grade upgrade for the February 2026 voice model/transport releases:
gpt-realtime-1.5vsgpt-realtime-minigpt-audio-1.5Without this, model quality/tiering intent and transport improvements were inconsistent, and WS mode introduced reliability/contract regressions.
Root Cause Analysis
Primary root causes identified during implementation/review:
models.voiceRealtimeas an explicit override.responses_ws.Why This Fix Solves Root Cause
This change removes the adaptive bypass, aligns WS timeout behavior with existing reply controls, enforces schema-backed WS tool validation, preserves turns via controlled fallback after repeated WS failures, and normalizes participant-aware dedupe/idempotency before fingerprint/hash generation.
What Changed
Control Plane and Settings
models.voiceRealtimePrimarymodels.voiceRealtimeSecondaryknobs.voice.realtimeModelStrategymodels.voiceRealtimeexplicit-only (no implicit forcing).Voice Runtime
ResponsesWebSocketTransport(wss://api.openai.com/v1/responses).Queue/Dedupe/Idempotency Hardening
Tests
resolver.test.tsfor explicit-vs-adaptive model default behavior.responses-ws-transport.test.tsfor WS tool loop and continuation behavior.Backward Compatibility Analysis
tool_callshapes and status contract preserved).responses_wsby default, but repeated WS failures now degrade to in-process realtime reply generation for turn preservation.Validation and Checks
Ran successfully:
npm run typecheck:agentnpm run lint(passes; repo has existing warnings)npm test -- src/lib/agents/realtime/voice-agent/__tests__ src/lib/agents/control-plane/*.test.ts src/components/tool-dispatcher/hooks/useToolRunner.test.tsxReviewer Passes and Resolved Findings
Independent reviewer lanes covered:
Resolved findings included:
Remaining Risks and Follow-ups
UI Evidence