From 91d76b2e33b8becb93c62471d27f6c66fad22b1c Mon Sep 17 00:00:00 2001 From: Richard Feldman Date: Tue, 30 Sep 2025 17:08:59 -0400 Subject: [PATCH] Login for Codex --- crates/agent_servers/src/codex.rs | 2 +- crates/agent_ui/src/acp/thread_view.rs | 15 +++++++++------ crates/agent_ui/src/agent_configuration.rs | 5 ----- crates/project/src/agent_server_store.rs | 10 ---------- 4 files changed, 10 insertions(+), 22 deletions(-) diff --git a/crates/agent_servers/src/codex.rs b/crates/agent_servers/src/codex.rs index 829a9cc0c1f444b8ce23c65264fd60a4de88209a..e77b5d1611a2fac4ee7ac28681795947c44bc72e 100644 --- a/crates/agent_servers/src/codex.rs +++ b/crates/agent_servers/src/codex.rs @@ -21,7 +21,7 @@ impl AgentServer for Codex { fn logo(&self) -> ui::IconName { // No dedicated Codex icon yet; use the generic AI icon. - ui::IconName::Ai + ui::IconName::AiOpenAi } fn connect( diff --git a/crates/agent_ui/src/acp/thread_view.rs b/crates/agent_ui/src/acp/thread_view.rs index 104b06049d44c2b9b08262b545ebe3a499f3155b..5e402e60777071f64db091e4ccaa545b651a3fc3 100644 --- a/crates/agent_ui/src/acp/thread_view.rs +++ b/crates/agent_ui/src/acp/thread_view.rs @@ -1012,11 +1012,13 @@ impl AcpThreadView { }; let connection = thread.read(cx).connection().clone(); - if !connection - .auth_methods() - .iter() - .any(|method| method.id.0.as_ref() == "claude-login") - { + let auth_methods = connection.auth_methods(); + let has_supported_auth = auth_methods.iter().any(|method| { + let id = method.id.0.as_ref(); + id == "claude-login" || id == "spawn-gemini-cli" || id == "spawn-codex-acp" + }); + let can_login = has_supported_auth || auth_methods.is_empty() || self.login.is_some(); + if !can_login { return; }; let this = cx.weak_entity(); @@ -1517,7 +1519,8 @@ impl AcpThreadView { configuration_view.take(); pending_auth_method.replace(method.clone()); let authenticate = if (method.0.as_ref() == "claude-login" - || method.0.as_ref() == "spawn-gemini-cli") + || method.0.as_ref() == "spawn-gemini-cli" + || method.0.as_ref() == "spawn-codex-acp") && let Some(login) = self.login.clone() { if let Some(workspace) = self.workspace.upgrade() { diff --git a/crates/agent_ui/src/agent_configuration.rs b/crates/agent_ui/src/agent_configuration.rs index 4f6b74a7fa7eb2f625228b36b8e6c56d6b679b70..54fbfc536c2eae0581a4c3d9949913724537a7a7 100644 --- a/crates/agent_ui/src/agent_configuration.rs +++ b/crates/agent_ui/src/agent_configuration.rs @@ -1088,11 +1088,6 @@ impl AgentConfiguration { IconName::AiClaude, "Claude Code", )) - .child(Divider::horizontal().color(DividerColor::BorderFaded)) - .child(self.render_agent_server( - IconName::Ai, - "Codex", - )) .map(|mut parent| { for agent in user_defined_agents { parent = parent.child(Divider::horizontal().color(DividerColor::BorderFaded)) diff --git a/crates/project/src/agent_server_store.rs b/crates/project/src/agent_server_store.rs index 6fde9a1139ae9090f442e2a62d1c198a005b800c..0398ec84b5ed005cf958e182562f750f23dde3f1 100644 --- a/crates/project/src/agent_server_store.rs +++ b/crates/project/src/agent_server_store.rs @@ -298,16 +298,6 @@ impl AgentServerStore { new_version_available_tx: None, }) as Box, ), - ( - CODEX_NAME.into(), - Box::new(RemoteExternalAgentServer { - project_id, - upstream_client: upstream_client.clone(), - name: CODEX_NAME.into(), - status_tx: None, - new_version_available_tx: None, - }) as Box, - ), ] .into_iter() .collect();