---
type: email
from: "chatgpt-codex-connector[bot]" <notifications@github.com>
subject: Re: [openai/openai-agents-python] feat: #1614 gpt-realtime migration

 (Realtime API GA) (PR #1646)
received: 2026-03-06 07:28:11
date_header: Wed, 10 Sep 2025 23:55:50 -0700
priority: normal
status: awaiting_approval
uid: 30085
---

## Email Content

**From:** "chatgpt-codex-connector[bot]" <notifications@github.com>
**Subject:** Re: [openai/openai-agents-python] feat: #1614 gpt-realtime migration

 (Realtime API GA) (PR #1646)
**Date:** Wed, 10 Sep 2025 23:55:50 -0700

### Body (preview)

@chatgpt-codex-connector[bot] commented on this pull request.



Codex Review: Here are some suggestions.



Reply with `@codex fix comments` to fix any unresolved comments.



<details> <summary>About Codex in GitHub</summary>



[Your team has set up Codex to review pull requests in this repo](http://chatgpt.com/codex/settings/general). Reviews are triggered when you open a pull request for review, mark a draft as ready, or 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 fix this CI failure" or "@codex address that feedback".

</details>



> +    def _update_created_session(

+        self,

+        session: OpenAISessionCreateRequest | OpenAIRealtimeTranscriptionSessionCreateRequest,

+    ) -> None:

+        # Only store/playback-format information for realtime sessions (not transcription-only)

+        if isinstance(session, OpenAISessionCreateRequest):

+            self._created_session = session

+            if (

+                session.audio is not None

+                and session.audio.output is not None

+                and session.audio.output.format is not None

+            ):



**[P1] Cache session settings from server events**



`_update_created_session` only stores the session when the object is an instance of `RealtimeSessionCreateRequest`, but `session.created`/`session.updated` events carry the concrete `Session` type returned by the API, not the request model. Because the `isinstance` check never passes, `_created_session` stays `None`. The later checks that look at `self._created_session.audio.input.turn_detection.interrupt_response` (used to skip sending a `response.cancel` when the server auto‑interrupts) will therefore always evaluate to false and the client cancels responses on every VAD speech start even when the server is already configured to do so. The audio format is also never propagated to the pl

---

## Suggested Actions
- [ ] Reply
- [ ] Archive
- [ ] Escalate
