feat(code): add Claude Sonnet 5 to model picker (#4386)

dcode model picker now recommends Claude Sonnet 5 instead of Sonnet 4.6.

Made by [Open
SWE](https://openswe.vercel.app/agents/019f19b9-e9c3-70f3-988e-2cf21f8568c0)

Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
Co-authored-by: Mason Daugherty <mason@langchain.dev>
This commit is contained in:
Johannes du Plessis
2026-06-30 11:35:45 -07:00
committed by GitHub
parent e7eda47d69
commit 64758dddf8
2 changed files with 26 additions and 3 deletions
@@ -68,7 +68,7 @@ _RECOMMENDED_MODELS: frozenset[str] = frozenset(
"anthropic:claude-opus-4-6",
"anthropic:claude-opus-4-7",
"anthropic:claude-opus-4-8",
"anthropic:claude-sonnet-4-6",
"anthropic:claude-sonnet-5",
"baseten:deepseek-ai/DeepSeek-V4-Pro",
"baseten:moonshotai/Kimi-K2.7-Code",
"baseten:nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B",
@@ -103,7 +103,7 @@ _RECOMMENDED_MODELS: frozenset[str] = frozenset(
"openrouter:anthropic/claude-opus-4.7",
"openrouter:anthropic/claude-opus-4.7-fast",
"openrouter:anthropic/claude-opus-4.8",
"openrouter:anthropic/claude-sonnet-4.6",
"openrouter:anthropic/claude-sonnet-5",
"openrouter:deepseek/deepseek-v4-flash",
"openrouter:deepseek/deepseek-v4-flash:free",
"openrouter:deepseek/deepseek-v4-pro",
@@ -381,7 +381,7 @@ class TestRecommendedToggle:
screen = ModelSelectorScreen()
screen._recent_specs = ["openai_codex:gpt-5.5"]
all_models = [
("anthropic:claude-sonnet-4-6", "anthropic"),
("anthropic:claude-sonnet-5", "anthropic"),
("openai:gpt-5.5", "openai"),
("openai_codex:gpt-5.5", "openai_codex"),
("openrouter:openai/gpt-5.5", "openrouter"),
@@ -1375,6 +1375,29 @@ class TestFilteredModelsWidgetSync:
class TestCuratedModelSelection:
"""Tests for onboarding curated model selection."""
def test_sonnet_5_is_recommended(self) -> None:
"""Sonnet 5 should be part of the frontier picker subset."""
from deepagents_code.widgets import model_selector
all_models = [
("anthropic:claude-sonnet-5", "anthropic"),
("openrouter:anthropic/claude-sonnet-5", "openrouter"),
("openai:gpt-4o", "openai"),
]
curated = ModelSelectorScreen._curate_models(all_models)
assert "anthropic:claude-sonnet-5" in model_selector._RECOMMENDED_MODELS
assert (
"openrouter:anthropic/claude-sonnet-5" in model_selector._RECOMMENDED_MODELS
)
assert "anthropic:claude-sonnet-4-6" not in model_selector._RECOMMENDED_MODELS
assert (
"openrouter:anthropic/claude-sonnet-4.6"
not in model_selector._RECOMMENDED_MODELS
)
assert curated == all_models[:2]
def test_curated_models_filter_frontier_in_default_order(self) -> None:
"""Onboarding curation should preserve the model switcher's order."""
all_models = [