From 0798a64cd6b5db10e6a24cec413751003a944478 Mon Sep 17 00:00:00 2001 From: Kacper Date: Tue, 30 Dec 2025 14:23:12 +0100 Subject: [PATCH] feat(server): Wire generate-plan to use phaseModels.backlogPlanningModel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Read model from settings.phaseModels.backlogPlanningModel instead of hardcoded 'sonnet' fallback. Still supports per-call override via model parameter. Falls back to DEFAULT_PHASE_MODELS if settings unavailable. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../src/routes/backlog-plan/generate-plan.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/server/src/routes/backlog-plan/generate-plan.ts b/apps/server/src/routes/backlog-plan/generate-plan.ts index 737f4222..78d6f141 100644 --- a/apps/server/src/routes/backlog-plan/generate-plan.ts +++ b/apps/server/src/routes/backlog-plan/generate-plan.ts @@ -1,9 +1,13 @@ /** * Generate backlog plan using Claude AI + * + * Model is configurable via phaseModels.backlogPlanningModel in settings + * (defaults to Sonnet). Can be overridden per-call via model parameter. */ import type { EventEmitter } from '../../lib/events.js'; import type { Feature, BacklogPlanResult, BacklogChange, DependencyUpdate } from '@automaker/types'; +import { DEFAULT_PHASE_MODELS } from '@automaker/types'; import { FeatureLoader } from '../../services/feature-loader.js'; import { ProviderFactory } from '../../providers/provider-factory.js'; import { logger, setRunningState, getErrorMessage } from './common.js'; @@ -151,8 +155,15 @@ Please analyze the current backlog and the user's request, then provide a JSON p content: 'Generating plan with AI...', }); - // Get the model to use - const effectiveModel = model || 'sonnet'; + // Get the model to use from settings or provided override + let effectiveModel = model; + if (!effectiveModel) { + const settings = await settingsService?.getGlobalSettings(); + effectiveModel = + settings?.phaseModels?.backlogPlanningModel || DEFAULT_PHASE_MODELS.backlogPlanningModel; + } + logger.info('[BacklogPlan] Using model:', effectiveModel); + const provider = ProviderFactory.getProviderForModel(effectiveModel); // Get autoLoadClaudeMd setting