From 12b786dffc39bbc0eb109498e5a3f5149e6bd5de Mon Sep 17 00:00:00 2001 From: Ben Brandt Date: Mon, 2 Mar 2026 16:30:03 +0100 Subject: [PATCH] agent: Remove subagents feature flag (#50493) Release Notes: - agent: Add new `spawn_agent` tool which allows the Zed Agent to utilize subagents for doing tasks in parallel and better context management. Co-authored-by: Bennet Bo Fenner --- crates/agent/src/thread.rs | 6 ++---- .../src/agent_configuration/manage_profiles_modal.rs | 8 ++------ crates/feature_flags/src/flags.rs | 10 ---------- 3 files changed, 4 insertions(+), 20 deletions(-) diff --git a/crates/agent/src/thread.rs b/crates/agent/src/thread.rs index 0825910e78af2950b895c17699c8cd623b359727..a63437e9e486872458666d324d6dec50cbd1d149 100644 --- a/crates/agent/src/thread.rs +++ b/crates/agent/src/thread.rs @@ -8,9 +8,7 @@ use crate::{ }; use acp_thread::{MentionUri, UserMessageId}; use action_log::ActionLog; -use feature_flags::{ - FeatureFlagAppExt as _, StreamingEditFileToolFeatureFlag, SubagentsFeatureFlag, -}; +use feature_flags::{FeatureFlagAppExt as _, StreamingEditFileToolFeatureFlag}; use agent_client_protocol as acp; use agent_settings::{ @@ -1387,7 +1385,7 @@ impl Thread { self.add_tool(TerminalTool::new(self.project.clone(), environment.clone())); self.add_tool(WebSearchTool); - if cx.has_flag::() && self.depth() < MAX_SUBAGENT_DEPTH { + if self.depth() < MAX_SUBAGENT_DEPTH { self.add_tool(SpawnAgentTool::new(environment)); } } diff --git a/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs b/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs index f46588c79033d965cbee0aaeb2624e7ae0756af6..744c92a7f7739c9fda2664de45d536769e802986 100644 --- a/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs +++ b/crates/agent_ui/src/agent_configuration/manage_profiles_modal.rs @@ -2,10 +2,9 @@ mod profile_modal_header; use std::sync::Arc; -use agent::{AgentTool, ContextServerRegistry, SpawnAgentTool}; +use agent::ContextServerRegistry; use agent_settings::{AgentProfile, AgentProfileId, AgentSettings, builtin_profiles}; use editor::Editor; -use feature_flags::{FeatureFlagAppExt as _, SubagentsFeatureFlag}; use fs::Fs; use gpui::{DismissEvent, Entity, EventEmitter, FocusHandle, Focusable, Subscription, prelude::*}; use language_model::{LanguageModel, LanguageModelRegistry}; @@ -363,10 +362,7 @@ impl ManageProfilesModal { let supported_by_provider = provider.as_ref().map_or(true, |provider| { agent::tool_supports_provider(name, provider) }); - let enabled_by_feature_flag = - *name != SpawnAgentTool::NAME || cx.has_flag::(); - - supported_by_provider && enabled_by_feature_flag + supported_by_provider }) .map(Arc::from) .collect(); diff --git a/crates/feature_flags/src/flags.rs b/crates/feature_flags/src/flags.rs index 087e76c4129254d3b6f488259bc8fa19aa91370d..eab9f8c1036a83451fc3201f97cfb1cc8c885043 100644 --- a/crates/feature_flags/src/flags.rs +++ b/crates/feature_flags/src/flags.rs @@ -37,16 +37,6 @@ impl FeatureFlag for AgentSharingFeatureFlag { const NAME: &'static str = "agent-sharing"; } -pub struct SubagentsFeatureFlag; - -impl FeatureFlag for SubagentsFeatureFlag { - const NAME: &'static str = "subagents"; - - fn enabled_for_staff() -> bool { - true - } -} - pub struct DiffReviewFeatureFlag; impl FeatureFlag for DiffReviewFeatureFlag {