diff --git a/codex-rs/core/src/tools/handlers/request_plugin_install.rs b/codex-rs/core/src/tools/handlers/request_plugin_install.rs index e44ed41fa4..c57df35fe5 100644 --- a/codex-rs/core/src/tools/handlers/request_plugin_install.rs +++ b/codex-rs/core/src/tools/handlers/request_plugin_install.rs @@ -79,7 +79,7 @@ impl ToolExecutor for RequestPluginInstallHandler { } fn supports_parallel_tool_calls(&self) -> bool { - true + false } fn handle(&self, invocation: ToolInvocation) -> codex_tools::ToolExecutorFuture<'_> { diff --git a/codex-rs/core/src/tools/handlers/request_plugin_install_tests.rs b/codex-rs/core/src/tools/handlers/request_plugin_install_tests.rs index 93b761be58..774ed49116 100644 --- a/codex-rs/core/src/tools/handlers/request_plugin_install_tests.rs +++ b/codex-rs/core/src/tools/handlers/request_plugin_install_tests.rs @@ -21,6 +21,16 @@ use rmcp::model::ElicitationAction; use serde_json::json; use tempfile::tempdir; +#[test] +fn request_plugin_install_does_not_support_parallel_tool_calls() { + let handler = RequestPluginInstallHandler::new( + Vec::new(), + ToolSuggestPresentation::RecommendationContext, + ); + + assert!(!handler.supports_parallel_tool_calls()); +} + #[tokio::test] async fn verified_plugin_install_completed_requires_installed_plugin() { let codex_home = tempdir().expect("tempdir should succeed");