refactor(cli): consolidate useToolScheduler and delete legacy implementation#18567
refactor(cli): consolidate useToolScheduler and delete legacy implementation#18567abhipatel12 merged 2 commits intomainfrom
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 significantly refactors the tool scheduling logic within the CLI package. By removing the outdated Highlights
Changelog
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
|
There was a problem hiding this comment.
Code Review
This pull request is an excellent refactoring that consolidates the tool scheduling logic by removing the legacy useReactToolScheduler and its associated feature flag. The modern, event-driven useToolExecutionScheduler has been correctly renamed to useToolScheduler and is now the single implementation, which significantly simplifies the hook architecture and improves maintainability. All related imports, components, and tests have been updated consistently to reflect this change. The test suite has been particularly well-refactored to remove the now-obsolete branching logic and focus on the unified behavior. The changes are clean, well-executed, and align perfectly with the goal of simplifying the codebase. I found no issues with this refactoring.
|
Size Change: -354 B (0%) Total Size: 24.3 MB ℹ️ View Unchanged
|
13703d1 to
f9fff2e
Compare
cd89ffd to
f63186e
Compare
f9fff2e to
b614153
Compare
…ExecutionScheduler to useToolScheduler
f63186e to
77d4c65
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 consolidates the tool scheduling logic in the CLI package by removing the legacy
useReactToolSchedulerand renaming the modern implementation touseToolScheduler. This significantly simplifies the hook architecture and removes the need for a facade layer.Details
useReactToolScheduler.tsand its associated unit tests.packages/cli/src/ui/hooks/useToolExecutionScheduler.tstopackages/cli/src/ui/hooks/useToolScheduler.ts.useToolScheduler.tsthat previously toggled between legacy and modern engines.useGeminiStream,useTurnActivityMonitor,useShellInactivityStatus, etc.) to import types and the main hook from the unifieduseToolScheduler.js.App.test.tsxanduseGeminiStream.test.tsxto remove redundant feature flag mocks and spies.Note: A follow-up PR will address the removal of the remaining
onConfirmadapter logic within the hook, as it is now redundant with theMessageBusbased confirmation flow.Related Issues
Significant progress on the legacy scheduler cleanup in the CLI package.
How to Validate
npm run preflightto ensure all tests pass and the build is stable.packages/cli/src/ui/hooks/useReactToolScheduler.tsno longer exists in the codebase.useToolScheduler.js.Pre-Merge Checklist