H-6763: Migrate voice interviews to GPT-Realtime-2 - #9399
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryHigh Risk Overview
Adds Removes Reviewed by Cursor Bugbot for commit b930ef9. Bugbot is set up for automated code reviews on this repo. Configure here. |
2405857 to
37d9a99
Compare
d6443b8 to
b1872b8
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Ensure initial spoken descriptions reach Brunch, dynamic questions render correctly, and canonical responses use the expert-interviewer voice. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep implementation-only planning artifacts out of the product pull request. Co-authored-by: Cursor <cursoragent@cursor.com>
Serialize canonical speech, isolate cancelled tool streams, and tolerate only correlated provider no-op errors. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Retry canonical speech when its provider error arrives after the blocking response ends, and bind answer revisions to the question active when submission began. Co-authored-by: Cursor <cursoragent@cursor.com>
Retain completed cancel event IDs until a late no-op response arrives so expected provider races cannot tear down an active voice session. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 66f7a87. Configure here.
Keep the in-flight input phase through pause and resume so the UI cannot accept an overlapping voice turn before Brunch responds. Co-authored-by: Cursor <cursoragent@cursor.com>


🌟 What is the purpose of this PR?
Migrate the H-6763 voice interview from a transcription-plus-TTS chain to
gpt-realtime-2as an ephemeral duplex media shell, while keeping Brunch the sole durable authority for interview state and business logic. Present canonical Brunch output through a warm, professionally neutral expert-interviewer voice.🔗 Related links
🚫 Blocked by
🔍 What does this change?
gpt-realtime-2WebRTC session with audio input/output, low-effort reasoning, low-eagerness semantic VAD, automatic interruption, and one requiredcontinue_interviewfunction.brunch_askcorrelation, and rejects duplicate, overlapping, or stale work.brunch_askas a dynamic AI SDK tool so Petrinaut recognizes and renders each returned question.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🐾 Next steps
🛡 What tests cover this?
brunch_asktool streaming and return-path handling.gpt-realtime-2WebRTC preflight confirmed remote RTP audio, function calling, semantic VAD, and automatic interruption with the configured key.❓ How to test this?
PETRINAUT_OPENAI_VOICE_ENABLED=true,OPENAI_VOICE_API_KEY, and a working Brunch endpoint.brunch_askcall exactly once.📹 Demo
No screenshot replacement is required; the affected documentation contains no screenshots of this surface.