From 79bfddd37c1aba449d8e77ba56e3987a9448f1c7 Mon Sep 17 00:00:00 2001 From: Teknium <127238744+teknium1@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:49:19 -0700 Subject: [PATCH] fix(models): restore gemini-3-flash-preview to Gemini OAuth picker (#37606) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #37046 swapped gemini-3-flash-preview -> gemini-3.5-flash in the google-gemini-cli (OAuth/Code Assist) picker on the premise that the preview slug was renamed. It wasn't. Per gemini-cli's models.ts, Code Assist serves two distinct flash slugs with different access gates: gemini-3-flash-preview (PREVIEW_GEMINI_FLASH_MODEL — what subscription/ free-tier OAuth users reach) and gemini-3.5-flash (DEFAULT_GEMINI_3_5_FLASH_MODEL — GA-channel-gated). The model string is passed verbatim into the {project, model, ...} envelope sent to cloudcode-pa.googleapis.com, so non-GA users got a hard error on every prompt because gemini-3.5-flash 404s for them. Offer both slugs in the OAuth picker (matching gemini-cli's own /model list) so non-GA users can select the preview flash that works. The gemini (API-key), OpenRouter, and Nous lists are untouched — google/gemini-3.5-flash is a real live model on those surfaces. --- hermes_cli/models.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hermes_cli/models.py b/hermes_cli/models.py index 99f9d462c..f8f541c89 100644 --- a/hermes_cli/models.py +++ b/hermes_cli/models.py @@ -241,6 +241,12 @@ _PROVIDER_MODELS: dict[str, list[str]] = { "google-gemini-cli": [ "gemini-3.1-pro-preview", "gemini-3-pro-preview", + # Code Assist serves two flash slugs with different access gates + # (gemini-cli models.ts): gemini-3-flash-preview is the preview flash + # that subscription/free-tier OAuth users actually reach, while + # gemini-3.5-flash is GA-channel-gated. Offer both so non-GA users + # aren't stuck with a slug cloudcode-pa 404s for them. + "gemini-3-flash-preview", "gemini-3.5-flash", ], "zai": [