mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
Reconnect WebRTC Realtime sideband transports (#39257)
## What changed - Reconnect frameless bidirectional WebRTC sideband sockets after unexpected transport loss with capped exponential backoff. - Preserve pending text or handoff output and bounded transcript state across reconnects. - Treat `404 Not Found` and `410 Gone` handshake responses as terminal session completion, and preserve HTTP status information from failed WebSocket handshakes. - Bound Realtime delegation input and transcript fields while retaining the most relevant portion of each. ## Testing - Add unit coverage for reconnect backoff, terminal status handling, transport error classification, transcript continuity and truncation, and pending outbound messages. - Add an end-to-end WebRTC conversation test covering an unclean disconnect, reconnect, transcript reconciliation, outbound progress during sustained inbound traffic, and terminal session completion. GitOrigin-RevId: 544fd7e542c3434d0bb42cfbcc7143604419a037
This commit is contained in:
@@ -10,6 +10,7 @@ use codex_api::RealtimeEventParser;
|
||||
use codex_api::RealtimeOutputModality;
|
||||
use codex_api::RealtimeSessionConfig;
|
||||
use codex_api::RealtimeSessionMode;
|
||||
use codex_api::RealtimeTranscriptState;
|
||||
use codex_api::RealtimeWebsocketClient;
|
||||
use codex_api::RetryConfig;
|
||||
use codex_protocol::protocol::RealtimeHandoffRequested;
|
||||
@@ -263,6 +264,7 @@ async fn realtime_ws_connect_webrtc_sideband_retries_join_until_server_is_availa
|
||||
"rtc_test",
|
||||
HeaderMap::new(),
|
||||
HeaderMap::new(),
|
||||
RealtimeTranscriptState::default(),
|
||||
)
|
||||
.await
|
||||
.expect("connect on retry");
|
||||
|
||||
Reference in New Issue
Block a user