From 74e5b848ff2007102fbb3cf8fb44d7e496659d08 Mon Sep 17 00:00:00 2001 From: Marshall Bowers Date: Tue, 16 Sep 2025 18:24:03 -0400 Subject: [PATCH] cloud_llm_client: Make `default_model` and `default_fast_model` optional (#38288) This PR makes the `default_model` and `default_fast_model` fields optional on the `ListModelsResponse`. Release Notes: - N/A --- crates/cloud_llm_client/src/cloud_llm_client.rs | 4 ++-- crates/language_models/src/provider/cloud.rs | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/cloud_llm_client/src/cloud_llm_client.rs b/crates/cloud_llm_client/src/cloud_llm_client.rs index 12ea6be1f332960f4db7e9a7d67b7b3b926d905f..24923a318441afeaa2521064b4f433ab9ee1e55f 100644 --- a/crates/cloud_llm_client/src/cloud_llm_client.rs +++ b/crates/cloud_llm_client/src/cloud_llm_client.rs @@ -321,8 +321,8 @@ pub struct LanguageModel { #[derive(Debug, Serialize, Deserialize)] pub struct ListModelsResponse { pub models: Vec, - pub default_model: LanguageModelId, - pub default_fast_model: LanguageModelId, + pub default_model: Option, + pub default_fast_model: Option, pub recommended_models: Vec, } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 6393117185e9104bec77f14fe334e94bb18679db..24a4ba6cc260a91de170bb665c86756c8d7a25ca 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -215,11 +215,21 @@ impl State { self.default_model = models .iter() - .find(|model| model.id == response.default_model) + .find(|model| { + response + .default_model + .as_ref() + .is_some_and(|default_model_id| &model.id == default_model_id) + }) .cloned(); self.default_fast_model = models .iter() - .find(|model| model.id == response.default_fast_model) + .find(|model| { + response + .default_fast_model + .as_ref() + .is_some_and(|default_fast_model_id| &model.id == default_fast_model_id) + }) .cloned(); self.recommended_models = response .recommended_models