feat(models): OpenRouter, Nous Portal, and Alibaba Token Plan pickers carry Qwen3.8-Max-0902

Alibaba shipped qwen3.8-max-0902 (alias qwen3.8-max-2026-09-02), the upgraded
snapshot of Qwen3.8-Max: 1M context / 131K output, $2 in / $6 out. Both
aggregators now serve it and dropped the bare slug from their catalogs
(verified 2026-09-02: OpenRouter /v1/models + a 200 completion echoing the
slug; Nous Portal /v1/models).

- OPENROUTER_MODELS (feeds the nous list too): qwen/qwen3.8-max -> qwen/qwen3.8-max-0902
- _ALIBABA_TOKEN_PLAN_MODELS: qwen3.8-max-preview -> qwen3.8-max-0902
- test_empty_model_fallback fixture follows the nous catalog slug
- model-catalog.json regenerated

No new metadata: DEFAULT_CONTEXT_LENGTHS substring-matches qwen3.8-max (1M),
reasoning floor prefix fires (180s), both aggregator routes bill via
official_models_api. alibaba/alibaba-cn/opencode-go/setup.py left unchanged
(out of scope).
This commit is contained in:
Teknium
2026-09-04 23:42:46 -07:00
parent f58fcc8118
commit d20a8e4475
3 changed files with 9 additions and 9 deletions

View File

@@ -36,7 +36,7 @@ OPENROUTER_MODELS: list[tuple[str, str]] = [
"openai/gpt-5.5", "openai/gpt-5.5-pro", "openai/gpt-5.4-mini", "google/gemini-3.1-pro-preview",
"google/gemini-3.8-flash", "google/gemini-3.7-flash", "x-ai/grok-4.6", "deepseek/deepseek-v4-pro",
"deepseek/deepseek-v4-pro-0813", "deepseek/deepseek-v4-flash", "deepseek/deepseek-v4-flash-0731",
"qwen/qwen3.8-max", "qwen/qwen3.8-flash", "moonshotai/kimi-k3", "minimax/minimax-m3", "z-ai/glm-5.3",
"qwen/qwen3.8-max-0902", "qwen/qwen3.8-flash", "moonshotai/kimi-k3", "minimax/minimax-m3", "z-ai/glm-5.3",
"z-ai/glm-5.3-flash", "z-ai/glm-5.2", "xiaomi/mimo-v2.5-pro", "tencent/hy4-preview", "tencent/hy3",
"stepfun/step-3.7-flash", "nvidia/nemotron-3-super-120b-a12b", "meta/muse-spark-1.2",
"meta/muse-spark-1.2-contributor", "meta/muse-spark-1.3", "meta/muse-spark-1.3-contributor", "sakana/fugu-ultra",
@@ -146,7 +146,7 @@ _ALIBABA_CODING_PLAN_MODELS = [
]
# Verified against a live Token Plan subscription (key tier ``sk-sp-...``).
_ALIBABA_TOKEN_PLAN_MODELS = [
"qwen3.8-max-preview", "qwen3.7-max", "qwen3.7-plus", "qwen3.6-plus", "qwen3.6-flash", "deepseek-v4-pro",
"qwen3.8-max-0902", "qwen3.7-max", "qwen3.7-plus", "qwen3.6-plus", "qwen3.6-flash", "deepseek-v4-pro",
"deepseek-v4-flash", "deepseek-v3.2", "kimi-k2.7-code", "kimi-k2.6", "kimi-k2.5", "glm-5.2", "glm-5.1", "glm-5",
]
_XAI_MODELS = _xai_curated_models()

View File

@@ -27,16 +27,16 @@ class TestGetDefaultModelForProvider:
with patch(
"hermes_cli.model_catalog.get_default_model_from_cache",
return_value="qwen/qwen3.8-max",
return_value="qwen/qwen3.8-max-0902",
):
assert (
models_mod.get_preferred_silent_default_model("nous")
== "qwen/qwen3.8-max"
== "qwen/qwen3.8-max-0902"
)
# nous catalog carries qwen3.8-max, so the full resolver follows.
# nous catalog carries qwen3.8-max-0902, so the full resolver follows.
assert (
models_mod.get_default_model_for_provider("nous")
== "qwen/qwen3.8-max"
== "qwen/qwen3.8-max-0902"
)

View File

@@ -1,6 +1,6 @@
{
"version": 1,
"updated_at": "2026-09-04T22:47:22Z",
"updated_at": "2026-09-05T06:42:02Z",
"metadata": {
"source": "hermes-agent repo",
"docs": "https://hermes-agent.nousresearch.com/docs/reference/model-catalog"
@@ -137,7 +137,7 @@
"description": "dated snapshot of v4-flash"
},
{
"id": "qwen/qwen3.8-max",
"id": "qwen/qwen3.8-max-0902",
"description": ""
},
{
@@ -341,7 +341,7 @@
"id": "deepseek/deepseek-v4-flash-0731"
},
{
"id": "qwen/qwen3.8-max"
"id": "qwen/qwen3.8-max-0902"
},
{
"id": "qwen/qwen3.8-flash"