Skip to content

Conversation

@adamfweidman
Copy link
Collaborator

Summary

Enhances the policy-driven fallback mechanism to support "upgrade" fallbacks (e.g., Flash → Pro) via wrapped candidate lists and implements strict single-model policies for user-specified custom models to prevent unwanted fallbacks.

Details

Enhances the policy-driven fallback mechanism to support "upgrade" fallbacks (e.g., Flash → Pro) via wrapped candidate lists and implements strict single-model policies for user-specified custom models to prevent unwanted fallbacks.

Related Issues

Fixes https://github.com/google-gemini/maintainers-gemini-cli/issues/1068

How to Validate

npm run preflight

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
      • npx
      • Docker
      • Podman
      • Seatbelt
    • Windows
      • npm run
      • npx
      • Docker
    • Linux
      • npm run
      • npx
      • Docker

@adamfweidman adamfweidman requested a review from a team as a code owner November 26, 2025 21:48
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @adamfweidman, 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 pull request refines the model availability routing by introducing more sophisticated fallback logic. It allows for 'upgrade' fallbacks where a failed model can fall back to a more capable model if available, and ensures that custom models, when explicitly chosen, do not inadvertently trigger fallbacks to other models. This improves the predictability and flexibility of model selection within the core system.

Highlights

  • Enhanced Fallback Mechanism: The policy-driven fallback mechanism has been enhanced to support 'upgrade' fallbacks, allowing models to fall back to more capable options (e.g., Flash → Pro) using wrapped candidate lists.
  • Strict Single-Model Policies: Implemented strict single-model policies for user-specified custom models, preventing unintended fallbacks to other models when a specific custom model is explicitly chosen.
  • Improved Policy Context: The buildFallbackPolicyContext now returns candidates in a wrapped order, prioritizing downgrades (continuing the chain) before wrapping around to potential upgrades.
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 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 counter productive. 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.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

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.

Copy link
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 enhances the model availability routing by introducing two key features: wrapped fallback policies to allow for model upgrades (e.g., Flash to Pro) and strict single-model policies for user-specified custom models to prevent unintended fallbacks. The implementation appears solid and well-tested. The logic for creating fallback candidate lists now correctly wraps around the policy chain. The handling of custom models is now stricter, creating a single-model chain which is the intended behavior. The fallback handler logic has also been refactored for better robustness, especially in scenarios where no suitable fallback model can be found. The accompanying test updates are thorough and cover the new functionality and edge cases well. Overall, this is a high-quality contribution that improves the flexibility and predictability of the model fallback system.

@github-actions
Copy link

Size Change: -103 B (0%)

Total Size: 21.4 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 21.4 MB -103 B (0%)
./bundle/sandbox-macos-permissive-closed.sb 1.03 kB 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-closed.sb 3.29 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

compressed-size-action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant