🤖 feat: make Gemini 3.8 Flash the default Gemini Flash model - #4060
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
@codex review |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8392202fae
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
This comment has been minimized.
This comment has been minimized.
|
@codex review Please take another look. The single P1 (alias repoint ahead of release) is by design and covered by the explicit merge gate in the PR description — see the thread reply for the rationale; no code changed. |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This comment has been minimized.
This comment has been minimized.
Repoints the gemini-flash alias to gemini-3.8-flash ahead of Google's release, following the 3.7 Flash upgrade (#3845): known-model registry, thinking-level policy, sampling-parameter rejection, models-extra stats (1M ctx / 65K out, $1.50/$7.50/$0.15 standard list rates), docs table, nightly bench matrix, and regenerated built-in skill content. Older Flash tiers stay usable as custom model strings. --- _Generated with `xum` • Model: `anthropic:claude-fable-5-1` • Thinking: `xhigh`_ <!-- mux-attribution: model=anthropic:claude-fable-5-1 thinking=xhigh -->
Google released gemini-3.8-flash on 2026-09-02. Live-probing the API shows
thinkingLevel MINIMAL is rejected with a 400 ("Thinking level MINIMAL is not
supported for this model"), so the thinking policy drops "off" (clamps to
"low") and buildProviderOptions defensively sends low instead of minimal.
Pricing follows the 3.7 Flash precedent: encode the billed introductory rate
($0.75/$3.75/$0.075 per M) with a TODO to restore list rates on 2027-01-01.
8392202 to
ef17e10
Compare
Dogfood evidence (head
|
|
@codex review Rebased onto main and added a launch-day follow-up commit: Gemini 3.8 Flash shipped today and the live API rejects |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ef17e107e8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…fectiveThinkingLevel Codex P2: TurnRequestBuilder seeds initial requests with enforceMinimum:false, so an unset level stayed "off" in the request envelope/debug snapshot while the Google adapter sent "low". Treat 3.8 Flash like Mythos/GLM in the forced-thinking path so the tracked level is "low" before those artifacts exist.
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This comment has been minimized.
This comment has been minimized.
## Summary Version bump for the v0.28.4 patch release. The headline change since v0.28.3 is Gemini 3.8 Flash becoming the default Gemini Flash model (coder#4060). The release also carries browser Login with Coder on remote Xum servers (coder#4047), the opt-in project bundle for settings backup (coder#4043), the connection-indicator slow-response surfacing (coder#4059), send-queue and terminal-wake fixes (coder#4053, coder#4052), and the Effect Phase 11 runtime refactors. ## Implementation Bumped with `node ./scripts/set-package-version.js 0.28.4` so the root `package.json` and the legacy `packages/mux-compat` forwarding package stay version-locked (the v0.28.3 bump missed the compat package and broke `Test / Unit` on main, fixed in coder#4048). `src/common/compat/productIdentity.test.ts` passes locally. After this PR merges, the `v0.28.4` tag will be applied to the squash commit and the GitHub Release published to trigger the desktop/npm/docker pipelines. --- _Generated with `xum` • Model: `anthropic:claude-fable-5-1` • Thinking: `medium` • Cost: `$0.00`_ <!-- mux-attribution: model=anthropic:claude-fable-5-1 thinking=medium costs=0.00 -->



Summary
Repoints the
gemini-flashalias to Gemini 3.8 Flash (gemini-3.8-flash, GA September 2, 2026), following the same blueprint as the Gemini 3.7 Flash upgrade (#3845). Older Flash tiers remain usable as custom model strings (e.g.google:gemini-3.7-flash,google:gemini-3.6-flash).Note
This PR was prepared ahead of the release behind a merge gate. Google released Gemini 3.8 Flash on 2026-09-02; the assumptions were then verified against the live API and Google's docs, and two of them turned out to be wrong and were corrected (see Launch-day corrections). The gate is lifted.
Implementation
knownModels.ts—GEMINI_FLASH.providerModelId→gemini-3.8-flash(aliasgemini-flash, tokenizer overridegoogle/gemini-2.5-prounchanged)thinking/policy.ts—isGeminiFlashThinkingLevelModelNamerecognizesgemini-3.8-flash(excluding a future-lite); newisGeminiFlashMinimalRejectingModelNamegives 3.8 Flash alow/medium/highpolicy (nooff, see below)providerOptions.ts— Google adapter clamps a bypassedofftothinkingLevel: "low"for 3.8 Flash instead of"minimal"modelParameterOverrides.ts—modelRejectsSamplingParametersstrips deprecatedtemperature/topP/topKforgemini-3.8-flashmodels-extra.ts— new stats entry: 1M context, 65K max output, intro pricing $0.75/M input, $3.75/M output (incl. thinking), $0.075/M cached input; thegemini-3.7-flashandgemini-3.6-flashentries are retaineddocs/config/models.mdxmodel table andnightly-terminal-bench.ymldefault matrix updated togoogle/gemini-3.8-flashbuiltInSkillContent.generated.tsregenerated from the docsGateway stream normalization, the provider model factory,
DEFAULT_MODEL_FALLBACKS, andLEGACY_TOKENIZER_MODEL_OVERRIDESneed no changes (generic over thegoogle/prefix; Gemini Flash participates in neither fallback chains nor legacy tokenizer overrides).Launch-day corrections
off→ GooglethinkingLevel: "minimal"like 3–3.7 Flash400 INVALID_ARGUMENT "Thinking level MINIMAL is not supported for this model"; Google Cloud docs list only LOW/MEDIUM/HIGH["low","medium","high"]sooffclamps tolow(same pattern as Grok 4.6 / Mythos, whose reasoning cannot be disabled); provider adapter also clamps defensivelyTODO(2027-01-01)to restore list ratesgemini-3.8-flash, 1M context, 65K output, sampling params rejected, full multimodal + reasoningmodelVersion: "gemini-3.8-flash"in API responses; model card lists 1M/64K)Validation
google:gemini-3.7-flashstill resolvable as a custom model string), thinking policy (gateway/OpenRouter/versioned/-litevariants;off→lowandxhigh→highclamps; medium default floor; new predicate), sampling rejection incl. gateway-routed andmappedToModelentries, provider options (offclamp vs 3.7'sminimal, low/medium/high, gateway routing), model filterstreamManager.test.tsmulti-hop fallback tests (referenceKNOWN_MODELS.GEMINI_FLASH.idsymbolically) still pass;make static-checkgreengenerateContentongemini-3.8-flash):thinkingLevel=MINIMAL→ 400 as above;thinkingLevel=LOW→ 200,modelVersion: "gemini-3.8-flash", 77 thought tokensmake dev-server-sandboxinstance driven with agent-browser (screenshots + recording in the PR comment below):gemini-flashsearch resolves to "Gemini 3.8 Flash"; the reasoning-effort menu offers no "Off"; a real message round-trips through the Google API withthinkingConfig: { includeThoughts: true, thinkingLevel: "medium" }(server debug log), the Context panel shows the 1.0M window, and the Cost panel shows $0.03 for 40.2k input tokens (= the $0.75/M intro rate)Risks
Low, additive metadata plus an alias repoint. Prior Flash tiers keep their entries and predicates, so explicit
google:gemini-3.7-flash/google:gemini-3.6-flashmodel strings are unaffected. Behavior change for users on thegemini-flashalias: thinking can no longer be turned fully off (the API does not allow it); a persistedoffpreference clamps tolowviaenforceThinkingPolicyrather than failing the request.Generated with
xum• Model:anthropic:claude-fable-5-1• Thinking:xhigh