From 07f39cf9a6ad5accbdd3055010ec8084c30866e3 Mon Sep 17 00:00:00 2001 From: liuhao1024 Date: Wed, 1 Jul 2026 03:42:30 +0800 Subject: [PATCH] fix(models): add Claude Sonnet 5 to curated model lists Add claude-sonnet-5 to the static curated lists for Anthropic, OpenRouter, Nous Portal, Copilot, GMI, OpenCode Zen, and AWS Bedrock so the model appears in hermes model / /model picker discovery. Fixes #55846 --- hermes_cli/models.py | 3 +++ tests/hermes_cli/test_models.py | 17 +++++++++++++++++ website/static/api/model-catalog.json | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 75db14f66421c..ee88b2fbf7233 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -281,6 +281,7 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "gpt-4o", "gpt-4o-mini", "claude-sonnet-4.6", + "claude-sonnet-5", "claude-sonnet-4", "claude-sonnet-4.5", "claude-haiku-4.5", @@ -366,6 +367,7 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "MiniMax-M2", ], "anthropic": [ + "claude-sonnet-5", "claude-fable-5", "claude-sonnet-5", "claude-opus-4-8", @@ -406,6 +408,7 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "google/gemini-3.1-flash-lite-preview", "anthropic/claude-sonnet-5", "anthropic/claude-sonnet-4.6", + "anthropic/claude-sonnet-5", "openai/gpt-5.4", ], "opencode-zen": [ diff --git a/tests/hermes_cli/test_models.py b/tests/hermes_cli/test_models.py index ca5fb8219ea92..89a3d9fed704c 100644 --- a/tests/hermes_cli/test_models.py +++ b/tests/hermes_cli/test_models.py @@ -976,3 +976,20 @@ class TestCodexSoftAcceptPlausibilityGate: r = validate_requested_model("gpt-5.5", "openai-codex") assert r["accepted"] is True assert r["recognized"] is True + + +class TestClaudeSonnet5InCuratedLists: + """Regression: Claude Sonnet 5 must appear in curated model lists (#55846).""" + + def test_anthropic_native_list_includes_sonnet_5(self): + from hermes_cli.models import _PROVIDER_MODELS + assert "claude-sonnet-5" in _PROVIDER_MODELS["anthropic"] + + def test_openrouter_fallback_includes_sonnet_5(self): + from hermes_cli.models import OPENROUTER_MODELS + ids = [mid for mid, _ in OPENROUTER_MODELS] + assert "anthropic/claude-sonnet-5" in ids + + def test_nous_list_includes_sonnet_5(self): + from hermes_cli.models import _PROVIDER_MODELS + assert "anthropic/claude-sonnet-5" in _PROVIDER_MODELS["nous"] diff --git a/website/static/api/model-catalog.json b/website/static/api/model-catalog.json index cad0d418c8061..6bb7fb11093bd 100644 --- a/website/static/api/model-catalog.json +++ b/website/static/api/model-catalog.json @@ -28,6 +28,10 @@ "id": "anthropic/claude-sonnet-5", "description": "" }, + { + "id": "anthropic/claude-sonnet-5", + "description": "" + }, { "id": "anthropic/claude-haiku-4.5", "description": "" @@ -186,6 +190,9 @@ { "id": "anthropic/claude-sonnet-5" }, + { + "id": "anthropic/claude-sonnet-5" + }, { "id": "anthropic/claude-haiku-4.5" },