From d403be70967602f7f1dae4f21acb879d3139e729 Mon Sep 17 00:00:00 2001 From: bahtya Date: Mon, 6 Apr 2026 12:43:20 +0800 Subject: [PATCH] fix: include unmapped models in recommended list Previously, models not found in CanonicalModelRegistry were silently dropped from the recommended list, making new models (e.g. claude-opus-4-6, gemini-3.1-pro) invisible in the UI dropdown. Now, unmapped models are included in the list without a release date, sorted after dated models. This allows users to select any model returned by the provider's /v1/models endpoint. Fixes #8321 Signed-off-by: bahtya --- crates/goose/src/providers/base.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/crates/goose/src/providers/base.rs b/crates/goose/src/providers/base.rs index 12b3a3c5104e..c87235be9ea8 100644 --- a/crates/goose/src/providers/base.rs +++ b/crates/goose/src/providers/base.rs @@ -603,10 +603,19 @@ pub trait Provider: Send + Sync { let provider_name = self.get_name(); // Get all text-capable models with their release dates + // Models that can't be mapped to a canonical ID are still included + // (without a release date) so users can select newly released models. let mut models_with_dates: Vec<(String, Option)> = all_models .iter() .filter_map(|model| { - let canonical_id = map_to_canonical_model(provider_name, model, registry)?; + let canonical_id = match map_to_canonical_model(provider_name, model, registry) { + Some(id) => id, + None => { + // Unmapped model — include it anyway so new/unknown models + // are available in the UI dropdown. + return Some((model.clone(), None)); + } + }; let (provider, model_name) = canonical_id.split_once('/')?; let canonical_model = registry.get(provider, model_name)?;