[pull] main from openai:main - #192
Merged
Merged
Conversation
A custom base URL such as https://example.test/v1/customer?tenant=sample failed to open Realtime WebSockets. Both the base URL normalization and sync/async Realtime path preparation appended to HTTPX's raw_path, which includes the query. As a result, the server received /v1/customer instead of /v1/customer/realtime. Append the slash and endpoint before the existing query, preserving the original query and connection options. Four real WebSocket tests verify the path, authentication and header overrides, configured compression, outbound messages, same-connection recovery after an API error, unknown fields and clean close. Validation: - Before: both query-bearing tests failed, both plain-URL cases passed. - After: 149 affected Realtime/WebSocket/HTTPX/redirect/region tests and 12 client base URL tests passed under each of Pydantic 1 and 2. All four final tests passed on both. - Full Ruff, mypy and Pyright passed. No new API or schema changes. Shared base URL normalization also applies to HTTP clients; broader HTTP relative-query behavior is outside this change.
## Summary
Adds credential metadata, session options and speech voices, and
corrects the file download response description.
## Changes
- Add metadata to Agents vault credential creation and results; allow
credential updates without replacing authentication.
- Support the ultrafast Agents service tier and report
misalignment_policy_violation for session turns.
- Include fable, onyx and nova in speech voice options.
- Describe file content as binary while preserving legacy
retrieve_content() and its Accept header behavior.
## Compatibility
When constructing beta Agents Credential models yourself, supply
`metadata` (for example, `{}`). Exhaustive handlers should account for
the new service tier and error code.
Co-authored-by: markstuart-oai <323302876+markstuart-oai@users.noreply.github.com>
Stacked on #3971, which fixes base URL normalization. Once that is merged, this PR can be retargeted to main. Live WebSocket primary, fork and sideband managers appended their endpoint after the base URL query. For example, /v1/customer?tenant=sample dialed /v1/customer instead of the Live endpoint. Append the path before the query in all six sync/async managers. Tests cover the actual WebSocket upgrade, preserved query parameters and escaped session IDs, caller-initiated primary and fork starts, immediate sideband events without waiting for session.started, follow-up updates and clean close. Validation: all six query cases failed and six plain cases passed before the fix. After it, all 363 affected tests and 12 base URL tests passed on both Pydantic v1 and v2. Full Ruff, mypy and Pyright passed. No hosted-service or stored-fork-eligibility claims.
…3970) Valid fractional Live transcript grouping timeouts can hang on the next transcript event. For example, after a fragment ends at 200 ms, a timeout of 0.1 ms is scheduled for 200.1; subtracting 200 later rounds to less than 0.1, so the scheduler never consumes that deadline. Compare absolute times against the same deadlines that the scheduler creates. This preserves the existing API and options and adds bounded sync/async regressions for assistant silence, speaker separation, and isolated backchannels. Validation: - All six regressions safely reproduced the hang before the fix. - 224/224 Live tests passed on both Pydantic v1 and v2 after the fix. - Full Ruff, mypy and Pyright passed. - No schema, generated SDK, dependency or API changes.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )