From 1e691e0c49c343e0df46bc332f5d973b4cd85b7f Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Fri, 23 Jan 2026 14:50:52 -0300 Subject: [PATCH] fix: ensure hyper is the first provider in the list --- internal/tui/components/dialogs/models/list.go | 6 ++---- internal/ui/dialog/models.go | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/internal/tui/components/dialogs/models/list.go b/internal/tui/components/dialogs/models/list.go index 9640b894d8e5bfb8659440f18f4cf04fb413bf02..581122525a89dd308bb57a30e6b15a4cd0896708 100644 --- a/internal/tui/components/dialogs/models/list.go +++ b/internal/tui/components/dialogs/models/list.go @@ -186,9 +186,7 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd { // Move "Charm Hyper" to first position // (but still after recent models and custom providers). - sortedProviders := make([]catwalk.Provider, len(m.providers)) - copy(sortedProviders, m.providers) - slices.SortStableFunc(sortedProviders, func(a, b catwalk.Provider) int { + slices.SortStableFunc(m.providers, func(a, b catwalk.Provider) int { switch { case a.ID == "hyper": return -1 @@ -200,7 +198,7 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd { }) // Then add the known providers from the predefined list - for _, provider := range sortedProviders { + for _, provider := range m.providers { // Skip if we already added this provider as an unknown provider if addedProviders[string(provider.ID)] { continue diff --git a/internal/ui/dialog/models.go b/internal/ui/dialog/models.go index 00677124c2f02f9cfc7bf7a9121c09464fbf90dd..532fad84acd816d67e88e71eb8160964e70e35b0 100644 --- a/internal/ui/dialog/models.go +++ b/internal/ui/dialog/models.go @@ -354,6 +354,19 @@ func (m *Models) setProviderItems() error { } } + // Move "Charm Hyper" to first position. + // (But still after recent models and custom providers). + slices.SortStableFunc(m.providers, func(a, b catwalk.Provider) int { + switch { + case a.ID == "hyper": + return -1 + case b.ID == "hyper": + return 1 + default: + return 0 + } + }) + // Now add known providers from the predefined list for _, provider := range m.providers { providerID := string(provider.ID)