mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-12 04:37:44 +02:00
[eric] models: shipped defaults are Sonnet 5 (Anthropic) and GPT-5.6 Terra (OpenAI); explicit user picks untouched
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user