summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-05-30docs: Update README, CONTRIBUTING, and CLI configuration docs (#591)cperry-goog
cleaning up for now, will take another pass
2025-05-30fix(sandbox): set default env var to 'gemini-cli-sandbox' (#620)Brandon Keiji
2025-05-30feat: Implement retry with backoff for API calls (#613)N. Taylor Mullen
2025-05-30Change ReadFile to not have a result display.Taylor Mullen
- It's verbose on its own; however, if file content is truncated we'll indicate that in the result display.
2025-05-30feat(server): consolidate adjacent model content in chat historyTaylor Mullen
- Consolidates consecutive model messages into a single message in the chat history. - This prevents multiple model messages from being displayed in a row, improving readability. - This may also address some instances of 500 errors that could have been caused by multiple, rapidly succeeding model messages. - Adds tests for the new consolidation logic. Fixes https://b.corp.google.com/issues/421010429
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-30tweaks to shell abort logic based on feedback (#618)Olcan
2025-05-30use npx json instead of jq (#617)Olcan
2025-05-30allow aborting of shell mode (!) commands, similar to shell tool commands. ↵Olcan
fix bug that prevented aborts after first abort. more robust killing logic (#616)
2025-05-30update shell output at an interval to reduce flicker (#614)Olcan
2025-05-29fix: publish @gemini-code/server (#605)Brandon Keiji
2025-05-29fix(sandbox): add SHORT_SHA to image tag (#604)Brandon Keiji
2025-05-29allow comments in settings when parsed in scripts via jq (#603)Olcan
2025-05-29fix mcp tool names that are long or have invalid characters (based on 400 ↵Olcan
error) (#602)
2025-05-29fix name in package.jsonSeth Troisi
2025-05-29Refactor read-file and support images. (#480)Jacob Richman
2025-05-29fix(sandbox): use CMD for default entrypoint (#601)Brandon Keiji
2025-05-29allow writing to user cache directory on macos (fixes use of lyria mcp ↵Olcan
server [to generate songs] under seatbelt) (#600)
2025-05-29feat: Enhance web_fetch tool to process prompts with URLs using Gemini API ↵Allen Hutchison
(#587)
2025-05-29improve read-many-files output (#596)Seth Troisi
2025-05-29feat: publish root Dockerfile to our image registry (#599)Brandon Keiji
2025-05-29Change Config to use named parameters. (#593)Jacob Richman
2025-05-28refactor: Extract MCP discovery from ToolRegistryTaylor Mullen
- Moves MCP tool discovery logic from ToolRegistry into a new, dedicated MCP client (mcp-client.ts and mcp-tool.ts). - Updates ToolRegistry to utilize the new MCP client. - Adds comprehensive tests for the new MCP client and its integration with ToolRegistry. Part of https://github.com/google-gemini/gemini-cli/issues/577
2025-05-28fix(ci): Only run post_coverage_comment job on pull_request events (#588)Allen Hutchison
2025-05-28fix(cli): Support multiple @file references in atCommandProcessor (#590)Allen Hutchison
2025-05-28feat: add git branch name to footer (#589)Brandon Keiji
2025-05-28much improved support for background processes, avoiding termination (via ↵Olcan
SIGPIPE) or eventual blocking (e.g. due to filled OS buffers) (#586)
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-28Add a keybinding for ctrl+w to delete the previous word. (#582)DeWitt Clinton
Adds the following new keybindings to the cli text input buffer: - `Ctrl+W` : Delete previous word
2025-05-28Display git commit info in the /about section. (#567)DeWitt Clinton
This change detects the most recent git commit short hash and writes it to the `GIT_COMMIT_INFO` constant in `packages/cli/src/generated/git-commit.sh`, optionally appending the string "(local modifications)" if additional local changes after that commit are detected. If set, this string is displayed in the `/about` dialog as well as passed into the `/bug` template. Example: ``` > /about ╭───────────────────────────────────────────────────────────────────────────╮ │ │ │ About Gemini CLI │ │ │ │ CLI Version development │ │ Git Commit 43370ab (local modifications) │ │ Model gemini-2.5-pro-preview-05-06 │ │ Sandbox sandbox-exec (minimal) │ │ OS darwin v23.11.0 │ │ │ ╰───────────────────────────────────────────────────────────────────────────╯ ``` Additionally, this change updates `.gitignore` to ignore the generated files, `scripts/clean.sh` to remove them, and adds a `npm run generate` stage for this and any other generators we need to write.
2025-05-27feat: Allow cancellation of in-progress Gemini requests and pre-execution checksTaylor Mullen
- Implements cancellation for Gemini requests while they are actively being processed by the model. - Extends cancellation support to the logic within tools. This allows users to cancel operations during the phase where the system is determining if a tool execution requires user confirmation, which can include potentially long-running pre-flight checks or LLM-based corrections. - Underlying LLM calls for edit corrections (within and ) and next speaker checks can now also be cancelled. - Previously, cancellation of the main request was not possible until text started streaming, and pre-execution checks were not cancellable. - This change leverages the updated SDK's ability to accept an abort token and threads s throughout the request, tool execution, and pre-execution check lifecycle. Fixes https://github.com/google-gemini/gemini-cli/issues/531
2025-05-27live output from shell tool (#573)Olcan
2025-05-27fix tool cancellation while executing (#575)Olcan
2025-05-27fix: change entrypoint from 'gemini-code' to 'gemini' in published sandbox ↵Brandon Keiji
(#574)
2025-05-27refactor: use React strict mode (#569)Brandon Keiji
2025-05-27fix sandboxing anchor (#572)Olcan
2025-05-27improve shell tool output when cancelled in debug mode (#571)Olcan
2025-05-27feat: Publish test coverage summaries to PRs (#513)Allen Hutchison
2025-05-27replace error with warning if sandbox build is triggered without enabling, ↵Olcan
improve README to reduce confusion (#570)
2025-05-27fix: default to Gemini API if GEMINI_API_KEY is set and when ↵sasha-gitg
GOOGLE_GENAI_USE_VERTEXAI is set to True (#566)
2025-05-26feat: Replace SQLite with JSON logging for macOS sandbox compatibilityTaylor Mullen
- Removes the sqlite3 dependency and refactors the logging mechanism to use a JSON file (logs.json) instead of a database. - This change is a temporary workaround to address issues with macOS sandboxing that were caused by the SQLite native module. - Storing all logs in a single JSON file may introduce scalability concerns in the future. Fixes https://github.com/google-gemini/gemini-cli/issues/522
2025-05-26Fix(chat): Finalize next speaker detection logicTaylor Mullen
- Enhance `checkNextSpeaker` to handle cases where the last message is a function response or an empty model message. - If the last message is a function response, the model should speak next. - If the last message is an empty model message, the model should speak next. - This ensures more robust and accurate determination of the next speaker in the conversation, completing the fix for the issue. - Updated tests. Fixes https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26Fix(chat): Ensure model responds when next speaker check indicatesTaylor Mullen
- Corrects an issue where the `nextSpeakerCheck` would determine the model should speak next, but the models response was not properly propagated due to a missing `yield*` in a recursive call within `sendMessageStream`. - This change ensures that when the model is designated as the next speaker, its generated content is correctly unwoven and returned, allowing the conversation to proceed as expected. Part of https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26Fix(chat): Prevent empty model response after function callTaylor Mullen
- Addresses a Gemini model bug where it may return an empty content object after a function response. - Previously, the SDK attempted to inject an empty model message, which could disrupt curated history. - This change modifies our custom class to detect this scenario using an utility and avoid pushing an unnecessary empty model message, thus preserving history integrity. Workaround for https://b.corp.google.com/issues/420354090 Part of https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26Refactor(chat): Introduce custom Chat class for future modificationsTaylor Mullen
- Copied the `Chat` class from `@google/genai` into `packages/server/src/core/geminiChat.ts`. - This change is in preparation for future modifications to the chat handling logic. - Updated relevant files to use the new `GeminiChat` class. Part of https://github.com/google-gemini/gemini-cli/issues/551
2025-05-26Chore(deps): Upgrade @google/genai to v1.0.1Taylor Mullen
- Upgraded the @google/genai SDK from ^0.13.0 to ^1.0.1. - Addressed a related type error in `packages/server/src/tools/edit.test.ts` by updating a type assertion. Part of https://github.com/google-gemini/gemini-cli/issues/551
2025-05-25Fix(diff): Hide whitespace changes in diffs with content changesTaylor Mullen
- Updated the diff generation in `edit.ts` and `write-file.ts` to include the `ignoreWhitespace: true` option. - This ensures that whitespace-only changes are not highlighted in the diff output when there are other content modifications, making the diffs cleaner and easier to review. - Extract default diffing options into single source of truth. Fixes https://github.com/google-gemini/gemini-cli/issues/548
2025-05-25Fix(cli): Prevent premature input box reactivation during tool confirmationTaylor Mullen
- Introduced a 'validating' state for tool calls to prevent the input box from reappearing while waiting for a tool's `shouldConfirmExecute` method to complete. - When a tool call is initiated, it's now immediately set to a 'validating' status. This ensures the UI remains in a busy/responding state. - `useGeminiStream` now considers the 'validating' state as part of `StreamingState.Responding`. - `useToolScheduler` has been updated to: - Set the initial status of new tool calls to 'validating'. - Asynchronously perform the `shouldConfirmExecute` check. - Transition to 'awaiting_approval' or 'scheduled' based on the check's outcome. - This resolves an issue where a slow `shouldConfirmExecute` could lead to the input prompt becoming active again before the tool call lifecycle was fully determined. While 'validating' is currently treated similarly to 'executing' in the UI, this new state provides a foundation for more customized user experiences during this phase in the future. Fixes https://github.com/google-gemini/gemini-cli/issues/527
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.