mirror of
https://github.com/openai/codex.git
synced 2026-10-31 19:28:49 +00:00
## Why Remote-control connections and queued operations must not carry over to a different signed-in user or account. Token refreshes for the same identity should preserve the live relay connection. ## What changed - Scope relay state and authentication recovery to a login lifetime. Retire the session on logout or identity changes and leave remote control disabled until enabled again. - Reject stale incoming messages and queued RPCs, and cancel pending remote-control operations when their authentication owner changes. - Start replacement sessions with fresh client, replay, and enrollment state, and prevent retired sessions from publishing status into their replacements. - Serialize enrollment and preference persistence across sessions, retaining write permits through caller cancellation and draining admitted writes on shutdown. ## Testing Add regression coverage for same-owner refreshes, user and account changes, stale pairing and client-revocation work, unauthorized enrollment recovery after logging in again, and persistence during cancellation. GitOrigin-RevId: 5e6ecd23588aab1e2e6168a21f575fb24bbb341c
46 lines
1.8 KiB
Rust
46 lines
1.8 KiB
Rust
pub mod daemon_recovery;
|
|
#[cfg(any(windows, test))]
|
|
mod daemon_shutdown;
|
|
#[cfg(windows)]
|
|
pub use daemon_shutdown::DAEMON_SHUTDOWN_FILE_ENV;
|
|
#[cfg(windows)]
|
|
pub use daemon_shutdown::daemon_shutdown_signal;
|
|
/// Only managed app-server launches accept the local socket shutdown request.
|
|
pub const DAEMON_SHUTDOWN_SOCKET_ENV: &str = "CODEX_DAEMON_SHUTDOWN_SOCKET";
|
|
mod connection_auth;
|
|
mod outgoing_message;
|
|
mod transport;
|
|
|
|
pub use connection_auth::ConnectionAuth;
|
|
pub use outgoing_message::ConnectionId;
|
|
pub use outgoing_message::OutgoingError;
|
|
pub use outgoing_message::OutgoingMessage;
|
|
pub use outgoing_message::OutgoingResponse;
|
|
pub use outgoing_message::QueuedOutgoingMessage;
|
|
pub use transport::AppServerStartupLock;
|
|
pub use transport::AppServerTransport;
|
|
pub use transport::AppServerTransportParseError;
|
|
pub use transport::CHANNEL_CAPACITY;
|
|
pub use transport::ConnectionOrigin;
|
|
pub use transport::DaemonShutdownAccess;
|
|
pub use transport::REMOTE_CONTROL_DISABLED_ENV_VAR;
|
|
pub use transport::RemoteControlDisabledByRequirements;
|
|
pub use transport::RemoteControlEnableError;
|
|
pub use transport::RemoteControlHandle;
|
|
pub use transport::RemoteControlPolicy;
|
|
pub use transport::RemoteControlStartConfig;
|
|
pub use transport::RemoteControlStartupMode;
|
|
pub use transport::RemoteControlUnavailable;
|
|
pub use transport::TransportEvent;
|
|
pub use transport::acquire_app_server_startup_lock;
|
|
pub use transport::app_server_control_socket_path;
|
|
pub use transport::app_server_startup_lock_path;
|
|
pub use transport::auth;
|
|
pub use transport::daemon_recovery_file_path;
|
|
pub use transport::prepare_control_socket_path;
|
|
pub use transport::start_control_socket_acceptor;
|
|
pub use transport::start_remote_control;
|
|
pub use transport::start_stdio_connection;
|
|
pub use transport::start_websocket_acceptor;
|
|
pub use transport::take_remote_control_disabled_env;
|