fix(voice): accept the documented GPT-Live create response and make start failures diagnosable (0.61.2) - #1772
Merged
Merged
Conversation
added 3 commits
October 5, 2026 14:50
…tart failures diagnosable Production GPT-Live starts failed after OpenAI created (and billed) the session: NyxID required session.expires_at, which the documented create response does not include, so the start was rejected post-create. Expiry is now optional (NyxID always enforces its own deadline). Every start failure now carries a fixed stage (flag, thread, origin, credential, billing_reservation, provider_create, provider_answer, transport) with bounded provider status/type/code/param identifiers (never provider message text or bodies) in a warn log, a metadata-only audit and an additive error details block; error codes and statuses are unchanged. The browser shows specific microphone, billing, origin, provider and WebRTC messages. Failed starts retry closing the provider session through recovery and record close_unconfirmed when closure cannot be confirmed.
…ostics # Conflicts: # Cargo.lock # backend/Cargo.toml # cli/Cargo.toml # cli/src/wizard/bundle-meta/index.hash # frontend/package-lock.json # frontend/package.json
📊 Code coverage
Gate: line coverage must stay at or above the threshold. Ratchet plan (W21): Backend → 55%, CLI → 50%, Frontend → 30% by quarter end. |
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.
Summary
Fixes the production GPT-Live voice start failure reported on nyx.chrono-ai.fun ("Voice could not start…" with the platform key, while the attempts appear in OpenAI usage for
gpt-live-1).Cause: OpenAI created and billed the session, but NyxID required
session.expires_atin the create response. The documented create response does not include it, so every start was rejected after creation.expires_atis now optional; NyxID always enforces its own call deadline.Also
stage(flag, thread, origin, credential, billing_reservation, provider_create, provider_answer, transport).error.type,error.codeanderror.param, each at most 128 characters from a restricted set. Credential-shaped values are rejected. Provider message text and bodies are never included.detailsblock on the error response. Error codes and HTTP statuses are unchanged, as is the "End the current call first" message.close_unconfirmedwhen closure cannot be confirmed.Validation
--all-targets -D warnings; fmt; 4,264 frontend tests, lint and build; wizard freshness.