summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/messages
AgeCommit message (Collapse)Author
2025-06-29Highlight previous user input (#2507)Faizan Alam
Co-authored-by: Allen Hutchison <[email protected]>
2025-06-26chore: fix typos in comment-out (#1540)Noritaka Kobayashi
Co-authored-by: Scott Densmore <[email protected]>
2025-06-25fix: prepublish changes to package names (#1420)Brandon Keiji
2025-06-24Truncate all strings before displaying in a tool messages to avoid stack ↵Jacob Richman
overflows (#1395)
2025-06-24Do not render mcp responses as markdown (#1388)Sandy Tao
2025-06-22Jacob314/overflow notification and one MaxSizedBox bug fix (#1288)Jacob Richman
2025-06-19Fix flicker issues by ensuring all actively changing content fits in the ↵Jacob Richman
viewport (#1217)
2025-06-17code review followup for compress command (#1097)Jacob MacDonald
Followup to https://github.com/google-gemini/gemini-cli/pull/986
2025-06-14bug: Fix code colorizer (#1046)Leo
2025-06-14Add `/compress` command to force a compression of the context (#986)Jacob MacDonald
Related to https://b.corp.google.com/issues/423605555 - I figured this might be a simpler solution to start with, while still also being useful on its own even if we do implement that.
2025-06-13Improvements to web-fetch tool (#1030)Allen Hutchison
2025-06-12remove enable editor flag (#984)Leo
2025-06-11feat: External editor settings (#882)Leo
2025-06-11add a unit test with multiple hunks for diff rendererAnas Sulaiman
2025-06-09Add Windsurf in edit tool to modify changes, if installed (#853)Eddie Santos
2025-06-09Windows: Refactor Shell Scripts to Node.js for Cross-Platform Compatibility ↵matt korwel
(#784)
2025-06-08enforce minimum lines shown/hidden (#860)Olcan
2025-06-08feat: Add flow to allow modifying edits during edit tool call (#808)Leo
2025-06-07refactor: rename gemini-code to gemini-cli (#822)cperry-goog
2025-06-05Allow themes to theme the UI (#769)Miguel Solorio
2025-06-02Color enhancements (#680)Miguel Solorio
2025-05-30Rename server->core (#638)Tommaso Sciortino
2025-05-30confirm mcp tool executions from untrusted servers (per "trust" setting) (#631)Olcan
2025-05-30disable markdown rendering of shell tool output (#625)Olcan
2025-05-30truncate (hide) tool output at the top, add some spacing, also fix shell ↵Olcan
output interval change accidentally undone in a previous commit (#619)
2025-05-28Cleanup: Remove low value StreamingContextType interface. (#585)Jacob Richman
2025-05-28Refactor: Add GeminiRespondingSpinner to make use of streamingState ↵Jacob Richman
idiomatic (#583)
2025-05-25Change tool call spinner to be different.Taylor Mullen
- This differentiates the tool calling spinner from one that matches the normal loading indiator to somethign a little more seamless.
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-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-23feat: Modify loading indicator to support a paused state (#506)Jacob Richman
2025-05-23feat: add emphasis to tool confirmations (#502)Brandon Keiji
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-20feat: Improve diff rendering with gap indicatorsTaylor Mullen
- Adds a visual indicator for skipped lines in the diff view. - Updates tests to verify gap indicator rendering. - Adjusts line number padding for better alignment. Fixes https://b.corp.google.com/issues/414453107
2025-05-18feat(cli): Introduce toggleable shell mode with enhanced UITaylor Mullen
- Implements a toggleable shell mode, removing the need to prefix every command with `!`. - Users can now enter and exit shell mode by typing `!` as the first character in an empty input prompt. - The input prompt visually indicates active shell mode with a distinct color and `! ` prefix. - Shell command history items (`user_shell`) are now visually differentiated from regular user messages. - This provides a cleaner and more streamlined user experience for frequent shell interactions. Fixes https://b.corp.google.com/issues/418509745
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-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-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-15Update color styles for yes/no questions (#369)Miguel Solorio
2025-05-15refactor: remove unused props clearItems, openThemeDialog, onSubmit (#357)Brandon Keiji
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-08UI Polish for theme selector (#294)Miguel Solorio
2025-05-06Prevent UI hang on long tool confirmations.Taylor Mullen
Problem: When a tool confirmation dialog appeared for a potentially long-running operation (e.g., `npm install`), accepting the confirmation would cause the UI to appear to hang. The confirmation dialog would remain visible, and no further UI updates would occur until the long-running task completed. This provided a poor user experience as the application seemed unresponsive. Fix: This change addresses the issue by ensuring the UI is updated to remove the confirmation dialog *before* the long-running operation begins. It also marks the tool as executing so a spinner can be shown. Fixes https://b.corp.google.com/issues/415844994 Signed, sealed, delivered, it's yours! - Gemini, your friendly neighborhood code-slinger
2025-05-02Cleanup low value comments. (#248)Jacob Richman
2025-04-27feat(cli): Improve new file diff rendering with syntax highlightingTaylor Mullen
- Enhance the component to provide better readability for newly created files. - Instead of displaying a standard line-by-line diff for new files, extract the added content and render it with syntax highlighting based on the file extension. - Refactor the existing diff rendering logic into a separate function. - Add a helper function to map common file extensions to language names for syntax highlighting. Fixes: https://b.corp.google.com/issues/414279447 Signed-off-by: Gemini, your friendly neighborhood code agent.
2025-04-26Follow up fixes from flickering PR.Taylor Mullen
- The push for these changes didn't make it through.... Just doing a quick fix here which should have been in: https://github.com/google-gemini/gemini-code/pull/181
2025-04-26feat: Fix flickering in iTerm + scrolling + performance issues.Taylor Mullen
- Refactors history display using Ink's <Static> component to prevent flickering and improve performance by rendering completed items statically. - Introduces ConsolePatcher component to capture and display console.log, console.warn, and console.error output within the Ink UI, addressing native handling issues. - Introduce a new content splitting mechanism to work better for static items. Basically when content gets too long we will now split content into multiple blocks for Gemini messages to ensure that we can statically cache larger pieces of history. Fixes: - https://b.corp.google.com/issues/411450097 - https://b.corp.google.com/issues/412716309