Skip to content

feat(realtime): adopt OpenAI Agents SDK - #610

Open
charleslpan wants to merge 4 commits into
mainfrom
cursor/openai-agents-realtime-0257
Open

feat(realtime): adopt OpenAI Agents SDK#610
charleslpan wants to merge 4 commits into
mainfrom
cursor/openai-agents-realtime-0257

Conversation

@charleslpan

@charleslpancharleslpan commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • adopt @openai/agents-realtime 0.17.0 for typed and push-to-talk developer turns over Luke's existing renderer-owned WebRTC connection
  • derive SDK tools from the existing ACTS table and preserve renderer validation, main-process authorization, and the armed developer-turn gate
  • retain Luke-authored speak-only, arrival, introduction, interruption, context, and devtrace events where they encode product trust constraints
  • remove typedAskEvents, functionCallOutputEvents, and the homemade developer tool-output loop

Evidence

  • Platform-independent checks: ./scripts/check.sh passed
  • Structural developer-turn tests: 7 passed
  • Speak-only/introduction/history gate tests: 6 passed
  • macOS Electron verification (./scripts/verify.sh): portable checks passed; stopped at error: this command requires macOS on the Linux cloud agent

Automated visual evidence

Download the deterministic macOS evidence · workflow run

  • Commit: 98cd017093f7068f3bacb1c5c0c43e3d02fb6a63
  • Scenario: smoke
  • Physical-notch check: not performed by CI

Physical-device evidence

  • Screenshot or screen recording: not attached
  • Physical-notch check: not performed (Linux cloud agent)
  • Device/display configuration: not available

Notes

  • Vercel AI SDK was not added: v5 has no Realtime runtime, and current Realtime support is WebSocket-only.
  • realtime-protocol.ts remains for speak-only/arrival/introduction payloads, PTT audio buffering, interruption/truncation, partial context updates, and the observe-only devtrace tap.
Open in WebOpen in Cursor

Open in Alchemize

@vercel

vercelBot commented Sep 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated
luke-webReadyReadyPreviewSep 1, 2026 4:24am UTC

Request Review

Comment threadapps/desktop/src/renderer/realtime-session.ts
Comment threadapps/desktop/src/renderer/realtime-session.ts Outdated
Comment threadapps/desktop/src/renderer/realtime-session.ts Outdated

@cursorcursorBot 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c2043a6. Configure here.

strict: false,
execute: async (argumentsValue, _context, details) => {
const unparsedToolCall: UnparsedWireValue = JSON.parse(JSON.stringify(details?.toolCall));
const toolCall = isRecord(unparsedToolCall) ? unparsedToolCall : undefined;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Missing toolCall crashes tool execute

Medium Severity

Cloning details?.toolCall through JSON.parse(JSON.stringify(...)) throws when details or toolCall is absent, because JSON.stringify(undefined) is not valid JSON. A typed-ask tool then fails before execute runs, instead of continuing with empty callId and responseId.

Fix in CursorFix in Web

Reviewed by Cursor Bugbot for commit c2043a6. Configure here.

@charleslpan
charleslpan marked this pull request as ready for review September 1, 2026 04:24
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Sign up for freeto 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.

2 participants

@charleslpan@cursoragent