From 93b1e95a5dc4fed41e6467e3dc9a2c6090896026 Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Tue, 1 Jul 2025 00:46:01 -0600 Subject: [PATCH] agent: Make `AgentSettings::default_model` optional (#33695) It's already effectively optional and the the old default of gpt-4 doesn't really get used in practice Release Notes: - N/A --- crates/agent_settings/src/agent_settings.rs | 16 +++++----------- crates/agent_ui/src/agent_ui.rs | 4 ++-- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/crates/agent_settings/src/agent_settings.rs b/crates/agent_settings/src/agent_settings.rs index c5488b75a8..f3087765de 100644 --- a/crates/agent_settings/src/agent_settings.rs +++ b/crates/agent_settings/src/agent_settings.rs @@ -50,7 +50,7 @@ pub struct AgentSettings { pub dock: AgentDockPosition, pub default_width: Pixels, pub default_height: Pixels, - pub default_model: LanguageModelSelection, + pub default_model: Option, pub inline_assistant_model: Option, pub commit_message_model: Option, pub thread_summary_model: Option, @@ -357,15 +357,6 @@ impl From<&str> for LanguageModelProviderSetting { } } -impl Default for LanguageModelSelection { - fn default() -> Self { - Self { - provider: LanguageModelProviderSetting("openai".to_string()), - model: "gpt-4".to_string(), - } - } -} - #[derive(Debug, PartialEq, Clone, Serialize, Deserialize, JsonSchema)] pub struct AgentProfileContent { pub name: Arc, @@ -409,7 +400,10 @@ impl Settings for AgentSettings { &mut settings.default_height, value.default_height.map(Into::into), ); - merge(&mut settings.default_model, value.default_model.clone()); + settings.default_model = value + .default_model + .clone() + .or(settings.default_model.take()); settings.inline_assistant_model = value .inline_assistant_model .clone() diff --git a/crates/agent_ui/src/agent_ui.rs b/crates/agent_ui/src/agent_ui.rs index 0ba3d07f99..b5ab5a147e 100644 --- a/crates/agent_ui/src/agent_ui.rs +++ b/crates/agent_ui/src/agent_ui.rs @@ -211,7 +211,7 @@ fn update_active_language_model_from_settings(cx: &mut App) { } } - let default = to_selected_model(&settings.default_model); + let default = settings.default_model.as_ref().map(to_selected_model); let inline_assistant = settings .inline_assistant_model .as_ref() @@ -231,7 +231,7 @@ fn update_active_language_model_from_settings(cx: &mut App) { .collect::>(); LanguageModelRegistry::global(cx).update(cx, |registry, cx| { - registry.select_default_model(Some(&default), cx); + registry.select_default_model(default.as_ref(), cx); registry.select_inline_assistant_model(inline_assistant.as_ref(), cx); registry.select_commit_message_model(commit_message.as_ref(), cx); registry.select_thread_summary_model(thread_summary.as_ref(), cx);