summaryrefslogtreecommitdiff
path: root/packages/cli/src
AgeCommit message (Collapse)Author
2025-05-17Introduce a small easter egg. Woof. (#412)DeWitt Clinton
Also changes auto-completion and /help to skip over slash commands that don't contain a description to avoid spoiling the surprise.
2025-05-17ability to override core system prompt (via .gemini/system.md) and specify ↵Olcan
core tools via coreTools setting (e.g. coreTools:["ls", "GrepTool", ...]) ; added tests, but did not update docs for now (#413)
2025-05-17rename env vars GEMINI_CODE_{MODEL,SANDBOX,SANDBOX_IMAGE} (#411)Olcan
2025-05-17added timeout setting to mcp server config, also switched to custom config ↵Olcan
type without "stderr" field that does not make sense in settings (#410)
2025-05-16feat: Patch console.debug and display only in debug modeTaylor Mullen
- Patches `console.debug` in `ConsolePatcher.tsx` to capture debug messages. - Updates `ConsoleOutput` to only display debug messages when `debugMode` is enabled. - Passes `debugMode` prop from `App.tsx` to `ConsoleOutput`. Fixes https://github.com/google-gemini/gemini-cli/issues/397
2025-05-16feat: Implement CLI and model memory management (#371)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-16improved mcp support, including standard "mcpServers" setting with multiple ↵Olcan
named servers with command/args/env/cwd (#392)
2025-05-16strip escape characters when pasting. (#386)Jacob Richman
2025-05-16Support auto wrapping of in the multiline editor. (#383)Jacob Richman
2025-05-16fix: Ensure filename is available for diff rendering in write-fileTaylor Mullen
This commit resolves a bug where the `write-file` operation could fail to render content due to a missing filename. The fix involves: - Ensuring `fileName` is consistently passed to `DiffRenderer.tsx` through `ToolConfirmationMessage.tsx`, `ToolMessage.tsx`, and `useGeminiStream.ts`. - Modifying `edit.ts` and `write-file.ts` to include `fileName` in the `FileDiff` object. - Expanding the `FileDiff` interface in `tools.ts` to include `fileName`. Additionally, this commit enhances the diff rendering by: - Adding syntax highlighting based on file extension in `DiffRenderer.tsx`. - Adding more language mappings to `getLanguageFromExtension` in `DiffRenderer.tsx`. - Added lots of tests for all the above. Fixes https://b.corp.google.com/issues/418125982
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-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-15UI improvements for suggestions & status (#373)Miguel Solorio
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-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-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-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-13fix(sandbox): default to current user profile for debian/ubuntu env (#337)Brandon Keiji
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-12When an error occurs stop processing.Taylor Mullen
2025-05-11feat: Add User-Agent to API requestsTaylor Mullen
This change introduces a User-Agent header to all API requests made by the Gemini CLI. The User-Agent string includes the CLI version, Node.js version, operating system, and architecture. This will help in tracking usage and identifying potential issues. Fixes https://b.corp.google.com/issues/416353675 Signed-off-by: Gemini
2025-05-11feat: Integrate centralized error reporting for API interactionsTaylor Mullen
Implements robust error handling for Gemini API calls, integrating with the centralized error reporting system. - API errors are now caught and reported to dedicated log files, providing detailed diagnostics without cluttering the user interface. - A concise error message is surfaced to the user in the UI, indicating an API issue. - Ensures any pending UI updates are processed before an API error is displayed. This change improves our ability to diagnose API-related problems by capturing rich error context centrally, while maintaining a clean user experience. Signed-off-by: Gemini <[email protected]>
2025-05-11Remove terminal tool and dependencies.Taylor Mullen
- We now solely use the shell tool. This deletes all content around the legacy terminal tool so we can focus on improving the new Shell tool. - Remove instances from sandboxing, tests, utilities etc.
2025-05-10Show model decline/cancellation states.Taylor Mullen
- Upon decline / cancellation we weren't showing the model the cancellation status or states. Therefore it didn't know why things would or wouldn't happen Fixes https://b.corp.google.com/issues/416797704
2025-05-10Enable tools to cancel active execution.Taylor Mullen
- Plumbed abort signals through to tools - Updated the shell tool to properly cancel active requests by killing the entire child process tree of the underlying shell process and then report that the shell itself was canceled. Fixes https://b.corp.google.com/issues/416829935
2025-05-09Make cancel not explode.Taylor Mullen
- We were console.erroring, throwing and early aborting. Instead we now treat cancels like a normal user message and show an indicator in the UI Fixes https://b.corp.google.com/issues/416515841
2025-05-09fix: Resolve infinite loopTaylor Mullen
- This change addresses and resolves an infinite loop. The patch ensures the loop condition is correctly handled, preventing its recurrence. - Added tests for markdownUtilities.test.ts Fixes: https://b.corp.google.com/issues/416795337 Signed-off-by: Gemini <My circuits hummed, and the loop was no more.>