Skip to content

fix(core): ensure stable fallback for restricted preview models#26999

Merged
galz10 merged 6 commits into
mainfrom
galzahavi/fix/utility-calls
May 13, 2026
Merged

fix(core): ensure stable fallback for restricted preview models#26999
galz10 merged 6 commits into
mainfrom
galzahavi/fix/utility-calls

Conversation

@galz10
Copy link
Copy Markdown
Collaborator

@galz10 galz10 commented May 13, 2026

Summary

This PR fixes the "Preview Release Channel" error that occurred when users (specifically those on GCP/Vertex AI) attempted to use tools or utilities hard-wired to Gemini 3 while having restricted preview access. It ensures that the system correctly identifies restricted access and transparently falls back to the Gemini 2.5 stable chain.

Details

  • Corrected Access Initialization: Modified `packages/core/src/config/config.ts` to stop assuming Gemini 3 access for GCP users. Access is now initialized to `null` and verified via quota checks.
  • Fixed Fallback Memory: Updated `packages/core/src/availability/policyHelpers.ts` to capture the `isOriginallyGemini3` intent. This prevents the system from "forgetting" the model family during a downgrade, allowing it to correctly provide the `[2.5-pro, 2.5-flash]` fallback chain instead of failing.

Related Issues

Related to the issue of tool calls failing for restricted users.

How to Validate

  1. Use a GCP/Vertex AI authenticated environment.
  2. Trigger a tool call hard-wired to Gemini 3 (e.g., "Use GoogleSearch to find the weather in Seattle").
  3. Verify that the CLI transparently uses `gemini-2.5-pro` and completes the request instead of showing an error.
  4. Run the updated unit tests:
    ```bash
    npm test -- packages/core/src/availability/policyHelpers.test.ts
    ```

Pre-Merge Checklist

  • Updated relevant documentation and README (if needed)
  • Added/updated tests (if needed)
  • Noted breaking changes (if any)
  • Validated on required platforms/methods:
    • MacOS
      • npm run

Corrects model selection failures for GCP/Google Auth users by:
1. Verifying preview access via quota instead of assuming true for GCP.
2. Preserving original model intent in policyHelpers to ensure correct
   downgrade to the Gemini 2.5 stable chain.
@galz10 galz10 requested a review from a team as a code owner May 13, 2026 17:28
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This PR addresses issues where users with restricted preview access encountered errors when attempting to use tools requiring Gemini 3. By decoupling preview access from Vertex AI authentication and preserving the original model intent during policy resolution, the system now correctly falls back to the stable Gemini 2.5 chain.

Highlights

  • Access Initialization: Updated configuration to stop automatically granting preview access to Vertex AI users, requiring explicit quota verification instead.
  • Fallback Logic: Introduced 'isOriginallyGemini3' to preserve model intent, ensuring reliable fallback to Gemini 2.5 stable models when preview access is restricted.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label May 13, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the model policy resolution logic in policyHelpers.ts to capture and use the original Gemini 3 model intent before any normalization or downgrades occur. It also updates the configuration logic in config.ts to restrict preview model access specifically to the USE_GEMINI authentication type, removing the previous inclusion of USE_VERTEX_AI. I have no feedback to provide as there were no review comments.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 13, 2026

Size Change: +91 B (0%)

Total Size: 34.1 MB

Filename Size Change
./bundle/chunk-3H3GAJFL.js 0 B -14.8 MB (removed) 🏆
./bundle/chunk-4LJCEHFU.js 0 B -659 kB (removed) 🏆
./bundle/chunk-6ZQBNM6X.js 0 B -19.5 kB (removed) 🏆
./bundle/chunk-B6P5PKUZ.js 0 B -3.43 kB (removed) 🏆
./bundle/chunk-CNUT3JTO.js 0 B -12.5 kB (removed) 🏆
./bundle/chunk-IS7FAI3H.js 0 B -2.79 MB (removed) 🏆
./bundle/chunk-LFDDLCB3.js 0 B -3.8 kB (removed) 🏆
./bundle/chunk-QZFZVGEI.js 0 B -49.2 kB (removed) 🏆
./bundle/core-PY5323O5.js 0 B -49.3 kB (removed) 🏆
./bundle/devtoolsService-A6STPSFC.js 0 B -28 kB (removed) 🏆
./bundle/gemini-6VVGZAAT.js 0 B -587 kB (removed) 🏆
./bundle/interactiveCli-ORUANEVG.js 0 B -1.3 MB (removed) 🏆
./bundle/liteRtServerManager-VYJDVFZK.js 0 B -2.11 kB (removed) 🏆
./bundle/oauth2-provider-2MC2EECA.js 0 B -9.16 kB (removed) 🏆
./bundle/chunk-5HUWKOBP.js 12.5 kB +12.5 kB (new file) 🆕
./bundle/chunk-HWQCZRJF.js 3.43 kB +3.43 kB (new file) 🆕
./bundle/chunk-KAL2IJAE.js 2.79 MB +2.79 MB (new file) 🆕
./bundle/chunk-LNFXZ2X5.js 3.8 kB +3.8 kB (new file) 🆕
./bundle/chunk-SYZHKUS4.js 49.2 kB +49.2 kB (new file) 🆕
./bundle/chunk-UYXFO32R.js 19.5 kB +19.5 kB (new file) 🆕
./bundle/chunk-Y5TAHNRQ.js 14.8 MB +14.8 MB (new file) 🆕
./bundle/chunk-YBT625JE.js 659 kB +659 kB (new file) 🆕
./bundle/core-TH2CKQRK.js 49.3 kB +49.3 kB (new file) 🆕
./bundle/devtoolsService-OYUDCZMB.js 28 kB +28 kB (new file) 🆕
./bundle/gemini-6K4PA6SC.js 587 kB +587 kB (new file) 🆕
./bundle/interactiveCli-3ORFKTI5.js 1.3 MB +1.3 MB (new file) 🆕
./bundle/liteRtServerManager-PP54KQBK.js 2.11 kB +2.11 kB (new file) 🆕
./bundle/oauth2-provider-OQWGQ2LW.js 9.16 kB +9.16 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./bundle/bundled/third_party/index.js 8 MB 0 B
./bundle/chunk-34MYV7JD.js 2.45 kB 0 B
./bundle/chunk-4CUNWFAI.js 1.98 MB 0 B
./bundle/chunk-5AUYMPVF.js 858 B 0 B
./bundle/chunk-5PS3AYFU.js 1.18 kB 0 B
./bundle/chunk-664ZODQF.js 124 kB 0 B
./bundle/chunk-DAHVX5MI.js 206 kB 0 B
./bundle/chunk-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-RJTRUG2J.js 39.8 kB 0 B
./bundle/cleanup-CM2FI5FP.js 0 B -932 B (removed) 🏆
./bundle/devtools-36NN55EP.js 696 kB 0 B
./bundle/dist-T73EYRDX.js 356 B 0 B
./bundle/events-XB7DADIJ.js 418 B 0 B
./bundle/examples/hooks/scripts/on-start.js 188 B 0 B
./bundle/examples/mcp-server/example.js 1.43 kB 0 B
./bundle/gemini.js 5.1 kB 0 B
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB 0 B
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB 0 B
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB 0 B
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB 0 B
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB 0 B
./bundle/memoryDiscovery-Z2WYKTIK.js 980 B 0 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 222 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 229 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 13.4 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js 132 B 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B
./bundle/src-QVCVGIUX.js 47 kB 0 B
./bundle/start-Q32HFKDE.js 0 B -652 B (removed) 🏆
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/cleanup-J3SDCPBK.js 932 B +932 B (new file) 🆕
./bundle/start-6WE3DD5J.js 652 B +652 B (new file) 🆕

compressed-size-action

@galz10 galz10 added this pull request to the merge queue May 13, 2026
Merged via the queue into main with commit 77078b3 May 13, 2026
2 checks passed
@galz10 galz10 deleted the galzahavi/fix/utility-calls branch May 13, 2026 22:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status/need-issue Pull requests that need to have an associated issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants