fix(model-resolver): prefer provider's recommended variant over saved base model (#1131)

This commit is contained in:
Tom Boucher 2026-03-18 10:23:56 -04:00 committed by GitHub
parent 03caf9c958
commit fa39a87465

View file

@ -504,6 +504,20 @@ export async function findInitialModel(options: {
if (defaultProvider && defaultModelId) {
const found = modelRegistry.find(defaultProvider, defaultModelId);
if (found) {
// Check if the provider's recommended default is a higher-capability variant
// of the saved model (e.g. saved "claude-opus-4-6" vs recommended "claude-opus-4-6[1m]").
// If so, prefer the recommended variant to avoid using a smaller context window (#1125).
const recommendedId = defaultModelPerProvider[defaultProvider as KnownProvider];
if (recommendedId && recommendedId !== defaultModelId && recommendedId.startsWith(defaultModelId)) {
const recommended = modelRegistry.find(defaultProvider, recommendedId);
if (recommended) {
model = recommended;
if (defaultThinkingLevel) {
thinkingLevel = defaultThinkingLevel;
}
return { model, thinkingLevel, fallbackMessage: undefined };
}
}
model = found;
if (defaultThinkingLevel) {
thinkingLevel = defaultThinkingLevel;