mirror of
https://github.com/openai/codex.git
synced 2026-05-22 03:54:18 +00:00
This introduces session-scoped ownership for exec-server so ws disconnects no longer immediately kill running remote exec processes, and it prepares the protocol for reconnect-based resume. - add session_id / resume_session_id to the exec-server initialize handshake - move process ownership under a shared session registry - detach sessions on websocket disconnect and expire them after a TTL instead of killing processes immediately (we will resume based on this) - allow a new connection to resume an existing session and take over notifications/ownership - I use UUID to make them not predictable as we don't have auth for now - make detached-session expiry authoritative at resume time so teardown wins at the TTL boundary - reject long-poll process/read calls that get resumed out from under an older attachment --------- Co-authored-by: Codex <noreply@openai.com>
20 lines
602 B
Rust
20 lines
602 B
Rust
use std::time::Duration;
|
|
|
|
/// Connection options for any exec-server client transport.
|
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
pub struct ExecServerClientConnectOptions {
|
|
pub client_name: String,
|
|
pub initialize_timeout: Duration,
|
|
pub resume_session_id: Option<String>,
|
|
}
|
|
|
|
/// WebSocket connection arguments for a remote exec-server.
|
|
#[derive(Debug, Clone, PartialEq, Eq)]
|
|
pub struct RemoteExecServerConnectArgs {
|
|
pub websocket_url: String,
|
|
pub client_name: String,
|
|
pub connect_timeout: Duration,
|
|
pub initialize_timeout: Duration,
|
|
pub resume_session_id: Option<String>,
|
|
}
|