From 7591ac91840b7362ea5dfef9426505662e879d31 Mon Sep 17 00:00:00 2001 From: Joe Gershenson Date: Thu, 19 Mar 2026 23:52:09 -0700 Subject: [PATCH] fix(core): align rebased MCP manager API --- codex-rs/core/src/mcp_connection_manager.rs | 3 +- .../core/src/mcp_connection_manager_tests.rs | 64 +++++++++---------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/codex-rs/core/src/mcp_connection_manager.rs b/codex-rs/core/src/mcp_connection_manager.rs index c3af0c9257..f32ad84857 100644 --- a/codex-rs/core/src/mcp_connection_manager.rs +++ b/codex-rs/core/src/mcp_connection_manager.rs @@ -1264,8 +1264,9 @@ impl McpConnectionManager { server: &str, tool: &str, arguments: Option, + meta: Option, ) -> Result { - self.backend.call_tool(server, tool, arguments).await + self.backend.call_tool(server, tool, arguments, meta).await } /// List resources from the specified server. diff --git a/codex-rs/core/src/mcp_connection_manager_tests.rs b/codex-rs/core/src/mcp_connection_manager_tests.rs index 23e96affd0..109fd21ac0 100644 --- a/codex-rs/core/src/mcp_connection_manager_tests.rs +++ b/codex-rs/core/src/mcp_connection_manager_tests.rs @@ -413,14 +413,14 @@ async fn list_all_tools_uses_startup_snapshot_while_client_is_pending() { .expect("test manager backend should be uniquely owned") .clients .insert( - CODEX_APPS_MCP_SERVER_NAME.to_string(), - AsyncManagedClient { - client: pending_client, - startup_snapshot: Some(startup_tools), - startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), - tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), - }, - ); + CODEX_APPS_MCP_SERVER_NAME.to_string(), + AsyncManagedClient { + client: pending_client, + startup_snapshot: Some(startup_tools), + startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), + tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), + }, + ); let tools = manager.list_all_tools().await; let tool = tools @@ -441,14 +441,14 @@ async fn list_all_tools_blocks_while_client_is_pending_without_startup_snapshot( .expect("test manager backend should be uniquely owned") .clients .insert( - CODEX_APPS_MCP_SERVER_NAME.to_string(), - AsyncManagedClient { - client: pending_client, - startup_snapshot: None, - startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), - tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), - }, - ); + CODEX_APPS_MCP_SERVER_NAME.to_string(), + AsyncManagedClient { + client: pending_client, + startup_snapshot: None, + startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), + tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), + }, + ); let timeout_result = tokio::time::timeout(Duration::from_millis(10), manager.list_all_tools()).await; @@ -466,14 +466,14 @@ async fn list_all_tools_does_not_block_when_startup_snapshot_cache_hit_is_empty( .expect("test manager backend should be uniquely owned") .clients .insert( - CODEX_APPS_MCP_SERVER_NAME.to_string(), - AsyncManagedClient { - client: pending_client, - startup_snapshot: Some(Vec::new()), - startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), - tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), - }, - ); + CODEX_APPS_MCP_SERVER_NAME.to_string(), + AsyncManagedClient { + client: pending_client, + startup_snapshot: Some(Vec::new()), + startup_complete: Arc::new(std::sync::atomic::AtomicBool::new(false)), + tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), + }, + ); let timeout_result = tokio::time::timeout(Duration::from_millis(10), manager.list_all_tools()).await; @@ -501,14 +501,14 @@ async fn list_all_tools_uses_startup_snapshot_when_client_startup_fails() { .expect("test manager backend should be uniquely owned") .clients .insert( - CODEX_APPS_MCP_SERVER_NAME.to_string(), - AsyncManagedClient { - client: failed_client, - startup_snapshot: Some(startup_tools), - startup_complete, - tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), - }, - ); + CODEX_APPS_MCP_SERVER_NAME.to_string(), + AsyncManagedClient { + client: failed_client, + startup_snapshot: Some(startup_tools), + startup_complete, + tool_plugin_provenance: Arc::new(ToolPluginProvenance::default()), + }, + ); let tools = manager.list_all_tools().await; let tool = tools