@@ -10,6 +10,7 @@ use std::{
use anyhow::{Context as _, Result, bail};
use client::Client;
use collections::HashMap;
+use feature_flags::FeatureFlagAppExt as _;
use fs::{Fs, RemoveOptions, RenameOptions};
use futures::StreamExt as _;
use gpui::{
@@ -124,6 +125,7 @@ enum AgentServerStoreState {
pub struct AgentServerStore {
state: AgentServerStoreState,
external_agents: HashMap<ExternalAgentServerName, Box<dyn ExternalAgentServer>>,
+ _feature_flag_subscription: Option<gpui::Subscription>,
}
pub struct AgentServersUpdated;
@@ -249,6 +251,13 @@ impl AgentServerStore {
let subscription = cx.observe_global::<SettingsStore>(|this, cx| {
this.agent_servers_settings_changed(cx);
});
+ let this_handle = cx.weak_entity();
+ let feature_flags_subscription =
+ cx.observe_flag::<feature_flags::CodexAcpFeatureFlag, _>(move |_enabled, cx| {
+ let _ = this_handle.update(cx, |this, cx| {
+ this.agent_servers_settings_changed(cx);
+ });
+ });
let mut this = Self {
state: AgentServerStoreState::Local {
node_runtime,
@@ -259,6 +268,7 @@ impl AgentServerStore {
_subscriptions: [subscription],
},
external_agents: Default::default(),
+ _feature_flag_subscription: Some(feature_flags_subscription),
};
this.agent_servers_settings_changed(cx);
this
@@ -303,6 +313,7 @@ impl AgentServerStore {
upstream_client,
},
external_agents,
+ _feature_flag_subscription: None,
}
}
@@ -310,6 +321,7 @@ impl AgentServerStore {
Self {
state: AgentServerStoreState::Collab,
external_agents: Default::default(),
+ _feature_flag_subscription: None,
}
}