Skip to content

Conversation

@jackwotherspoon
Copy link
Collaborator

@jackwotherspoon jackwotherspoon commented Dec 5, 2025

Summary

This is the third PR in the auto-execute saga. This PR allows slash commands with completion functions that take a single argument to auto-execute.

Think /mcp auth where you then are suggested which server to auth too:

image

This PR let's the command auto-execute once you hit Enter on the completion function suggestion.

Previous work:

  1. Auto-execute simple built-in slash commands: feat: auto-execute simple slash commands on Enter #13985
  2. Auto-execute argumentless MCP prompts: feat: add auto-execute on Enter behavior to argumentless MCP prompts #14510

Details

Allow built-in slash commands with completion functions to auto-execute when a completion suggestion is selected with Enter.

Before: /mcp auth → select server → autocompletes to /mcp auth my-server → requires Enter again to execute

After: /mcp auth → select server → executes immediately

Changes

  • Exposed isArgumentCompletion and leafCommand from the slash completion hooks
  • Modified Enter key handler to auto-execute argument completions when the command has autoExecute: true
  • Set autoExecute: true on 6 single-arg completion commands: /mcp auth, /chat resume, /chat delete, /hooks enable, /hooks disable, /restore
  • Multi-arg completion commands (/extensions enable, /extensions disable) keep autoExecute: false

Test Plan

  • Added 3 new tests for argument completion auto-execute behavior
  • Verified all existing tests pass

Related Issues

How to Validate

Hit enter on completion suggestion for arg for command like /chat resume or /mcp auth --> should auto-execute.

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

@jackwotherspoon jackwotherspoon requested a review from a team as a code owner December 5, 2025 16:38
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @jackwotherspoon, 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 significantly improves the user experience for slash commands in the CLI by enabling auto-execution for commands that require a single argument selected via a completion function. This change streamlines interaction by eliminating an extra step, making the command input process more efficient and intuitive. It builds upon previous work to enhance command auto-execution, focusing specifically on argument completions.

Highlights

  • Auto-execution for single-argument completion commands: Slash commands with completion functions that take a single argument will now auto-execute upon selection of a completion suggestion, removing the need for a second 'Enter' press.
  • Updated Enter key handler logic: The InputPrompt component's Enter key handler has been modified to check for isArgumentCompletion and leafCommand to correctly trigger auto-execution for argument completions.
  • Enabled auto-execute for specific commands: The autoExecute: true property has been set for eight built-in slash commands: /mcp auth, /chat resume, /chat delete, /hooks enable, /hooks disable, /extensions update, /extensions restart, and /restore.
  • New completion hook properties: The useCommandCompletion and useSlashCompletion hooks now expose isArgumentCompletion and leafCommand to provide more context about the current completion state.
  • New test cases: Three new tests have been added to verify the correct behavior of argument completion auto-execution, ensuring functionality for both auto-executing and non-auto-executing scenarios.
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 great enhancement by allowing slash commands with single-argument completion functions to auto-execute, improving user experience. The implementation is well-structured, with clear logic changes in InputPrompt.tsx and good test coverage for the new behavior. However, I've found a critical issue where two of the updated commands, /extensions update and /extensions restart, are incorrectly marked for auto-execution. These commands support multiple arguments, and auto-executing them after the first argument would break the ability to specify more than one extension.

@github-actions
Copy link

github-actions bot commented Dec 5, 2025

Size Change: +709 B (0%)

Total Size: 21.5 MB

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

@abhipatel12 abhipatel12 left a comment

Choose a reason for hiding this comment

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

LGTM thanks!

@abhipatel12 abhipatel12 added this pull request to the merge queue Dec 8, 2025
Merged via the queue into main with commit 89570ae Dec 8, 2025
25 checks passed
@abhipatel12 abhipatel12 deleted the auto-execute-completion branch December 8, 2025 21:45
theerud pushed a commit to theerud/gemini-cli that referenced this pull request Dec 9, 2025
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.

2 participants