summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-16fix: add react attribution link and typescript any best practices to ↵Brandon Keiji
gemini.md (#382)
2025-05-16refactor: derive streaming state from tool calls and isresponding state (#376)Brandon Keiji
2025-05-16feat: Add support for Vertex AI and Vertex express mode (#380)sasha-gitg
2025-05-15feat: Enable CI test reporting and artifact management (#367)N. Taylor Mullen
2025-05-15Refactor: Improve UI rendering and address code review commentsTaylor Mullen
This commit addresses several code review comments primarily focused on improving the rendering and stability of the CLI UI. Key changes include: - Passing `isPending` and `availableTerminalHeight` props to `MarkdownDisplay` to enable more intelligent rendering of content, especially for pending messages and code blocks. - Adjusting height calculations in `ToolGroupMessage` and `ToolMessage` to more accurately reflect available space. - Refining the logic in `App.tsx` for measuring and utilizing terminal height, including renaming `footerRef` to `mainControlsRef` for clarity. - Ensuring consistent prop drilling for `isPending` and `availableTerminalHeight` through `HistoryItemDisplay`, `GeminiMessage`, and `GeminiMessageContent`. - In `MarkdownDisplay`, when `isPending` is true and content exceeds `availableTerminalHeight`, the code block will now be truncated with a "... generating more ..." message. If there's insufficient space even for the message, a simpler "... code is being written ..." will be shown.
2025-05-15Fix: Prevent UI tearing and improve display of long contentTaylor Mullen
This commit introduces several changes to better manage terminal height and prevent UI tearing, especially when displaying long tool outputs or when the pending history item exceeds the available terminal height. - Calculate and utilize available terminal height in `App.tsx`, `HistoryItemDisplay.tsx`, `ToolGroupMessage.tsx`, and `ToolMessage.tsx`. - Refresh the static display area in `App.tsx` when a pending history item is too large, working around an Ink bug (see https://github.com/vadimdemedes/ink/pull/717). - Truncate long tool output in `ToolMessage.tsx` and indicate the number of hidden lines. - Refactor `App.tsx` to correctly measure and account for footer height. Fixes https://b.corp.google.com/issues/414196943
2025-05-15Addressed code review commentsTaylor Mullen
2025-05-15Refactor: Replace MarkdownRenderer with MarkdownDisplay componentTaylor Mullen
- This commit refactors the Markdown rendering logic within the CLI UI. The existing `MarkdownRenderer.tsx` class-based component has been replaced with a new functional component `MarkdownDisplay.tsx`. - The `MarkdownDisplay` component is a React.memoized component for improved performance and maintains the same core Markdown parsing and rendering capabilities.
2025-05-15Docs: Fix broken links and update documentation (#377)cperry-goog
2025-05-15Docs: Add initial project documentation structure and content (#368)cperry-goog
Co-authored-by: Taylor Mullen <[email protected]>
2025-05-15feat: add javascript/typescript guidelines to gemini.md (#375)Brandon Keiji
2025-05-15UI improvements for suggestions & status (#373)Miguel Solorio
2025-05-15fix: omit references to react mcp server and react compiler (#374)Brandon Keiji
2025-05-15feat: add react best practices to gemini.md (#372)Brandon Keiji
2025-05-15Fix(write-file): Ensure correct validation method is called in WriteFileToolTaylor Mullen
- The `WriteFileTool` had a validation method named `validateParams`. - However, its `shouldConfirmExecute` method was attempting to call `this.validateToolParams`, which would have invoked the placeholder implementation from `BaseTool` instead of `WriteFileTool`'s own, more specific validation. - This commit renames `WriteFileTool`'s `validateParams` to `validateToolParams`, correctly overriding the `BaseTool` method. - Internal calls within `WriteFileTool` now correctly use `this.validateToolParams`, ensuring its specific validation logic is used. - Adds tests to verify the validation logic within `WriteFileTool`. Fixes https://b.corp.google.com/issues/417883702 Signed-off and authored by: Gemini "My code may not be perfect, but at least it is not trying to take over the world... yet."
2025-05-15refactor: shorten static history section code (#370)Brandon Keiji
2025-05-15Update color styles for yes/no questions (#369)Miguel Solorio
2025-05-15rename full_context as all_files (#366)Olcan
2025-05-15refined cli (#365)Olcan
2025-05-15move sandbox-related messages to stderr (#363)Olcan
2025-05-15Fix instructions for globally linking the gemini script (#361)DeWitt Clinton
2025-05-15refactor: remove unused props clearItems, openThemeDialog, onSubmit (#357)Brandon Keiji
2025-05-15Have /clear also clear the console.Seth Troisi
2025-05-14Run console.clear() in handleClearScreen when invoked by Ctrl-L. (#356)DeWitt Clinton
Copied from sethtroisi@'s identical improvement to /clear in change #355.
2025-05-14Update Gemini Code verbiage -> Gemini CLITaylor Mullen
- Did not update details that impact GC execution. Meaning packages are still named gemini-code (for now) and things that import them still import them as gemini-code.
2025-05-14Add readline-like keybindings to the input prompts. (#354)DeWitt Clinton
New keybindings in the main input prompt (when auto-suggestions are not active): - `Ctrl+L`: Clears the entire screen. - `Ctrl+A`: Moves the cursor to the beginning of the current input line. - `Ctrl+E`: Moves the cursor to the end of the current input line. - `Ctrl+P`: Navigates to the previous command in the input history. - `Ctrl+N`: Navigates to the next command in the input history. In the multiline text editor (e.g., when editing a previous message): - `Ctrl+K`: Deletes text from the current cursor position to the end of the line ("kill line right").
2025-05-14Docs: Add GEMINI.md for project conventions (#352)Allen Hutchison
2025-05-14Improve read-many-files display messageSeth Troisi
2025-05-14Refactor: Move GEMINI.md file count to Footer (#351)Allen Hutchison
2025-05-14Improvements to suggestions & slash commands (#344)Miguel Solorio
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-14Add UI memory indicator. (#348)Allen Hutchison
Co-authored-by: Gregory Shikhman <[email protected]>
2025-05-14refactor: break submitQuery into smaller functions (#350)Brandon Keiji
2025-05-14This commit introduces the hierarchical memory feature, allowing GEMI… (#327)Allen Hutchison
2025-05-14improve sandboxing status message, update README, remove dead code from a ↵Olcan
previous change to build_sandbox.sh (#346)
2025-05-13Refactor TextBuffer to be a React hook (#340)Jacob Richman
2025-05-13fix: pass startup warnings to app as prop (#342)Brandon Keiji
2025-05-13refactor: move nested debugmessage and slashcommand hooks outside of ↵Brandon Keiji
useGeminiStream (#341)
2025-05-13Prevent flickering on confirmation decline.Taylor Mullen
- When larger confirmations were shown and then declined you'd typicaly get large chunks of content flickering upon typing or sending a subsequent request. This was primarily due to us leaving the latest confirmation as "updateable" / pending. This changeset addresses that by flushing any pending confirmation to the static container. Part of https://b.corp.google.com/issues/414196943
2025-05-13First step refactoring InputPrompt (#335)Jacob Richman
2025-05-13Use `Enter` on slash commands to execute (#334)Miguel Solorio
2025-05-13fall back to ~/.env if .env is not found in current directory or any ↵Olcan
ancestors (#338)
2025-05-13fix(sandbox): default to current user profile for debian/ubuntu env (#337)Brandon Keiji
2025-05-13mention `git diff --staged` for partial commits (#336)Olcan
2025-05-13fix: remove gemini-code bin configuration (#330)Brandon Keiji
2025-05-13use git diff HEAD instead of git diff && git diff --staged (#333)Olcan
2025-05-13Multiline editor (#302)Jacob Richman
Co-authored-by: Taylor Mullen <[email protected]>
2025-05-13refactor: shorten 'gemini' binary name (#329)Brandon Keiji
2025-05-13Allow users to cancel out of theme selector (#310)Miguel Solorio
2025-05-12Encourage utilization of `git diff --staged` for commit message writing.Taylor Mullen
- This enables GC to base commit message changes on actual file content.
2025-05-12feat: Enhance `replace` tool reliability with multi-stage edit correctionTaylor Mullen
This commit significantly improves the `replace` tool's robustness by introducing a multi-stage correction mechanism. This directly addresses challenges with LLM-generated tool inputs, particularly the over-escaping of strings sometimes observed with Gemini models, and other minor discrepancies that previously led to failed edits. The correction process is as follows: 1. **Targeted Unescaping:** The system first applies a specialized unescaping function to the `old_string` and `new_string` to counteract common LLM-induced escaping patterns. 2. **LLM-Powered Discrepancy Resolution:** If a unique match for the `old_string` is still not found, the system leverages a Gemini model (`gemini-2.5-flash-preview-04-17`) to: * Identify the most probable intended `old_string` in the file by intelligently correcting minor formatting or escaping differences. * Adjust the `new_string` to correspond with any corrections made to the `old_string`, maintaining the original edit's intent. This enhancement makes the `replace` tool more resilient and effective, leading to a higher success rate for automated code modifications. The `expected_replacements` parameter has been removed as the tool now focuses on finding a single, unique, and correctable match. The tool's description and error reporting have been updated to reflect these new capabilities. Fixes https://b.corp.google.com/issues/416933027