refactor(cli): simplify UI and remove legacy inline tool confirmation logic - #18566
Conversation
Summary of ChangesHello @abhipatel12, 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 streamlines the CLI's user interface by deprecating and removing outdated inline tool confirmation mechanisms. By fully embracing the event-driven scheduler, all tool confirmations are now consistently managed through a global queue, leading to a cleaner and more predictable user experience. The changes simplify the underlying codebase by removing conditional logic and legacy components that are no longer necessary. Highlights
Changelog
Activity
Using Gemini Code AssistThe 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
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 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
|
|
Size Change: -1.59 kB (-0.01%) Total Size: 24.3 MB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Code Review
This pull request is a solid refactoring that simplifies the UI by removing the legacy inline tool confirmation logic and standardizing on the event-driven scheduler with a global confirmation queue. The changes are consistent across components, hooks, and tests, leading to a cleaner and more maintainable codebase. I've identified one area for improvement to fully complete the legacy code removal, which involves cleaning up a now-unused file and its associated type definitions.
13703d1 to
f9fff2e
Compare
|
Great cleanup! Removing the legacy inline confirmation logic significantly simplifies the UI state and aligns perfectly with the event-driven scheduler. A few minor points for consistency and further cleanup:
Overall, the code quality is high and the logic is much cleaner. |
f9fff2e to
b614153
Compare
…ini/gemini-cli (#37) * fix(cli): resolve double rendering in shpool and address vscode lint warnings (google-gemini#18704) * feat(plan): document and validate Plan Mode policy overrides (google-gemini#18825) * Fix pressing any key to exit select mode. (google-gemini#18421) * fix(cli): update F12 behavior to only open drawer if browser fails (google-gemini#18829) * feat(plan): allow skills to be enabled in plan mode (google-gemini#18817) Co-authored-by: Jerop Kipruto <jerop@google.com> * docs(plan): add documentation for plan mode tools (google-gemini#18827) * Remove experimental note in extension settings docs (google-gemini#18822) * Update prompt and grep tool definition to limit context size (google-gemini#18780) * docs(plan): add `ask_user` tool documentation (google-gemini#18830) * Revert unintended credentials exposure (google-gemini#18840) * feat(core): update internal utility models to Gemini 3 (google-gemini#18773) * feat(a2a): add value-resolver for auth credential resolution (google-gemini#18653) * Removed getPlainTextLength (google-gemini#18848) * More grep prompt tweaks (google-gemini#18846) * refactor(cli): Reactive useSettingsStore hook (google-gemini#14915) * fix(mcp): Ensure that stdio MCP server execution has the `GEMINI_CLI=1` env variable populated. (google-gemini#18832) * fix(core): improve headless mode detection for flags and query args (google-gemini#18855) * refactor(cli): simplify UI and remove legacy inline tool confirmation logic (google-gemini#18566) * feat(cli): deprecate --allowed-tools and excludeTools in favor of policy engine (google-gemini#18508) * fix(workflows): improve maintainer detection for automated PR actions (google-gemini#18869) * refactor(cli): consolidate useToolScheduler and delete legacy implementation (google-gemini#18567) * Update changelog for v0.28.0 and v0.29.0-preview0 (google-gemini#18819) * fix(core): ensure sub-agents are registered regardless of tools.allowed (google-gemini#18870) --------- Co-authored-by: Brad Dux <959674+braddux@users.noreply.github.com> Co-authored-by: Jerop Kipruto <jerop@google.com> Co-authored-by: Jacob Richman <jacob314@gmail.com> Co-authored-by: Sandy Tao <sandytao520@icloud.com> Co-authored-by: Adib234 <30782825+Adib234@users.noreply.github.com> Co-authored-by: christine betts <chrstn@uw.edu> Co-authored-by: Christian Gunderman <gundermanc@gmail.com> Co-authored-by: Adam Weidman <65992621+adamfweidman@users.noreply.github.com> Co-authored-by: Dev Randalpura <devrandalpura@google.com> Co-authored-by: Pyush Sinha <pyushsinha20@gmail.com> Co-authored-by: Richie Foreman <richie.foreman@gmail.com> Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com> Co-authored-by: Abhi <43648792+abhipatel12@users.noreply.github.com> Co-authored-by: Abhijit Balaji <abhijitbalaji@google.com> Co-authored-by: Bryan Morgan <bryanmorgan@google.com> Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com> Co-authored-by: matt korwel <matt.korwel@gmail.com>

Summary
This PR simplifies the CLI's UI components by removing legacy inline tool confirmation logic. Since the event-driven scheduler now handles all tool confirmations in a global queue at the bottom of the terminal, the inline interactive elements and associated branching logic in the conversation history are no longer needed.
Details
ToolGroupMessage.tsx: Removed theisEventDrivenflag. It now always hidesPendingandConfirmingtools from the history log.ToolGroupMessage.tsx: Removed the inlineToolConfirmationMessagerendering and associated "dimming" logic for tools awaiting approval.MainContent.tsx&AlternateBufferQuittingDisplay.tsx: Simplified the logic to always show the Global Confirmation Queue when a tool is awaiting approval, removing redundant configuration checks.ToolGroupMessage.test.tsxto assume the event-driven behavior as the default and deletedToolConfirmationMessageOverflow.test.tsxas the inline overflow path is obsolete.Related Issues
Part 2 of the legacy scheduler cleanup in the CLI package.
How to Validate
npm run test -w @google/gemini-clito ensure all simplified UI tests pass.Pre-Merge Checklist