From 0155da0be5d51fea959ec1a0d6026b26e6c2b82e Mon Sep 17 00:00:00 2001 From: Stefan de Vogelaere Date: Thu, 22 Jan 2026 12:58:55 +0100 Subject: [PATCH] fix: resolve model aliases in backlog plan explicit override (#654) When a user explicitly passes a model override (e.g., model: "sonnet"), the code was only fetching credentials without resolving the model alias. This caused API calls to fail because the Claude API expects full model strings like "claude-sonnet-4-20250514", not aliases like "sonnet". The other code branches (settings-based and fallback) correctly called resolvePhaseModel(), but the explicit override branch was missing this. This fix adds the resolvePhaseModel() call to ensure model aliases are properly resolved before being sent to the API. --- apps/server/src/routes/backlog-plan/generate-plan.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/server/src/routes/backlog-plan/generate-plan.ts b/apps/server/src/routes/backlog-plan/generate-plan.ts index 0eac4b4c..2bd3a6a7 100644 --- a/apps/server/src/routes/backlog-plan/generate-plan.ts +++ b/apps/server/src/routes/backlog-plan/generate-plan.ts @@ -128,7 +128,10 @@ export async function generateBacklogPlan( let credentials: import('@automaker/types').Credentials | undefined; if (effectiveModel) { - // Use explicit override - just get credentials + // Use explicit override - resolve model alias and get credentials + const resolved = resolvePhaseModel({ model: effectiveModel }); + effectiveModel = resolved.model; + thinkingLevel = resolved.thinkingLevel; credentials = await settingsService?.getCredentials(); } else if (settingsService) { // Use settings-based model with provider info