From abed3b3d75aa3f054ca20bd45b71b026ffa65409 Mon Sep 17 00:00:00 2001 From: Shirone Date: Sat, 3 Jan 2026 02:28:41 +0100 Subject: [PATCH] feat: enhance use-model-override to support default phase models - Updated the useModelOverride hook to include a fallback to DEFAULT_PHASE_MODELS when phase models are not available, ensuring smoother handling of model overrides. - This change addresses scenarios where settings may not have been migrated to include new phase models, improving overall robustness and user experience. --- apps/ui/src/components/shared/use-model-override.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/ui/src/components/shared/use-model-override.ts b/apps/ui/src/components/shared/use-model-override.ts index ee108468..82e6685a 100644 --- a/apps/ui/src/components/shared/use-model-override.ts +++ b/apps/ui/src/components/shared/use-model-override.ts @@ -1,6 +1,7 @@ import { useState, useCallback, useMemo } from 'react'; import { useAppStore } from '@/store/app-store'; import type { ModelAlias, CursorModelId, PhaseModelKey, PhaseModelEntry } from '@automaker/types'; +import { DEFAULT_PHASE_MODELS } from '@automaker/types'; export interface UseModelOverrideOptions { /** Which phase this override is for */ @@ -79,8 +80,9 @@ export function useModelOverride({ initialOverride ? normalizeEntry(initialOverride) : null ); - // Normalize global default to PhaseModelEntry - const globalDefault = normalizeEntry(phaseModels[phase]); + // Normalize global default to PhaseModelEntry, with fallback to DEFAULT_PHASE_MODELS + // This handles cases where settings haven't been migrated to include new phase models + const globalDefault = normalizeEntry(phaseModels[phase] ?? DEFAULT_PHASE_MODELS[phase]); const effectiveModelEntry = useMemo(() => { return override ?? globalDefault;