From 594209389d9bd4ca2ec1acf61c4b239facf330e2 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Sun, 10 May 2026 12:12:55 -0700 Subject: [PATCH] fix(xai): drop models being retired May 15, 2026 from pickers (#23291) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit xAI is retiring grok-4, grok-4-0709, grok-4-fast{,-reasoning,-non-reasoning}, grok-4-1-fast{,-reasoning,-non-reasoning}, and grok-code-fast-1 on May 15, 2026 at 12:00 PT. Remove them from the static fallbacks so the `hermes model` picker, gateway /model picker, and setup wizard stop auto-suggesting models that will be dead in days. - _XAI_STATIC_FALLBACK in hermes_cli/models.py now lists only grok-4.20-* and grok-4.3 (the live replacements). - copilot lists in hermes_cli/models.py and hermes_cli/setup.py drop grok-code-fast-1 (Copilot proxies it through xAI, so the upstream retirement breaks it there too). Old configs that already reference retired IDs keep working until xAI flips the switch — context-length lookups in agent/model_metadata.py and the cache-affinity-header logic in provider_profiles still recognise the old names. The cleanup here is purely about not advertising them to new users. Closes #23278. Source: https://docs.x.ai/developers/migration/may-15-retirement --- hermes_cli/models.py | 13 ++++++------- hermes_cli/setup.py | 1 - 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 1dc8a7aca66..cf693ae28b4 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -110,16 +110,16 @@ def _codex_curated_models() -> list[str]: # $HERMES_HOME/models_dev_cache.json as of 2026-04-28. Whenever xAI renames # or retires a model, the disk cache picks it up on the next refresh and the # fallback here only matters until that refresh lands. +# +# Models retired by xAI on May 15, 2026 are excluded — see +# https://docs.x.ai/developers/migration/may-15-retirement +# (grok-4, grok-4-0709, grok-4-fast{,-reasoning,-non-reasoning}, +# grok-4-1-fast{,-reasoning,-non-reasoning}, grok-code-fast-1 → grok-4.3). _XAI_STATIC_FALLBACK: list[str] = [ "grok-4.20-0309-reasoning", "grok-4.20-0309-non-reasoning", "grok-4.20-multi-agent-0309", - "grok-4-1-fast", - "grok-4-1-fast-non-reasoning", - "grok-4-fast", - "grok-4-fast-non-reasoning", - "grok-4", - "grok-code-fast-1", + "grok-4.3", ] @@ -210,7 +210,6 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "gemini-3-pro-preview", "gemini-3-flash-preview", "gemini-2.5-pro", - "grok-code-fast-1", ], "gemini": [ "gemini-3.1-pro-preview", diff --git a/hermes_cli/setup.py b/hermes_cli/setup.py index ad5d80b921f..534d23546e9 100644 --- a/hermes_cli/setup.py +++ b/hermes_cli/setup.py @@ -89,7 +89,6 @@ _DEFAULT_PROVIDER_MODELS = { "claude-sonnet-4.5", "claude-haiku-4.5", "gemini-2.5-pro", - "grok-code-fast-1", ], "gemini": [ "gemini-3.1-pro-preview", "gemini-3-pro-preview",