[eric] models: shipped defaults are Sonnet 5 (Anthropic) and GPT-5.6 Terra (OpenAI); explicit user picks untouched

This commit is contained in:
ciregenz
2026-08-18 20:57:32 -07:00
parent 3acbc2b882
commit 9327475c3a
5 changed files with 8 additions and 8 deletions
+1 -1
View File
@@ -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):
+1 -1
View File
@@ -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
+2 -2
View File
@@ -322,8 +322,8 @@ const DEFAULT_MODEL_PRIORITY: string[] = [
];
const DEFAULT_MODEL_PICKS: Record<string, string[]> = {
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'],
@@ -87,14 +87,14 @@ const DashboardToolbar = React.forwardRef<HTMLDivElement, Props>(
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<HTMLDivElement, Props>(
useEffect(() => {
if (settingsLoaded && inputOpen && !prevInputOpen.current) {
setMode(defaultMode || 'agent');
setModel(defaultModel || 'opus-5');
setModel(defaultModel || 'sonnet-5');
setThinkingLevel(defaultThinkingLevel || 'auto');
}
prevInputOpen.current = inputOpen;
+1 -1
View File
@@ -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',