fix(models): land #38947 from @davidemanuelDEV

Co-authored-by: davidemanuelDEV <davidemanuelDEV@users.noreply.github.com>
This commit is contained in:
Peter Steinberger
2026-03-07 18:54:12 +00:00
parent 2f59a3cff3
commit 231c1fa37a
3 changed files with 100 additions and 0 deletions

View File

@@ -317,6 +317,28 @@ export function resolveConfiguredModelRef(params: {
return resolved.ref;
}
}
// Before falling back to the hardcoded default, check if the default provider
// is actually available. If it isn't but other providers are configured, prefer
// the first configured provider's first model to avoid reporting a stale default
// from a removed provider. (See #38880)
const configuredProviders = params.cfg.models?.providers;
if (configuredProviders && typeof configuredProviders === "object") {
const hasDefaultProvider = Boolean(configuredProviders[params.defaultProvider]);
if (!hasDefaultProvider) {
const availableProvider = Object.entries(configuredProviders).find(
([, providerCfg]) =>
providerCfg &&
Array.isArray(providerCfg.models) &&
providerCfg.models.length > 0 &&
providerCfg.models[0]?.id,
);
if (availableProvider) {
const [providerName, providerCfg] = availableProvider;
const firstModel = providerCfg.models[0];
return { provider: providerName, model: firstModel.id };
}
}
}
return { provider: params.defaultProvider, model: params.defaultModel };
}