Skip to content

Always use AVAS for realtime WebRTC calls#28856

Merged
bakks merged 4 commits into
mainfrom
dev/pbakkum/codex-always-avas-realtime
Jun 19, 2026
Merged

Always use AVAS for realtime WebRTC calls#28856
bakks merged 4 commits into
mainfrom
dev/pbakkum/codex-always-avas-realtime

Conversation

@bakks

@bakks bakks commented Jun 18, 2026

Copy link
Copy Markdown
Member

Summary

  • Remove the realtime architecture selector from core protocol, app-server protocol, config parsing, generated schemas, and callers.
  • Always create WebRTC realtime calls with the AVAS query params: intent=quicksilver&architecture=avas.
  • Keep direct websocket realtime behavior on the existing config/default path, while WebRTC starts without an explicit version now default to realtime v1 because AVAS requires v1.

Notes

  • WebRTC realtime now means AVAS. If a caller explicitly asks to start WebRTC with realtime v2, Codex rejects that request because the AVAS WebRTC path only supports realtime v1. Websocket realtime is separate and can still use realtime v2.
  • The old [realtime] architecture = "realtimeapi" | "avas" config knob is removed. Local configs that still set it will need to delete that line.
  • Some app-server tests that were only trying to exercise realtime v2 protocol behavior now use websocket transport, because WebRTC is intentionally locked to AVAS/v1. Separate WebRTC tests cover the AVAS query params, v1 startup, SDP flow, and sideband join.

Validation

  • Merged fresh origin/main at 83e6a786a2.
  • just fmt
  • just write-config-schema
  • just write-app-server-schema
  • git diff --check
  • just test -p codex-api -p codex-core -p codex-app-server-protocol -p codex-app-server realtime (176 passed)
  • just test -p codex-protocol -p codex-config (413 passed)

bakks added 2 commits June 17, 2026 22:16
…ays-avas-realtime

# Conflicts:
#	codex-rs/app-server-protocol/src/protocol/common.rs
#	codex-rs/app-server-protocol/src/protocol/v2/realtime.rs
#	codex-rs/app-server/src/request_processors/turn_processor.rs
#	codex-rs/app-server/tests/suite/v2/experimental_api.rs
#	codex-rs/app-server/tests/suite/v2/realtime_conversation.rs
#	codex-rs/core/tests/suite/compact_remote.rs
#	codex-rs/core/tests/suite/realtime_conversation.rs
#	codex-rs/protocol/src/protocol.rs
@bakks
bakks marked this pull request as ready for review June 18, 2026 17:33
@bakks
bakks requested a review from a team as a code owner June 18, 2026 17:33

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 215e59f227

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread codex-rs/core/src/realtime_conversation.rs
Comment thread codex-rs/core/src/realtime_conversation.rs
Comment thread codex-rs/codex-api/src/endpoint/realtime_call.rs
Comment on lines +194 to +196
fn configure_realtime_call_request(request: &mut Request) {
append_query_pair(&mut request.url, "intent", "quicksilver");
append_query_pair(&mut request.url, "architecture", "avas");

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.

P2 Badge Route raw realtime call creation through AVAS too

The AVAS query helper is only invoked from the session-backed create_with_session* path, so public callers that use RealtimeCallClient::create()/create_with_headers() still POST raw SDP to /realtime/calls without intent=quicksilver&architecture=avas. If those APIs are used to create WebRTC calls directly, they now bypass the new “WebRTC means AVAS” behavior and keep hitting the old realtime-call route.

Useful? React with 👍 / 👎.

@bakks
bakks enabled auto-merge (squash) June 18, 2026 23:36
@bakks
bakks merged commit 8e7c213 into main Jun 19, 2026
31 checks passed
@bakks
bakks deleted the dev/pbakkum/codex-always-avas-realtime branch June 19, 2026 00:11
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants