on main help sign in
fix: ensure all providers are shown unless `disable_default_providers` is set (#2197)
commit0b618f40fb824abb8ddf5b9ea7d145150c4d501a authorAndrey Nering <andreynering@users.noreply.github.com> dateWed 11 Feb 2026, 17:19 (8 months ago) parentf22ec5f
2 files changed+11−10
internal/config/provider.go+5−1 internal/ui/dialog/models.go+6−9
internal/config/provider.go+5−1
@@ -145,11 +145,15 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
145145 var errs []error
146146 providers := csync.NewSlice[catwalk.Provider]()
147147 autoupdate := !cfg.Options.DisableProviderAutoUpdate
148+ customProvidersOnly := cfg.Options.DisableDefaultProviders
148149
149150 ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second)
150151 defer cancel()
151152
152153 wg.Go(func() {
154+ if customProvidersOnly {
155+ return
156+ }
153157 catwalkURL := cmp.Or(os.Getenv("CATWALK_URL"), defaultCatwalkURL)
154158 client := catwalk.NewWithURL(catwalkURL)
155159 path := cachePathFor("providers")
@@ -165,7 +169,7 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) {
165169 })
166170
167171 wg.Go(func() {
168− if !hyper.Enabled() {
172+ if customProvidersOnly || !hyper.Enabled() {
169173 return
170174 }
171175 path := cachePathFor("hyper")
internal/ui/dialog/models.go+6−9
@@ -14,7 +14,6 @@ import (
1414 "github.com/charmbracelet/crush/internal/ui/common"
1515 "github.com/charmbracelet/crush/internal/ui/util"
1616 uv "github.com/charmbracelet/ultraviolet"
17− xslice "github.com/charmbracelet/x/exp/slice"
1817)
1918
2019// ModelType represents the type of model to select.
@@ -143,14 +142,12 @@ func NewModels(com *common.Common, isOnboarding bool) (*Models, error) {
143142 )
144143 m.keyMap.Close = CloseKey
145144
146− m.providers = slices.Collect(
147− xslice.Map(
148− com.Config().Providers.Seq(),
149− func(pc config.ProviderConfig) catwalk.Provider {
150− return pc.ToProvider()
151− },
152− ),
153− )
145+ var err error
146+ m.providers, err = config.Providers(m.com.Config())
147+ if err != nil {
148+ return nil, fmt.Errorf("failed to get providers: %w", err)
149+ }
150+
154151 if err := m.setProviderItems(); err != nil {
155152 return nil, fmt.Errorf("failed to set provider items: %w", err)
156153 }