From 5a32b33eed76da3129759208eb397fef9ae21c44 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Thu, 19 Mar 2026 10:08:06 -0600 Subject: [PATCH] Fix tui app-server originator --- codex-rs/tui_app_server/src/lib.rs | 50 +++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/codex-rs/tui_app_server/src/lib.rs b/codex-rs/tui_app_server/src/lib.rs index 19cf079f54..3d240cee2d 100644 --- a/codex-rs/tui_app_server/src/lib.rs +++ b/codex-rs/tui_app_server/src/lib.rs @@ -33,6 +33,7 @@ use codex_core::config_loader::CloudRequirementsLoader; use codex_core::config_loader::ConfigLoadError; use codex_core::config_loader::LoaderOverrides; use codex_core::config_loader::format_config_error_with_source; +use codex_core::default_client::DEFAULT_ORIGINATOR; use codex_core::default_client::set_default_client_residency_requirement; use codex_core::format_exec_policy_error_with_source; use codex_core::path_utils; @@ -337,17 +338,21 @@ pub fn normalize_remote_addr(addr: &str) -> color_eyre::Result { } async fn connect_remote_app_server(websocket_url: String) -> color_eyre::Result { - let app_server = RemoteAppServerClient::connect(RemoteAppServerConnectArgs { + let app_server = RemoteAppServerClient::connect(remote_app_server_connect_args(websocket_url)) + .await + .wrap_err("failed to connect to remote app server")?; + Ok(AppServerClient::Remote(app_server)) +} + +fn remote_app_server_connect_args(websocket_url: String) -> RemoteAppServerConnectArgs { + RemoteAppServerConnectArgs { websocket_url, - client_name: "codex-tui".to_string(), + client_name: DEFAULT_ORIGINATOR.to_string(), client_version: env!("CARGO_PKG_VERSION").to_string(), experimental_api: true, opt_out_notification_methods: Vec::new(), channel_capacity: DEFAULT_IN_PROCESS_CHANNEL_CAPACITY, - }) - .await - .wrap_err("failed to connect to remote app server")?; - Ok(AppServerClient::Remote(app_server)) + } } async fn start_app_server( @@ -423,7 +428,30 @@ where range: None, }) .collect(); - let client = start_client(InProcessClientStartArgs { + let client = start_client(in_process_client_start_args( + arg0_paths, + config, + cli_kv_overrides, + loader_overrides, + cloud_requirements, + feedback, + config_warnings, + )) + .await + .wrap_err("failed to start embedded app server")?; + Ok(client) +} + +fn in_process_client_start_args( + arg0_paths: Arg0DispatchPaths, + config: Config, + cli_kv_overrides: Vec<(String, toml::Value)>, + loader_overrides: LoaderOverrides, + cloud_requirements: CloudRequirementsLoader, + feedback: codex_feedback::CodexFeedback, + config_warnings: Vec, +) -> InProcessClientStartArgs { + InProcessClientStartArgs { arg0_paths, config: Arc::new(config), cli_overrides: cli_kv_overrides, @@ -433,15 +461,12 @@ where config_warnings, session_source: codex_protocol::protocol::SessionSource::Cli, enable_codex_api_key_env: false, - client_name: "codex-tui".to_string(), + client_name: DEFAULT_ORIGINATOR.to_string(), client_version: env!("CARGO_PKG_VERSION").to_string(), experimental_api: true, opt_out_notification_methods: Vec::new(), channel_capacity: DEFAULT_IN_PROCESS_CHANNEL_CAPACITY, - }) - .await - .wrap_err("failed to start embedded app server")?; - Ok(client) + } } async fn shutdown_app_server_if_present(app_server: Option) { @@ -1784,6 +1809,7 @@ mod tests { ); Ok(()) } + #[tokio::test] #[serial] async fn windows_shows_trust_prompt_with_sandbox() -> std::io::Result<()> {