Config fix correcting loose viper string check, default model now set correctly (#147)

Joshua LaMorey-Salzmann created

Change summary

internal/config/config.go | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

Detailed changes

internal/config/config.go 🔗

@@ -260,7 +260,7 @@ func setProviderDefaults() {
 	// 7. Azure
 
 	// Anthropic configuration
-	if viper.Get("providers.anthropic.apiKey") != "" {
+	if key := viper.GetString("providers.anthropic.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.Claude37Sonnet)
 		viper.SetDefault("agents.task.model", models.Claude37Sonnet)
 		viper.SetDefault("agents.title.model", models.Claude37Sonnet)
@@ -268,7 +268,7 @@ func setProviderDefaults() {
 	}
 
 	// OpenAI configuration
-	if viper.Get("providers.openai.apiKey") != "" {
+	if key := viper.GetString("providers.openai.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.GPT41)
 		viper.SetDefault("agents.task.model", models.GPT41Mini)
 		viper.SetDefault("agents.title.model", models.GPT41Mini)
@@ -276,7 +276,7 @@ func setProviderDefaults() {
 	}
 
 	// Google Gemini configuration
-	if viper.Get("providers.google.gemini.apiKey") != "" {
+	if key := viper.GetString("providers.gemini.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.Gemini25)
 		viper.SetDefault("agents.task.model", models.Gemini25Flash)
 		viper.SetDefault("agents.title.model", models.Gemini25Flash)
@@ -284,7 +284,7 @@ func setProviderDefaults() {
 	}
 
 	// Groq configuration
-	if viper.Get("providers.groq.apiKey") != "" {
+	if key := viper.GetString("providers.groq.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.QWENQwq)
 		viper.SetDefault("agents.task.model", models.QWENQwq)
 		viper.SetDefault("agents.title.model", models.QWENQwq)
@@ -292,14 +292,15 @@ func setProviderDefaults() {
 	}
 
 	// OpenRouter configuration
-	if viper.Get("providers.openrouter.apiKey") != "" {
+	if key := viper.GetString("providers.openrouter.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.OpenRouterClaude37Sonnet)
 		viper.SetDefault("agents.task.model", models.OpenRouterClaude37Sonnet)
 		viper.SetDefault("agents.title.model", models.OpenRouterClaude35Haiku)
 		return
 	}
 
-	if viper.Get("providers.xai.apiKey") != "" {
+	// XAI configuration
+	if key := viper.GetString("providers.xai.apiKey"); strings.TrimSpace(key) != "" {
 		viper.SetDefault("agents.coder.model", models.XAIGrok3Beta)
 		viper.SetDefault("agents.task.model", models.XAIGrok3Beta)
 		viper.SetDefault("agents.title.model", models.XAiGrok3MiniFastBeta)
@@ -314,6 +315,7 @@ func setProviderDefaults() {
 		return
 	}
 
+	// Azure OpenAI configuration
 	if os.Getenv("AZURE_OPENAI_ENDPOINT") != "" {
 		viper.SetDefault("agents.coder.model", models.AzureGPT41)
 		viper.SetDefault("agents.task.model", models.AzureGPT41Mini)