Skip to content

fix(patch): cherry-pick 3e50be1 to release/v0.18.0-preview.2-pr-13428 to patch version v0.18.0-preview.2 and create version 0.18.0-preview.3#13821

Merged
SandyTao520 merged 1 commit intorelease/v0.18.0-preview.2-pr-13428from
hotfix/v0.18.0-preview.2/0.18.0-preview.3/preview/cherry-pick-3e50be1/pr-13428
Nov 25, 2025
Merged

fix(patch): cherry-pick 3e50be1 to release/v0.18.0-preview.2-pr-13428 to patch version v0.18.0-preview.2 and create version 0.18.0-preview.3#13821
SandyTao520 merged 1 commit intorelease/v0.18.0-preview.2-pr-13428from
hotfix/v0.18.0-preview.2/0.18.0-preview.3/preview/cherry-pick-3e50be1/pr-13428

Conversation

@gemini-cli-robot
Copy link
Copy Markdown
Collaborator

This PR automatically cherry-picks commit 3e50be1 to patch version v0.18.0-preview.2 in the preview release to create version 0.18.0-preview.3.

@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 automates a patch by cherry-picking a commit that significantly refactors the application's header banner display mechanism. The core change involves moving the banner's state management and visibility logic into a new custom React hook. This improves code organization and enables more granular control over banner presentation by tracking individual banner message display counts, ensuring that specific messages adhere to their own visibility limits.

Highlights

  • Banner Logic Refactoring: The logic for displaying and managing the application header banner has been extracted from AppHeader.tsx into a new, dedicated custom React hook named useBanner.
  • Per-Banner Display Count: The system now tracks how many times each unique default banner message has been shown, rather than a single global count. This is achieved by hashing the banner text and storing its display count in persistentState.
  • Persistent State Update: The persistentState utility has been updated to store defaultBannerShownCount as an object (a map of hashed banner text to its display count) instead of a single numeric value.
  • New Hook and Tests: A new file useBanner.ts was added for the custom hook, along with a comprehensive test suite in useBanner.test.ts to cover its various behaviors, including warning text precedence, preview feature interaction, and display limits.
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: +956 B (0%)

Total Size: 21.1 MB

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

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 PR refactors the banner display logic into a new useBanner hook, which is a great improvement for modularity. The new logic tracks banner display counts per banner text using a hash, which is more robust. I've found a couple of critical issues in the new useBanner hook related to state management that could cause incorrect behavior, and I've left detailed comments with suggestions. Additionally, it seems an existing test case in AppHeader.test.tsx for when the banner count reaches its limit may now be broken by these changes but was not updated in this PR. It should be updated to reflect the new data structure for defaultBannerShownCount.

Comment thread packages/cli/src/ui/hooks/useBanner.ts
Comment thread packages/cli/src/ui/hooks/useBanner.ts
@SandyTao520 SandyTao520 merged commit ea3d022 into release/v0.18.0-preview.2-pr-13428 Nov 25, 2025
21 checks passed
@SandyTao520 SandyTao520 deleted the hotfix/v0.18.0-preview.2/0.18.0-preview.3/preview/cherry-pick-3e50be1/pr-13428 branch November 25, 2025 19:10
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.

3 participants