Fix tui app-server originator

This commit is contained in:
Eric Traut
2026-03-19 10:08:06 -06:00
parent e4f53e5e99
commit 5a32b33eed

View File

@@ -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<String> {
}
async fn connect_remote_app_server(websocket_url: String) -> color_eyre::Result<AppServerClient> {
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<ConfigWarningNotification>,
) -> 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<AppServerSession>) {
@@ -1784,6 +1809,7 @@ mod tests {
);
Ok(())
}
#[tokio::test]
#[serial]
async fn windows_shows_trust_prompt_with_sandbox() -> std::io::Result<()> {