fix(config): use large model for small if not configured (#2873)

Kieran Klukas created

Change summary

internal/config/load.go | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)

Detailed changes

internal/config/load.go 🔗

@@ -697,6 +697,25 @@ func configureSelectedModels(store *ConfigStore, knownProviders []catwalk.Provid
 			small.Think = smallModelSelected.Think
 		}
 	}
+
+	// When small isn't explicitly configured and the provider isn't a
+	// known built-in, use the large model as the small model. This
+	// prevents two different models from being requested concurrently
+	// for local/openai-compat providers.
+	if !smallModelConfigured {
+		isKnownProvider := false
+		for _, kp := range knownProviders {
+			if string(kp.ID) == small.Provider {
+				isKnownProvider = true
+				break
+			}
+		}
+		if !isKnownProvider {
+			slog.Warn("Using large model as small model for unknown provider", "provider", large.Provider, "model", large.Model)
+			small = large
+		}
+	}
+
 	c.Models[SelectedModelTypeLarge] = large
 	c.Models[SelectedModelTypeSmall] = small
 	return nil