Skip to content

fix(patch): cherry-pick d96bd05 to release/v0.29.6-pr-19867 to patch version v0.29.6 and create version 0.29.7#20104

Closed
gemini-cli-robot wants to merge 1 commit into
release/v0.29.6-pr-19867from
hotfix/v0.29.6/0.29.7/stable/cherry-pick-d96bd05/pr-19867
Closed

fix(patch): cherry-pick d96bd05 to release/v0.29.6-pr-19867 to patch version v0.29.6 and create version 0.29.7#20104
gemini-cli-robot wants to merge 1 commit into
release/v0.29.6-pr-19867from
hotfix/v0.29.6/0.29.7/stable/cherry-pick-d96bd05/pr-19867

Conversation

@gemini-cli-robot

Copy link
Copy Markdown
Collaborator

This PR automatically cherry-picks commit d96bd05 to patch version v0.29.6 in the stable release to create version 0.29.7.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @gemini-cli-robot, 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 application's ability to manage and recognize access to various preview AI models. It updates the core configuration logic to dynamically check user quotas against an expanded list of preview model identifiers, ensuring that users are granted appropriate access to the latest Gemini 3.1 preview offerings. The changes also include new test coverage to validate this updated access mechanism.

Highlights

  • Enhanced Preview Model Access Logic: The Config class's refreshUserQuota method was updated to leverage the isPreviewModel helper function, ensuring that access to preview models is determined more robustly by checking against a broader set of known preview model IDs.
  • Expanded Preview Model Recognition: The isPreviewModel utility function now includes PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL in its recognition logic, allowing the system to correctly identify this new preview model.
  • New Test Coverage for Gemini 3.1 Preview: A new test case was added to config.test.ts to specifically verify that hasAccessToPreviewModel is correctly set to true when the user's quota includes the gemini-3.1-pro-preview model.
Changelog
  • packages/core/src/config/config.test.ts
    • Added a test case to confirm hasAccessToPreviewModel is true when gemini-3.1-pro-preview is in the user quota.
  • packages/core/src/config/config.ts
    • Modified the refreshUserQuota method to use the isPreviewModel helper for checking preview model access in user quotas.
  • packages/core/src/config/models.test.ts
    • Included a test for PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL to verify it's correctly identified as a preview model.
  • packages/core/src/config/models.ts
    • Updated the isPreviewModel function to recognize PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL as a valid preview model.
Activity
  • This pull request was automatically generated to cherry-pick commit d96bd05d368a7315fdf106a6de95e299d97adc18 to the release/v0.29.6-pr-19867 branch.
  • The purpose of the cherry-pick is to patch version v0.29.6 and create version 0.29.7.
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.

@github-actions

Copy link
Copy Markdown

Size Change: +53 B (0%)

Total Size: 23.9 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 23.9 MB +53 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

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

Copy link
Copy Markdown
Contributor

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 correctly generalizes the preview model access check by using the isPreviewModel helper instead of a single hardcoded constant. This ensures that users with Gemini 3.1 preview quotas are correctly recognized. I have identified a potential issue where isPreviewModel does not handle model aliases (like pro or auto), which could lead to inconsistent behavior when these aliases are used in the configuration. I've suggested a refactor to use resolveModel for better robustness and added test cases using hardcoded literals as per repository guidelines.

Comment on lines 134 to 140
return (
model === PREVIEW_GEMINI_MODEL ||
model === PREVIEW_GEMINI_3_1_MODEL ||
model === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL ||
model === PREVIEW_GEMINI_FLASH_MODEL ||
model === PREVIEW_GEMINI_MODEL_AUTO
);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

The isPreviewModel function currently checks for strict equality against a hardcoded list of model IDs. This is inconsistent with other helpers like isGemini3Model and fails to correctly identify preview models when aliases like pro or auto are used in the configuration. This can lead to incorrect feature enablement (e.g., useWriteTodos being enabled for Gemini 3 models) and failure to trigger model fallbacks when access is lost. Refactoring this to use resolveModel first makes it much more robust and maintainable.

Suggested change
return (
model === PREVIEW_GEMINI_MODEL ||
model === PREVIEW_GEMINI_3_1_MODEL ||
model === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL ||
model === PREVIEW_GEMINI_FLASH_MODEL ||
model === PREVIEW_GEMINI_MODEL_AUTO
);
const resolved = resolveModel(model);
return (
resolved === PREVIEW_GEMINI_MODEL ||
resolved === PREVIEW_GEMINI_3_1_MODEL ||
resolved === PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL ||
resolved === PREVIEW_GEMINI_FLASH_MODEL
);

Comment on lines +37 to 40
expect(isPreviewModel(PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL)).toBe(true);
expect(isPreviewModel(PREVIEW_GEMINI_FLASH_MODEL)).toBe(true);
expect(isPreviewModel(PREVIEW_GEMINI_MODEL_AUTO)).toBe(true);
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

high

To ensure that isPreviewModel correctly handles aliases, we should add test cases for 'pro' and 'auto'. As per repository guidelines, prefer using hardcoded literal values in tests instead of importing constants to ensure tests are self-contained and less brittle.

    expect(isPreviewModel(PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL)).toBe(true);
    expect(isPreviewModel(PREVIEW_GEMINI_FLASH_MODEL)).toBe(true);
    expect(isPreviewModel(PREVIEW_GEMINI_MODEL_AUTO)).toBe(true);
    expect(isPreviewModel("pro")).toBe(true);
    expect(isPreviewModel("auto")).toBe(true);
  });
References
  1. In tests, prefer using hardcoded literal values instead of importing constants to ensure tests are self-contained and less brittle.

@gemini-cli gemini-cli Bot added the status/need-issue Pull requests that need to have an associated issue. label Feb 24, 2026
@sehoon38 sehoon38 closed this Feb 24, 2026
@sehoon38 sehoon38 deleted the hotfix/v0.29.6/0.29.7/stable/cherry-pick-d96bd05/pr-19867 branch February 24, 2026 01:28
@sripasg sripasg added the size/s A small PR label Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/s A small PR 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.

4 participants