From 8cf663011f8aa1f8e1f75a7850945222e4bc0299 Mon Sep 17 00:00:00 2001 From: Bennet Bo Fenner Date: Wed, 27 Aug 2025 14:53:07 +0200 Subject: [PATCH] acp: Add more logs to model selector to diagnose issue (#36997) Release Notes: - N/A --------- Co-authored-by: Antonio Scandurra Co-authored-by: Cole Miller Co-authored-by: Joseph T. Lyons Co-authored-by: Katie Geer --- crates/acp_thread/src/connection.rs | 7 +++++++ crates/agent_ui/src/acp/model_selector.rs | 9 ++++++++- crates/language_model/src/registry.rs | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/crates/acp_thread/src/connection.rs b/crates/acp_thread/src/connection.rs index af229b7545651c2f19f361afc7ea0abadcb5cc76..e4ab4c6ec5423e6b4b2abddb3a3cb3ac742282df 100644 --- a/crates/acp_thread/src/connection.rs +++ b/crates/acp_thread/src/connection.rs @@ -232,6 +232,13 @@ impl AgentModelList { AgentModelList::Grouped(groups) => groups.is_empty(), } } + + pub fn len(&self) -> usize { + match self { + AgentModelList::Flat(models) => models.len(), + AgentModelList::Grouped(groups) => groups.values().len(), + } + } } #[cfg(feature = "test-support")] diff --git a/crates/agent_ui/src/acp/model_selector.rs b/crates/agent_ui/src/acp/model_selector.rs index 77c88c461d6e6fadcefd8eb7319bbbe2ff05fef4..052277d3e6ee8533d6e560a00211ea46bc2ccb71 100644 --- a/crates/agent_ui/src/acp/model_selector.rs +++ b/crates/agent_ui/src/acp/model_selector.rs @@ -71,7 +71,7 @@ impl AcpModelPickerDelegate { let (models, selected_model) = futures::join!(models_task, selected_model_task); this.update_in(cx, |this, window, cx| { - this.delegate.models = models.ok(); + this.delegate.models = models.log_err(); this.delegate.selected_model = selected_model.ok(); this.delegate.update_matches(this.query(cx), window, cx) })? @@ -144,6 +144,11 @@ impl PickerDelegate for AcpModelPickerDelegate { cx.spawn_in(window, async move |this, cx| { let filtered_models = match this .read_with(cx, |this, cx| { + if let Some(models) = this.delegate.models.as_ref() { + log::debug!("Filtering {} models.", models.len()); + } else { + log::debug!("No models available."); + } this.delegate.models.clone().map(move |models| { fuzzy_search(models, query, cx.background_executor().clone()) }) @@ -155,6 +160,8 @@ impl PickerDelegate for AcpModelPickerDelegate { None => AgentModelList::Flat(vec![]), }; + log::debug!("Filtered models. {} available.", filtered_models.len()); + this.update_in(cx, |this, window, cx| { this.delegate.filtered_entries = info_list_to_picker_entries(filtered_models).collect(); diff --git a/crates/language_model/src/registry.rs b/crates/language_model/src/registry.rs index 531c3615dc8c5c082ef6fced950d33621b78dac0..bab258bca1728ac45f5ef5c0397149b93f0d6031 100644 --- a/crates/language_model/src/registry.rs +++ b/crates/language_model/src/registry.rs @@ -208,6 +208,7 @@ impl LanguageModelRegistry { ) -> impl Iterator> + 'a { self.providers .values() + .filter(|provider| provider.is_authenticated(cx)) .flat_map(|provider| provider.provided_models(cx)) }