summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-25Ensure edit correction isn't re-done after confirm.Taylor Mullen
- Edit corretion leans on LLM-isms to ensure we properly fix poorly escaped content. Beacues of this we need to ensure that we don't re-run edit correction in many cases. - To ensure this an `LruCache` has been added to capture intermediate steps of edit correction to avoid re-computations. - Max cache size is 50 currently. This means a user can have a muti-confirmation flow of 25 items without recomputing anything (assuming they all break edit correction). - Laid some groundwork for future testing. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25Correct edits even when auto-accept is enabled.Taylor Mullen
- Prior to this when a user would turn on auto-accept for edits we'd stop ensuring correct edits. This would result in a lot of back and forth by the model. This change also incoporates ensure correct edit into the normal execution flow. - Added edit tests for this. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25Trim edits if possible.Taylor Mullen
- Since we're now LLM correcting a lot of problematic edits we need to also potentially trim bad edits (llms have a bad habbit of adding whitespace places). Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25Upon finding > 1 occurrences do not attempt auto-correction.Taylor Mullen
- When correcting edits prior to this if we found more than one occurrence we would try to auto-correct the old/new strings. There's no need in this situation because the tool has already provided too vague of an old_string to act upon. Instantly return. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25refactor: Decouple new_string correction from old_stringTaylor Mullen
- Previously, `new_string` was assumed to be over-escaped if `old_string` was. - This change introduces an explicit check (`newStringPotentiallyEscaped`) to determine if `new_string` itself needs correction. - If `new_string` is potentially escaped, its corrected using an LLM call; otherwise, the original `new_string` is used. - This avoids unnecessary corrections to `new_string` when only `old_string` was problematic. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25refactor: Correct Gemini's over-escaped new_string in replace toolTaylor Mullen
- Implement a heuristic to detect and unescape `new_string` if it appears Gemini has over-escaped it, while `old_string` is correctly formatted. - This improves the reliability of the replace tool when the model generates an incorrectly escaped replacement string. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25refactor: Improve editCorrector logic and type safetyTaylor Mullen
- Refactor `ensureCorrectEdit` to clarify the correction flow for `old_string` and `new_string`. - Only correct `new_string` if it was potentially escaped; otherwise, use the original. - Introduce `CorrectedEditParams` and `CorrectedEditResult` interfaces for better type definition. - Relocate `countOccurrences` for better logical grouping. Part of https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25Reduce excessive diff separators in CLI. (#535)DeWitt Clinton
Increases the threshold for rendering diff separators in the CLI's diff display. Previously, a separator was shown for gaps of more than one context line, leading to excessive separators in diffs with many small changes close together (Issue #534). By increasing `MAX_CONTEXT_LINES_WITHOUT_GAP` to 5, we allow for more context lines before a separator is added, significantly reducing visual clutter in such diffs. Added a test case to `DiffRenderer.test.tsx` to verify that separators are not rendered for small gaps within the new threshold.
2025-05-24feat: Add GEMINI.md tip to UITaylor Mullen
- Display a tip to create a GEMINI.md file if one doesn't exist. - Pass config to Tips component so it can inspect the initial GEMINI.md count.
2025-05-24Code review comment fixes and some refactors. (#525)Jacob Richman
No intentional different behavior aside for tweaks suggested from the code review of #506 Refactor: Extract console message logic to custom hook This commit refactors the console message handling from App.tsx into a new custom hook useConsoleMessages. This change improves the testability of the console message logic and declutters the main App component. Created useConsoleMessages.ts to encapsulate console message state and update logic. Updated App.tsx to utilize the new useConsoleMessages hook. Added unit tests for useConsoleMessages.ts to ensure its functionality. I deleted and started over on LoadingIndicator.test.tsx as I spent way too much time trying to fix it before just regenerating the tests as the code was easier to write tests for from scratch and the existing tests were not that good (I added them in the previous pull request).
2025-05-23Make console message support more robust to logging in the middle of ↵Jacob Richman
rendering. (#521)
2025-05-23Add additional readline-like keybindings. (#524)DeWitt Clinton
Adds the following conventional readline-like keybindings: - `Ctrl+H`: Delete the previous character. - `Ctrl+D`: Delete the next character. Additionally, remaps the Debug Console command from Ctrl+D to Ctrl+O, which had been first introduced in PR #486.
2025-05-23đź§ą FormatMiguel Solorio
2025-05-23Update packages/cli/src/ui/types.tsMiguel Solorio
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-23Update packages/cli/src/ui/hooks/slashCommandProcessor.tsMiguel Solorio
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-23Remove CLI info from footerMiguel Solorio
2025-05-23Add `/about` commandMiguel Solorio
2025-05-23feat: Enable npx execution on tagged versionsTaylor Mullen
- Modify root package.json to allow publishing - Update "files" to include only essential bundled assets This change makes it possible to use npx with tagged versions of the gemini-cli package (e.g., npx https://github.com/google-gemini/gemini-cli@early-access). It removes "private: true" and refines the "files" array to ensure that only the necessary bundled assets are included when the package is fetched by npx, optimizing download size and ensuring correct execution.
2025-05-23infra: emit errors on no-explicit-any eslint rule (#516)Brandon Keiji
2025-05-23fix: Update dependencies to resolve deprecation warningsTaylor Mullen
2025-05-23MCP SSE support (#511)cornmander
Matches the config format used by other MCP clients.
2025-05-23feat: Enable npx execution directly from GitHub URLTaylor Mullen
This commit modifies the packaging setup to allow the CLI to be executed directly from its GitHub URL using `npx`, for example: `npx https://github.com/google-gemini/gemini-cli` (once merged to main). This is achieved without requiring the bundle to be checked into the repository. Key changes and motivations: - Modify `scripts.prepare` to run `npm run bundle`: Ensures the CLI bundle is generated automatically when `npx` installs the package from a git URL. This replaces previous approaches (e.g., using `prepack`) which were not consistently triggered in the `npx` environment. - Update `scripts.bundle` to use a direct path for `esbuild` and externalize `sqlite3`: Using `node_modules/.bin/esbuild` provides a more reliable way to invoke the bundler. Externalizing `sqlite3` is crucial for correctly handling its native addon, preventing runtime errors. - Add `bin`, `files`, and root `sqlite3` dependency: - The `bin` field defines the `gemini` command. - The `files` array ensures the generated `bundle/` directory is recognized by npm. - `sqlite3` is added as a root dependency to ensure it's installed by `npx` when `gemini-code` is fetched, allowing the externalized module to be resolved. These changes collectively ensure that the necessary build artifacts are created on-the-fly during `npx` installation, providing a seamless execution experience directly from the GitHub repository URL.
2025-05-23fix: do not retry cancelled tool calls (#504)Brandon Keiji
2025-05-23feat: Modify loading indicator to support a paused state (#506)Jacob Richman
2025-05-23Mention Kotlin & Compose (Mutliplatform) in prompt.tsJordan Demeulenaere
2025-05-23Fix bug updating the cursor after navigating history. (#507)Jacob Richman
2025-05-23Refactor(server): Centralize GEMINI.md discovery logic in server (#498)Allen Hutchison
2025-05-23Refactor(cli): Move memory add logic to server tool call (#493)Allen Hutchison
2025-05-23update email to gemini-cli-dev (#510)Olcan
2025-05-23allow write to ~/.gitconfig in seatbelt profiles (#509)Olcan
2025-05-23Refactor: Update streaming state logic to hide loader during confirmationTaylor Mullen
- The streaming state logic in `useGeminiStream.ts` has been updated. - Previously, the loading indicator was displayed even when the system was waiting for user confirmation on a tool call. - This change introduces a `WaitingForConfirmation` state to ensure the loading indicator is hidden during these confirmation prompts, improving the user experience.
2025-05-23feat: add emphasis to tool confirmations (#502)Brandon Keiji
2025-05-22Fix(server): Ensure debug responses are not recorded after cancellation (#491)Allen Hutchison
2025-05-22Refactor: Consolidate and clarify core mandates and guidelines (#482)N. Taylor Mullen
Co-authored-by: Allen Hutchison <[email protected]>
2025-05-22Chore: Integrate coverage reporting into CI (#479)Allen Hutchison
2025-05-22fix: add shell-quote to server deps (#492)Brandon Keiji
2025-05-22Refactor: Streamline memoryUtils and update slash commands (#478)Allen Hutchison
2025-05-22Fix: Prevent hang in large directories by using BFS for getFolderStru… (#470)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-22Refactor: Improve console error/log display in CLI (#486)Jacob Richman
2025-05-22fix: cancel parallel tool calls mid-execution (#489)Brandon Keiji
2025-05-22fix: synchronization between executed tools and turn loops (#488)Brandon Keiji
2025-05-21feat: Update feedback mechanism to use /bug commandTaylor Mullen
- Replaces the previous email-based feedback with a /bug command in the system prompt.
2025-05-22fix: forward entire tool call confirmation object through useToolScheduler ↵Brandon Keiji
(#481)
2025-05-21feat: useToolScheduler hook to manage parallel tool calls (#448)Brandon Keiji
2025-05-21Feat: Add test coverage scripts and ignore reports (#477)Allen Hutchison
2025-05-21Remove unneeded linebreaks in tool description in read-many-files. (#476)Jacob Richman
2025-05-21Fix: Align WebSearchTool API key handling with GeminiClient (#474)Allen Hutchison
2025-05-21Fix: Resolve CLI version reporting in /bug command (#455)Allen Hutchison
2025-05-21use pending history item for shell mode, update as output is received (#471)Olcan
2025-05-21space outputs in shell mode (#469)Olcan