on main help sign in
chore: remove provider tests on startup
4042317Kujtim Hoxha
internal/config/load.go−34
@@ -10,7 +10,6 @@ import (
10 "runtime"
10 "runtime"
11 "slices"
11 "slices"
12 "strings"
12 "strings"
13− "sync"
14
13
15 "github.com/charmbracelet/catwalk/pkg/catwalk"
14 "github.com/charmbracelet/catwalk/pkg/catwalk"
16 "github.com/charmbracelet/crush/internal/csync"
15 "github.com/charmbracelet/crush/internal/csync"
@@ -78,8 +77,6 @@ func Load(workingDir string, debug bool) (*Config, error) {
78 return nil, fmt.Errorf("failed to configure providers: %w", err)
77 return nil, fmt.Errorf("failed to configure providers: %w", err)
79 }
78 }
80
79
81− go cfg.removeUnresponsiveProviders()
82−
83 if !cfg.IsConfigured() {
80 if !cfg.IsConfigured() {
84 slog.Warn("No providers configured")
81 slog.Warn("No providers configured")
85 return cfg, nil
82 return cfg, nil
@@ -92,37 +89,6 @@ func Load(workingDir string, debug bool) (*Config, error) {
92 return cfg, nil
89 return cfg, nil
93}
90}
94
91
95−func (c *Config) removeUnresponsiveProviders() {
96− slog.Info("Testing provider connections")
97− defer slog.Info("Provider connection tests completed")
98−
99− // Test provider connections in parallel
100− var wg sync.WaitGroup
101− testResults := csync.NewMap[string, bool]()
102− for _, p := range c.Providers.Seq2() {
103− if p.Type != catwalk.TypeOpenAI && p.Type != catwalk.TypeAnthropic {
104− continue
105− }
106− wg.Add(1)
107− go func(provider ProviderConfig) {
108− defer wg.Done()
109− err := provider.TestConnection(c.resolver)
110− testResults.Set(provider.ID, err == nil)
111− if err != nil {
112− slog.Error("Provider connection test failed", "provider", provider.ID, "error", err)
113− }
114− }(p)
115− }
116− wg.Wait()
117−
118− // Remove failed providers
119− for providerID, passed := range testResults.Seq2() {
120− if !passed {
121− c.Providers.Del(providerID)
122− }
123− }
124−}
125−
126func (c *Config) configureProviders(env env.Env, resolver VariableResolver, knownProviders []catwalk.Provider) error {
92func (c *Config) configureProviders(env env.Env, resolver VariableResolver, knownProviders []catwalk.Provider) error {
127 knownProviderNames := make(map[string]bool)
93 knownProviderNames := make(map[string]bool)
128 for _, p := range knownProviders {
94 for _, p := range knownProviders {