agent: Fix issue where unconfigured MCP extensions would not start server (#33365)

Release Notes:

- agent: Fix an issue where MCP servers that were provided by extensions
would sometimes not start up
This commit is contained in:
Bennet Bo Fenner 2025-06-25 11:48:38 +02:00 committed by GitHub
parent 108162423d
commit 1c6b4712a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 9 deletions

View file

@ -295,10 +295,7 @@ impl ConfigureContextServerModal {
ContextServerDescriptorRegistry::default_global(cx)
.read(cx)
.context_server_descriptor(&server_id.0)
.map(|_| ContextServerSettings::Extension {
enabled: true,
settings: serde_json::json!({}),
})
.map(|_| ContextServerSettings::default_extension())
})
else {
return Task::ready(Err(anyhow::anyhow!("Context server not found")));

View file

@ -945,7 +945,10 @@ impl ExtensionImports for WasmState {
.get(key.as_str())
})
.cloned()
.context("Failed to get context server configuration")?;
.unwrap_or_else(|| {
project::project_settings::ContextServerSettings::default_extension(
)
});
match settings {
project::project_settings::ContextServerSettings::Custom {

View file

@ -505,10 +505,7 @@ impl ContextServerStore {
{
configured_servers
.entry(id)
.or_insert(ContextServerSettings::Extension {
enabled: true,
settings: serde_json::json!({}),
});
.or_insert(ContextServerSettings::default_extension());
}
let (enabled_servers, disabled_servers): (HashMap<_, _>, HashMap<_, _>) =

View file

@ -111,6 +111,13 @@ pub enum ContextServerSettings {
}
impl ContextServerSettings {
pub fn default_extension() -> Self {
Self::Extension {
enabled: true,
settings: serde_json::json!({}),
}
}
pub fn enabled(&self) -> bool {
match self {
ContextServerSettings::Custom { enabled, .. } => *enabled,