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.
This commit is contained in:
Shirone
2026-01-03 02:28:41 +01:00
parent 9071f89ec8
commit abed3b3d75

View File

@@ -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;