-
Notifications
You must be signed in to change notification settings - Fork 76
Several Windows fixes and other QoL improvements #17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…ue-#9 Fix Windows spawn issue
Bump version to 1.1.5
…d-on-win32 Add vitest for command executor test
…s-and-types-are-correct Ensure dev and peer deps
…ing-error Fix package.json syntax error
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @alexx-ftw, 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 delivers a substantial upgrade to the project's core functionality by introducing a flexible and extensible tool system. It significantly enhances the integration with Gemini, particularly for structured code modifications, and improves the overall user experience through better feedback and error handling. Critical platform compatibility issues have been resolved, and the project's underlying infrastructure has been modernized.
Highlights
- Unified Tool Registry & New Tools: I've implemented a new
UnifiedTool
interface andtoolRegistry
to streamline tool development and management. This includes new tools likeask-gemini
for core Gemini interactions,brainstorm
for idea generation,fetch-chunk
for handling large responses, andtimeout-test
for system stability checks, alongside basicping
andhelp
utilities. - Enhanced Gemini Integration with 'ChangeMode': A significant feature, 'changeMode', has been introduced. This enables Gemini to provide structured code modifications in a precise OLD/NEW format. The system now includes robust parsing, validation, intelligent chunking for large responses, and a file-based caching mechanism for these edits, improving the workflow for applying AI-generated code changes.
- Improved Windows Compatibility: To address
ENOENT
errors on Windows, thecommandExecutor
now explicitly setsshell: process.platform === "win32"
when spawning child processes. This ensures commands are executed correctly across different operating systems. - Progress Notifications & Quota Fallback: Long-running tool executions now provide periodic progress notifications to the user, enhancing feedback. Additionally, the system includes an automatic fallback mechanism to the
gemini-2.5-flash
model if thegemini-2.5-pro
quota is exceeded, ensuring continued operation. - Dependency Refinement & Testing Infrastructure: I've refined dependency management by moving
@modelcontextprotocol/sdk
andzod
todevDependencies
andpeerDependencies
.vitest
has been added todevDependencies
, and thetest
script updated, along with a new test for thecommandExecutor
. - Documentation Updates: New
AGENTS.md
guidance has been added, covering development practices, Windows compatibility, and repository scripts. TheCHANGELOG.md
anddocs/resources/troubleshooting.md
have also been updated to reflect the new version and compatibility fixes.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
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 issue 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 or fill out our survey to provide feedback.
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
-
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. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
An excellent pull request that introduces a significant refactoring of the tool handling mechanism by creating a unified tool registry, which greatly improves maintainability. It also adds several new tools and a major changeMode
feature for applying structured code edits, complete with response parsing, chunking, and caching. The Windows compatibility fix is a welcome addition, and the new tests and documentation are valuable.
My review focuses on improving the correctness of the new changeMode
parser, ensuring consistent logging practices, and clarifying some parts of the new code. Overall, this is a substantial and well-architected update.
/gemini summary |
Summary of ChangesThis pull request primarily focuses on enhancing the cross-platform compatibility of the application, specifically addressing command execution issues on Windows. It also significantly improves the project's extensibility by introducing a unified tool registration system and several new utility tools. Furthermore, the PR refines dependency management and upgrades the testing infrastructure, contributing to overall code quality and maintainability. Highlights
Changelog
Activity
|
…-gemini-tool Fix gemini prompt quoting on Windows
/Gemini summary |
Summary of ChangesThis pull request significantly enhances the application's cross-platform compatibility, particularly for Windows users, by addressing command execution issues. It also introduces a robust and extensible unified tool registration system, alongside several new utility tools that expand the application's capabilities. Furthermore, the changes improve overall code quality through refined dependency management and an upgraded testing framework. Highlights
Changelog
Activity
|
worked for me on win 11! But you probably want to remove the dist files from the PR |
Ups you're right my bad. Removing them rn |
…-in-mcp-gemini-tool Fix gemini prompt quoting on Windows
…margsschema Clarify brainstorming ideaCount default
…emplate-literal fix: clean up no-edits message in change mode
…unctionality test: add command executor progress and error tests
…-current-capabilities docs: document brainstorming and change-mode chunks
…reflect-current-capabilities docs: document brainstorming and change-mode chunks
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Use dedicated console methods in Logger
…files chore: type tool arguments
chore: remove unused timeout manager
chore: skip docs deploy on forks
chore: remove placeholder comment from logger
…newline Remove trailing newline from log messages
…provements - Preserved type improvements from main branch (typed args, better type safety) - Applied Prettier formatting from PR #20 (double quotes, consistent indentation) - Resolved conflicts in: ask-gemini.tool.ts, brainstorm.tool.ts, fetch-chunk.tool.ts, registry.ts, simple-tools.ts, timeout-test.tool.ts - Maintained functional changes: Number() casting, proper destructuring, type annotations 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
chore: format source files
Description
Summary of Changes
This pull request primarily focuses on enhancing the cross-platform compatibility of the application, specifically addressing command execution issues on Windows. It also significantly improves the project's extensibility by introducing a unified tool registration system and several new utility tools. Furthermore, the PR refines dependency management and upgrades the testing infrastructure, contributing to overall code quality and maintainability.
Highlights
src/utils/commandExecutor.ts
(lines 15-17) to setshell: process. Platform === "win32"
when spawning child processes. This resolvesENOENT
errors encountered on Windows, improving cross-platform reliability. A new testtests/commandExecutor.test.ts
was added to verify this behavior.src/tools/registry.ts
and a set of new tools (ask-gemini
,brainstorm
,fetch-chunk
,ping
,help
,timeout-test
) to enhance functionality and simplify future tool additions. This includes logic for handlingchangeMode
output and chunking large responses.package.json
(lines 49-55, 65-67, 72-74) to move@modelcontextprotocol/sdk
andzod
topeerDependencies
anddevDependencies
, ensuring better dependency hygiene. The testing framework was updated from a placeholder tovitest
(line 14), enabling proper unit testing.AGENTS.md
and updateddocs/resources/troubleshooting.md
(lines 345-346) to reflect the Windows compatibility fix. The project version was bumped to 1.1.5 acrosspackage.json
(line 3),CHANGELOG.md
(line 5),src/index.ts
(line 33), anddocs/.vitepress/theme/Layout.vue
(line 9).Type of Change
Testing