Skip to content

feat(cli): implement /upgrade command#21511

Merged
sehoon38 merged 4 commits intomainfrom
feat/implement-upgrade-command
Mar 9, 2026
Merged

feat(cli): implement /upgrade command#21511
sehoon38 merged 4 commits intomainfrom
feat/implement-upgrade-command

Conversation

@sehoon38
Copy link
Contributor

@sehoon38 sehoon38 commented Mar 7, 2026

Summary

This PR implements the /upgrade slash command in the Gemini CLI. This command provides a direct way for users to upgrade their Gemini Code Assist tier to access higher usage limits.

Details

  • Core Library: Exported UPGRADE_URL_PAGE and fallback handler functions to make them accessible to the CLI.
  • CLI Command: Implemented upgradeCommand which opens the upgrade URL in the user's default browser.
  • Conditional Visibility: The /upgrade command is only registered and visible to the user if they are authenticated via Google (AuthType.LOGIN_WITH_GOOGLE), consistent with existing UI logic in the ProQuotaDialog.
  • Documentation: Added the /upgrade command to the CLI command reference.
  • Testing: Added unit tests to BuiltinCommandLoader.test.ts to ensure the command is only included when the appropriate authentication type is active.

Related Issues

Fixes #21513

How to Validate

  1. Authentication Check:
    • Run the CLI with a non-Google auth method (e.g., GEMINI_API_KEY).
    • Type / and verify /upgrade is not in the list of suggestions.
    • Run the CLI authenticated with Google.
    • Type / and verify /upgrade is visible.
  2. Execution:
    • Run /upgrade.
    • Verify that your default browser opens the Gemini Code Assist setup page (https://goo.gle/set-up-gemini-code-assist).
  3. Tests:
    • Run npm test -w @google/gemini-cli -- src/services/BuiltinCommandLoader.test.ts and verify all tests pass.

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

@sehoon38 sehoon38 requested review from a team as code owners March 7, 2026 02:09
@gemini-cli
Copy link
Contributor

gemini-cli bot commented Mar 7, 2026

Hi @sehoon38, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this.

We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines.

Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed.

Thank you for your understanding and for being a part of our community!

@gemini-cli
Copy link
Contributor

gemini-cli bot commented Mar 7, 2026

Hi there! Thank you for your contribution to Gemini CLI.

To improve our contribution process and better track changes, we now require all pull requests to be associated with an existing issue, as announced in our recent discussion and as detailed in our CONTRIBUTING.md.

This pull request is being closed because it is not currently linked to an issue. Once you have updated the description of this PR to link an issue (e.g., by adding Fixes #123 or Related to #123), it will be automatically reopened.

How to link an issue:
Add a keyword followed by the issue number (e.g., Fixes #123) in the description of your pull request. For more details on supported keywords and how linking works, please refer to the GitHub Documentation on linking pull requests to issues.

Thank you for your understanding and for being a part of our community!

@gemini-cli gemini-cli bot closed this Mar 7, 2026
@gemini-code-assist
Copy link
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 pull request introduces a new /upgrade command to the Gemini CLI, providing users with a direct way to access the Gemini Code Assist upgrade page. This enhancement improves user experience by making it easier for Google-authenticated users to upgrade their tier and increase usage limits, with the command's visibility dynamically controlled by the user's authentication status.

Highlights

  • New /upgrade Command: Implemented a new /upgrade slash command in the Gemini CLI, allowing users to directly open the Gemini Code Assist upgrade page in their browser.
  • Conditional Availability: The /upgrade command is only registered and visible to users who are authenticated via Google, aligning with existing UI logic for quota management.
  • Core Library Exports: Exported the UPGRADE_URL_PAGE constant and related fallback handler functions from the core library to make them accessible for CLI usage.
  • Documentation and Testing: Added documentation for the new /upgrade command in the CLI reference and included unit tests to ensure its conditional inclusion based on the authentication type.
Changelog
  • docs/reference/commands.md
    • Added documentation for the new /upgrade command, including its description and a note on its availability.
  • packages/cli/src/services/BuiltinCommandLoader.test.ts
    • Mocked the upgradeCommand for testing purposes.
    • Added new test cases to verify that the /upgrade command is correctly included or excluded based on the authentication type.
  • packages/cli/src/services/BuiltinCommandLoader.ts
    • Imported AuthType and upgradeCommand.
    • Modified the command loading logic to conditionally include upgradeCommand only when the authentication type is LOGIN_WITH_GOOGLE.
  • packages/cli/src/ui/commands/upgradeCommand.ts
    • Created a new file defining the upgradeCommand slash command.
    • Implemented the action to open the UPGRADE_URL_PAGE securely in the user's default browser.
    • Included a safety check to ensure the command only executes if authenticated with Google.
  • packages/core/src/fallback/handler.ts
    • Exported the UPGRADE_URL_PAGE constant to make it accessible to other modules.
  • packages/core/src/index.ts
    • Exported all contents from fallback/handler.js to expose UPGRADE_URL_PAGE and other related functions from the core library.
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 introduces a new /upgrade command to the CLI, providing a direct way for users to upgrade their Gemini Code Assist tier. The implementation is solid: the command is conditionally registered based on the user's authentication method, and the action securely opens the upgrade URL in the browser. The changes are well-tested and documented. The code adheres to the project's existing patterns and includes appropriate safety checks. I have not identified any high or critical issues in this pull request.

@gemini-cli
Copy link
Contributor

gemini-cli bot commented Mar 7, 2026

Thank you for linking an issue! This pull request has been automatically reopened.

@github-actions
Copy link

github-actions bot commented Mar 7, 2026

Size Change: +678 B (0%)

Total Size: 26 MB

ℹ️ View Unchanged
Filename Size Change
./bundle/gemini.js 25.5 MB +678 B (0%)
./bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js 221 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js 227 kB 0 B
./bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js 11.5 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

compressed-size-action

@gemini-cli gemini-cli bot added area/core Issues related to User Interface, OS Support, Core Functionality 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item. labels Mar 7, 2026
Address PR comment regarding an unnecessary return statement.
Also adds a unit test for the /upgrade command.
@sehoon38 sehoon38 enabled auto-merge March 9, 2026 16:54
- Add explicit return to satisfy noImplicitReturns.
- Use valid AuthType enum value in tests.
@sehoon38 sehoon38 added this pull request to the merge queue Mar 9, 2026
Merged via the queue into main with commit d485e08 Mar 9, 2026
26 of 27 checks passed
@sehoon38 sehoon38 deleted the feat/implement-upgrade-command branch March 9, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality 🔒 maintainer only ⛔ Do not contribute. Internal roadmap item.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cli): add /upgrade command for Google-logged-in users

2 participants