From 55810789353088fe1e650fa7634b268172d482f0 Mon Sep 17 00:00:00 2001 From: David Katz Date: Wed, 15 Oct 2025 11:26:28 -0400 Subject: [PATCH] Sort providers in alphabetical vs random (#5090) --- 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 cf196b87..c7e48e7d 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().await; + let mut available_providers = providers().await; + + // 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 diff --git a/ui/desktop/src/components/settings/providers/ProviderGrid.tsx b/ui/desktop/src/components/settings/providers/ProviderGrid.tsx index cdce9e8c..b4bb70fc 100644 --- a/ui/desktop/src/components/settings/providers/ProviderGrid.tsx +++ b/ui/desktop/src/components/settings/providers/ProviderGrid.tsx @@ -153,7 +153,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) => (