From 9327475c3a2793c8edefb2b49717a00b0f32df45 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Tue, 18 Aug 2026 20:57:32 -0700 Subject: [PATCH] [eric] models: shipped defaults are Sonnet 5 (Anthropic) and GPT-5.6 Terra (OpenAI); explicit user picks untouched --- backend/apps/settings/models.py | 2 +- backend/tests/test_settings_migration.py | 2 +- frontend/src/app/Main.tsx | 4 ++-- frontend/src/app/pages/Dashboard/DashboardToolbar.tsx | 6 +++--- frontend/src/shared/state/settingsSlice.ts | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/apps/settings/models.py b/backend/apps/settings/models.py index ddf00328..83eb3485 100644 --- a/backend/apps/settings/models.py +++ b/backend/apps/settings/models.py @@ -70,7 +70,7 @@ DEFAULT_SYSTEM_PROMPT = ( # Fresh-install / unset-fallback model. "opus-5" is the plain row: cc/ sub lane for subscription users, API key otherwise. -DEFAULT_MODEL = "opus-5" +DEFAULT_MODEL = "sonnet-5" class AppSettings(BaseModel): diff --git a/backend/tests/test_settings_migration.py b/backend/tests/test_settings_migration.py index b16dce49..f64c5f71 100644 --- a/backend/tests/test_settings_migration.py +++ b/backend/tests/test_settings_migration.py @@ -63,7 +63,7 @@ def test_minimal_old_file_fills_missing_with_defaults(settings_file): p_write(settings_file, {"theme": "light"}) s = store.load_settings() assert s.theme == "light" - assert s.default_model == "opus-5" # filled from default + assert s.default_model == "sonnet-5" # filled from default assert s.auto_reveal_sub_agents is True diff --git a/frontend/src/app/Main.tsx b/frontend/src/app/Main.tsx index ef3dd910..218e12d9 100644 --- a/frontend/src/app/Main.tsx +++ b/frontend/src/app/Main.tsx @@ -322,8 +322,8 @@ const DEFAULT_MODEL_PRIORITY: string[] = [ ]; const DEFAULT_MODEL_PICKS: Record = { - Anthropic: ['opus-5-cc', 'opus-5', 'opus-5-api', 'sonnet-5-cc', 'sonnet-5'], - OpenAI: ['gpt-5.6', 'gpt-5.6-api', 'gpt-5.5', 'gpt-5.5-api'], + Anthropic: ['sonnet-5-cc', 'sonnet-5', 'sonnet-5-api', 'opus-5-cc', 'opus-5'], + OpenAI: ['gpt-5.6-terra', 'gpt-5.6', 'gpt-5.6-api', 'gpt-5.5', 'gpt-5.5-api'], Google: ['gemini-3.6-flash-api', 'gemini-3.5-flash-api', 'gemini-3.1-flash-lite'], 'OpenSwarm Pro': ['sonnet', 'opus'], OpenSwarm: ['gpt-5-mini', 'claude-haiku-4.5', 'gpt-4.1'], diff --git a/frontend/src/app/pages/Dashboard/DashboardToolbar.tsx b/frontend/src/app/pages/Dashboard/DashboardToolbar.tsx index 24a3757b..2598a3a3 100644 --- a/frontend/src/app/pages/Dashboard/DashboardToolbar.tsx +++ b/frontend/src/app/pages/Dashboard/DashboardToolbar.tsx @@ -87,14 +87,14 @@ const DashboardToolbar = React.forwardRef( const defaultThinkingLevel = useAppSelector((s) => s.settings.data.default_thinking_level); const settingsLoaded = useAppSelector((s) => s.settings.loaded); const [mode, setMode] = useState(defaultMode || 'agent'); - const [model, setModel] = useState(defaultModel || 'opus-5'); + const [model, setModel] = useState(defaultModel || 'sonnet-5'); const [thinkingLevel, setThinkingLevel] = useState<'off' | 'low' | 'medium' | 'high' | 'auto'>(defaultThinkingLevel || 'auto'); // Snap to the persisted Settings defaults as soon as they arrive from the backend. Without the settingsLoaded guard, the effect fires against the Redux initialState ('sonnet') before the real default has loaded, and the settingsApplied flag then locks out the real default for the rest of the session, so new chats spawn under the stale value. const settingsApplied = useRef(false); useEffect(() => { if (settingsLoaded && !settingsApplied.current) { setMode(defaultMode || 'agent'); - setModel(defaultModel || 'opus-5'); + setModel(defaultModel || 'sonnet-5'); setThinkingLevel(defaultThinkingLevel || 'auto'); settingsApplied.current = true; } @@ -129,7 +129,7 @@ const DashboardToolbar = React.forwardRef( useEffect(() => { if (settingsLoaded && inputOpen && !prevInputOpen.current) { setMode(defaultMode || 'agent'); - setModel(defaultModel || 'opus-5'); + setModel(defaultModel || 'sonnet-5'); setThinkingLevel(defaultThinkingLevel || 'auto'); } prevInputOpen.current = inputOpen; diff --git a/frontend/src/shared/state/settingsSlice.ts b/frontend/src/shared/state/settingsSlice.ts index bf2ca6fb..e6a61e55 100644 --- a/frontend/src/shared/state/settingsSlice.ts +++ b/frontend/src/shared/state/settingsSlice.ts @@ -163,7 +163,7 @@ interface SettingsState { export const DEFAULT_SETTINGS: AppSettings = { default_system_prompt: null, default_folder: null, - default_model: 'opus-5', + default_model: 'sonnet-5', default_mode: 'agent', default_max_turns: null, default_thinking_level: 'auto',