From 1d858afb7d7a568367497fe6d94e70a5f567d607 Mon Sep 17 00:00:00 2001 From: David Katz Date: Thu, 9 Oct 2025 10:48:36 -0400 Subject: [PATCH 1/2] provider ordering --- crates/goose-cli/src/commands/configure.rs | 5 ++++- .../src/components/settings/providers/ProviderGrid.tsx | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/goose-cli/src/commands/configure.rs b/crates/goose-cli/src/commands/configure.rs index c1d3b53041b..baf12a9d8be 100644 --- a/crates/goose-cli/src/commands/configure.rs +++ b/crates/goose-cli/src/commands/configure.rs @@ -420,7 +420,10 @@ pub async fn configure_provider_dialog() -> Result> { let config = Config::global(); // Get all available providers and their metadata - let available_providers = providers(); + let mut available_providers = providers(); + + // Sort providers alphabetically by name + available_providers.sort_by(|a, b| a.name.cmp(&b.name)); // Create selection items from provider metadata let provider_items: Vec<(&String, &str, &str)> = available_providers diff --git a/ui/desktop/src/components/settings/providers/ProviderGrid.tsx b/ui/desktop/src/components/settings/providers/ProviderGrid.tsx index 661342782ae..eb1a071f76a 100644 --- a/ui/desktop/src/components/settings/providers/ProviderGrid.tsx +++ b/ui/desktop/src/components/settings/providers/ProviderGrid.tsx @@ -114,7 +114,9 @@ const ProviderCards = memo(function ProviderCards({ const providerCards = useMemo(() => { // providers needs to be an array const providersArray = Array.isArray(providers) ? providers : []; - const cards = providersArray.map((provider) => ( + // Sort providers alphabetically by name + const sortedProviders = [...providersArray].sort((a, b) => a.name.localeCompare(b.name)); + const cards = sortedProviders.map((provider) => ( Date: Thu, 9 Oct 2025 11:06:29 -0400 Subject: [PATCH 2/2] order works --- crates/goose-cli/src/commands/configure.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/goose-cli/src/commands/configure.rs b/crates/goose-cli/src/commands/configure.rs index baf12a9d8be..99dea32d891 100644 --- a/crates/goose-cli/src/commands/configure.rs +++ b/crates/goose-cli/src/commands/configure.rs @@ -421,9 +421,9 @@ pub async fn configure_provider_dialog() -> Result> { // Get all available providers and their metadata let mut available_providers = providers(); - - // Sort providers alphabetically by name - available_providers.sort_by(|a, b| a.name.cmp(&b.name)); + + // Sort providers alphabetically by display name + available_providers.sort_by(|a, b| a.display_name.cmp(&b.display_name)); // Create selection items from provider metadata let provider_items: Vec<(&String, &str, &str)> = available_providers