diff --git a/internal/config/load.go b/internal/config/load.go index b705c0f4060ca0b17975949ecd3a8709bc0d9cc0..9aefbb26607482ed195e6beb05214e63ba4187a0 100644 --- a/internal/config/load.go +++ b/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