Skip to content

feat(api): support audio fixture playback in Live sessions - #4085

Merged
jiayuhuang-openai merged 1 commit into
mainfrom
castiron/promotions/pr-257
Oct 15, 2026
Merged

jiayuhuang-openai merged 1 commit into
mainfrom
castiron/promotions/pr-257

Conversation

@yoni-oai

Copy link
Copy Markdown
Contributor

Summary

Send an audio fixture in a Live session and handle the fixture acceptance and playback events.

Changes

  • Send up to 30 seconds of Base64-encoded raw mono PCM16 little-endian audio at 24 kHz, with no WAV or other container header with session.output_audio.fixture.play.
  • Handle session.output_audio.fixture.playing when the server accepts the audio, and correlate it with the play event using client_event_id.
  • Handle session.output_audio.fixture.played when the server mixer drains. Audio buffered by the transport may still be playing.

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Castiron custom code

Evaluated main: e71d781ac5e7b3f365ac130bf338baaf13ae720d.

✅ No new custom-code files detected.

40 mixed files remain; 0 existing customizations changed; 3 generated baselines changed.

Compared e71d781ac5e7 → a9a8c5eb841f. Generated baselines verified.

File Result Current custom patch
src/openai/resources/live/forks.py Generated baseline changed +93 / −269
src/openai/resources/live/live.py Generated baseline changed +89 / −257
src/openai/resources/live/sideband.py Generated baseline changed +91 / −253
37 existing customizations unchanged
  • api.md
  • scripts/castiron/custom_code_budget.py
  • scripts/castiron/test_custom_code_github.py
  • scripts/castiron/test_custom_code_publication.py
  • scripts/castiron/test_custom_code_report.py
  • src/openai/init.py
  • src/openai/_client.py
  • src/openai/resources/audio/transcriptions.py
  • src/openai/resources/audio/translations.py
  • src/openai/resources/beta/agents/environments/files.py
  • src/openai/resources/beta/agents/sessions/artifacts.py
  • src/openai/resources/beta/agents/sessions/sessions.py
  • src/openai/resources/beta/beta.py
  • src/openai/resources/beta/responses/responses.py
  • src/openai/resources/beta/threads/runs/runs.py
  • src/openai/resources/beta/threads/threads.py
  • src/openai/resources/chat/completions/completions.py
  • src/openai/resources/embeddings.py
  • src/openai/resources/files.py
  • src/openai/resources/realtime/api.md
  • src/openai/resources/realtime/realtime.py
  • src/openai/resources/responses/responses.py
  • src/openai/resources/uploads/uploads.py
  • src/openai/resources/vector_stores/file_batches.py
  • src/openai/resources/vector_stores/files.py
  • src/openai/resources/videos.py
  • src/openai/resources/webhooks/init.py
  • src/openai/resources/webhooks/webhooks.py
  • src/openai/types/fine_tuning/fine_tuning_job_integration.py
  • src/openai/types/realtime/conversation_item_input_audio_transcription_delta_event.py
  • src/openai/types/realtime/realtime_error_event.py
  • src/openai/types/responses/tool.py
  • src/openai/types/responses/tool_param.py
  • src/openai/types/webhooks/init.py
  • src/openai/types/webhooks/live_call_incoming_webhook_event.py
  • src/openai/types/webhooks/unwrap_webhook_event.py
  • tests/api_resources/test_videos.py

A changed generated baseline means this report cannot reliably identify which handwritten lines changed.

Inspect the custom-code diff

Download the exact patch produced by this run (requires repository access):

gh run download 38813705843 --repo openai/openai-python \
  --name castiron-custom-code-38813705843-1 --dir /tmp/castiron-custom-code-38813705843-1
git apply --stat /tmp/castiron-custom-code-38813705843-1/custom-code.patch
cat /tmp/castiron-custom-code-38813705843-1/custom-code.patch

Or reproduce it from an SDK checkout containing the vendored reporter:

git fetch --no-tags origin e71d781ac5e7b3f365ac130bf338baaf13ae720d a9a8c5eb841f3c779112f0a42b3daace8bc8d273
python3 scripts/castiron/custom_code_report.py report \
  --base e71d781ac5e7b3f365ac130bf338baaf13ae720d \
  --head a9a8c5eb841f3c779112f0a42b3daace8bc8d273 --fetch --require-head-hash --public \
  --out /tmp/castiron-custom-code-a9a8c5eb841f
cat /tmp/castiron-custom-code-a9a8c5eb841f/custom-code.patch

This is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR.

Full report and patch

@jiayuhuang-openai
jiayuhuang-openai marked this pull request as ready for review October 15, 2026 03:52
@jiayuhuang-openai
jiayuhuang-openai requested a review from a team as a code owner October 15, 2026 03:52
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-15T21:58:40.640632Z a9a8c5e New commits
🔒 Security Review ✅ Completed 2026-10-15T21:59:30.864911Z a9a8c5e New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@openai-sdks

openai-sdks Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

OkTest Summary

✅ 236/236 SDK tests passed in 9.052s for Python SDK PR #4085.

Test results — 42 files
Test Result Time
tests/chat-completions-complex-body.test.ts ✅ Passed 224ms
tests/chat-completions-create.test.ts ✅ Passed 291ms
tests/chat-completions-stream.test.ts ✅ Passed 294ms
tests/files-content-binary.test.ts ✅ Passed 197ms
tests/files-create-multipart.test.ts ✅ Passed 191ms
tests/files-list-pagination.test.ts ✅ Passed 177ms
tests/initialize-config.test.ts ✅ Passed 223ms
tests/instance-isolation.test.ts ✅ Passed 179ms
tests/models-list.test.ts ✅ Passed 197ms
tests/responses-background-lifecycle.test.ts ✅ Passed 205ms
tests/responses-body-method-errors.test.ts ✅ Passed 258ms
tests/responses-cancel-timeout.test.ts ✅ Passed 225ms
tests/responses-cancel.test.ts ✅ Passed 210ms
tests/responses-compact-retries.test.ts ✅ Passed 354ms
tests/responses-compact.test.ts ✅ Passed 276ms
tests/responses-create-advanced-stream.test.ts ✅ Passed 284ms
tests/responses-create-advanced.test.ts ✅ Passed 223ms
tests/responses-create-disconnect.test.ts ✅ Passed 1.157s
tests/responses-create-errors.test.ts ✅ Passed 208ms
tests/responses-create-malformed-api-responses.test.ts ✅ Passed 222ms
tests/responses-create-retries.test.ts ✅ Passed 219ms
tests/responses-create-stream-failures.test.ts ✅ Passed 729ms
tests/responses-create-stream-timeout.test.ts ✅ Passed 233ms
tests/responses-create-stream-wire.test.ts ✅ Passed 1.971s
tests/responses-create-stream.test.ts ✅ Passed 143ms
tests/responses-create-terminal-states.test.ts ✅ Passed 274ms
tests/responses-create-timeout.test.ts ✅ Passed 240ms
tests/responses-create.test.ts ✅ Passed 265ms
tests/responses-delete.test.ts ✅ Passed 271ms
tests/responses-input-items-errors.test.ts ✅ Passed 329ms
tests/responses-input-items-list.test.ts ✅ Passed 299ms
tests/responses-input-items-options.test.ts ✅ Passed 250ms
tests/responses-input-tokens-count-timeout.test.ts ✅ Passed 263ms
tests/responses-input-tokens-count.test.ts ✅ Passed 201ms
tests/responses-malformed-inputs.test.ts ✅ Passed 1.081s
tests/responses-not-found-errors.test.ts ✅ Passed 274ms
tests/responses-parse.test.ts ✅ Passed 477ms
tests/responses-retrieve-retries.test.ts ✅ Passed 197ms
tests/responses-retrieve.test.ts ✅ Passed 187ms
tests/responses-stored-method-errors.test.ts ✅ Passed 454ms
tests/retry-behavior.test.ts ✅ Passed 3.014s
tests/sdk-error-shape.test.ts ✅ Passed 269ms

View OkTest run #38813660551

SDK merge (1f7feb34fd1b) · head (a9a8c5eb841f) · base (e71d781ac5e7) · OkTest (63b471b22245)

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b036e70bdb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/openai/resources/live/live.py
Castiron-Internal-PR: openai/openai-python-internal#257
Castiron-Source-SHA: 3c683a02b15cfe933a1273c629f19eb5b73799a3
Castiron-Public-Base-SHA: e71d781
@yoni-oai
yoni-oai force-pushed the castiron/promotions/pr-257 branch from b036e70 to a9a8c5e Compare October 15, 2026 21:56

@jbeckwith-oai jbeckwith-oai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the full 22-file diff at a9a8c5e. No blocking issues found.

The earlier queue-limit concern is addressed across sync/async primary, fork, and sideband connections: the Live-only 2 MiB default accommodates the documented 30-second fixture payload, while explicit caller-supplied queue budgets remain intact. I also checked event discriminators/unions, helper serialization, and the unchanged no-replay behavior on failed sends.

Static source/security review only; no local tests or live API calls were run. Current hosted checks are green, and I inspected the successful Python 3.10/3.14 test logs.

@jiayuhuang-openai
jiayuhuang-openai added this pull request to the merge queue Oct 15, 2026
Merged via the queue into main with commit 9998c1a Oct 15, 2026
31 checks passed
@openai-sdks openai-sdks Bot mentioned this pull request Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants