on main help sign in
fix: ensure hyper is the first provider in the list
1e691e0Andrey Nering
internal/tui/components/dialogs/models/list.go+2−4
@@ -186,9 +186,7 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
186
186
187 // Move "Charm Hyper" to first position
187 // Move "Charm Hyper" to first position
188 // (but still after recent models and custom providers).
188 // (but still after recent models and custom providers).
189− sortedProviders := make([]catwalk.Provider, len(m.providers))
190− copy(sortedProviders, m.providers)
191− slices.SortStableFunc(sortedProviders, func(a, b catwalk.Provider) int {
189+ slices.SortStableFunc(m.providers, func(a, b catwalk.Provider) int {
192 switch {
190 switch {
193 case a.ID == "hyper":
191 case a.ID == "hyper":
194 return -1
192 return -1
@@ -200,7 +198,7 @@ func (m *ModelListComponent) SetModelType(modelType int) tea.Cmd {
200 })
198 })
201
199
202 // Then add the known providers from the predefined list
200 // Then add the known providers from the predefined list
203− for _, provider := range sortedProviders {
201+ for _, provider := range m.providers {
204 // Skip if we already added this provider as an unknown provider
202 // Skip if we already added this provider as an unknown provider
205 if addedProviders[string(provider.ID)] {
203 if addedProviders[string(provider.ID)] {
206 continue
204 continue
internal/ui/dialog/models.go+13
@@ -354,6 +354,19 @@ func (m *Models) setProviderItems() error {
354 }
354 }
355 }
355 }
356
356
357+ // Move "Charm Hyper" to first position.
358+ // (But still after recent models and custom providers).
359+ slices.SortStableFunc(m.providers, func(a, b catwalk.Provider) int {
360+ switch {
361+ case a.ID == "hyper":
362+ return -1
363+ case b.ID == "hyper":
364+ return 1
365+ default:
366+ return 0
367+ }
368+ })
369+
357 // Now add known providers from the predefined list
370 // Now add known providers from the predefined list
358 for _, provider := range m.providers {
371 for _, provider := range m.providers {
359 providerID := string(provider.ID)
372 providerID := string(provider.ID)