From 0b618f40fb824abb8ddf5b9ea7d145150c4d501a Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Wed, 11 Feb 2026 17:19:19 -0300 Subject: [PATCH] fix: ensure all providers are shown unless `disable_default_providers` is set (#2197) --- internal/config/provider.go | 6 +++++- internal/ui/dialog/models.go | 15 ++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/internal/config/provider.go b/internal/config/provider.go index 6ca981e5a73cbf3e3472b05f55c7b911a4a857c3..bd960e0c27ca11d5ef376c221717f061ad3deb47 100644 --- a/internal/config/provider.go +++ b/internal/config/provider.go @@ -145,11 +145,15 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) { var errs []error providers := csync.NewSlice[catwalk.Provider]() autoupdate := !cfg.Options.DisableProviderAutoUpdate + customProvidersOnly := cfg.Options.DisableDefaultProviders ctx, cancel := context.WithTimeout(context.Background(), 45*time.Second) defer cancel() wg.Go(func() { + if customProvidersOnly { + return + } catwalkURL := cmp.Or(os.Getenv("CATWALK_URL"), defaultCatwalkURL) client := catwalk.NewWithURL(catwalkURL) path := cachePathFor("providers") @@ -165,7 +169,7 @@ func Providers(cfg *Config) ([]catwalk.Provider, error) { }) wg.Go(func() { - if !hyper.Enabled() { + if customProvidersOnly || !hyper.Enabled() { return } path := cachePathFor("hyper") diff --git a/internal/ui/dialog/models.go b/internal/ui/dialog/models.go index 657cdd362de044defdd84928cb01fad4477b37b0..937eac19cab996104a22751270839ebf0656a04d 100644 --- a/internal/ui/dialog/models.go +++ b/internal/ui/dialog/models.go @@ -14,7 +14,6 @@ import ( "github.com/charmbracelet/crush/internal/ui/common" "github.com/charmbracelet/crush/internal/ui/util" uv "github.com/charmbracelet/ultraviolet" - xslice "github.com/charmbracelet/x/exp/slice" ) // ModelType represents the type of model to select. @@ -143,14 +142,12 @@ func NewModels(com *common.Common, isOnboarding bool) (*Models, error) { ) m.keyMap.Close = CloseKey - m.providers = slices.Collect( - xslice.Map( - com.Config().Providers.Seq(), - func(pc config.ProviderConfig) catwalk.Provider { - return pc.ToProvider() - }, - ), - ) + var err error + m.providers, err = config.Providers(m.com.Config()) + if err != nil { + return nil, fmt.Errorf("failed to get providers: %w", err) + } + if err := m.setProviderItems(); err != nil { return nil, fmt.Errorf("failed to set provider items: %w", err) }