From bdf29bf76f7b3726bfabe296d40c0ef819b43f42 Mon Sep 17 00:00:00 2001 From: Peter Tripp Date: Mon, 30 Jun 2025 10:56:25 -0400 Subject: [PATCH] Allow disabling tools when 'enable_all_context_servers = true' (#33536) Closes https://github.com/zed-industries/zed/issues/33519 Release Notes: - agent: Improved support for explicitly disabling individual tools when `enable_all_context_servers` is true. (e.g. enable all tools except XYZ). --- crates/agent/src/agent_profile.rs | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/crates/agent/src/agent_profile.rs b/crates/agent/src/agent_profile.rs index 07030c744fc085914ed5d085afd3699482fc6739..2c3b457dc2eef593085bb63ccb42fd70082163b3 100644 --- a/crates/agent/src/agent_profile.rs +++ b/crates/agent/src/agent_profile.rs @@ -96,16 +96,11 @@ impl AgentProfile { fn is_enabled(settings: &AgentProfileSettings, source: ToolSource, name: String) -> bool { match source { ToolSource::Native => *settings.tools.get(name.as_str()).unwrap_or(&false), - ToolSource::ContextServer { id } => { - if settings.enable_all_context_servers { - return true; - } - - let Some(preset) = settings.context_servers.get(id.as_ref()) else { - return false; - }; - *preset.tools.get(name.as_str()).unwrap_or(&false) - } + ToolSource::ContextServer { id } => settings + .context_servers + .get(id.as_ref()) + .and_then(|preset| preset.tools.get(name.as_str()).copied()) + .unwrap_or(settings.enable_all_context_servers), } } }