summaryrefslogtreecommitdiff
path: root/packages/server/src
AgeCommit message (Collapse)Author
2025-05-30Rename server->core (#638)Tommaso Sciortino
2025-05-30use json block for mcp tool output (and re-enable markdown rendering) (#635)Olcan
2025-05-30confirm mcp tool executions from untrusted servers (per "trust" setting) (#631)Olcan
2025-05-30feat: add --show_memory_usage flag to display memory usage in status bar (#606)Jacob Richman
2025-05-30disable markdown for discovered (mcp) tools (#630)Olcan
2025-05-30add flags for markdown rendering and live updating to Tool to avoid ↵Olcan
special-casing shell tool by name, and open door for other tools to specify their rendering/updating (#629)
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-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 mcp tool names that are long or have invalid characters (based on 400 ↵Olcan
error) (#602)
2025-05-29Refactor read-file and support images. (#480)Jacob Richman
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-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-28much improved support for background processes, avoiding termination (via ↵Olcan
SIGPIPE) or eventual blocking (e.g. due to filled OS buffers) (#586)
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-27improve shell tool output when cancelled in debug mode (#571)Olcan
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(test): Improve write-file and editCorrector test suitesTaylor Mullen
- Enhanced by: - Mocking and utilities (, ) to allow for more focused unit testing of . - Adding comprehensive tests for the private method, covering new and existing file scenarios, as well as error handling. - Expanding tests for and to verify behavior with the new content correction logic, including diff generation and directory creation. - Refined by: - Introducing robust mocking for and its methods (, , ) to simulate LLM interactions accurately. - Adding extensive test scenarios for , categorized by how matches and how is processed, including direct matches, unescaping, and LLM-based corrections. - Including tests for edge cases like no matches or multiple matches. - Adding a utility for better test isolation. Final fix for https://github.com/google-gemini/gemini-cli/issues/484
2025-05-25Fix(write-file): Correct over-escaping and improve content generationTaylor Mullen
- Leveraged existing edit correction technology from `edit.ts` to address over-escaping issues in `write-file.ts`. - Introduced `ensureCorrectFileContent` for correcting content in new files, where a simple "replace" isnt applicable. This uses a new LLM prompt tailored for correcting potentially problematic string escaping. - Added caching for `ensureCorrectFileContent` to optimize performance. - Refactored `write-file.ts` to integrate these corrections, improving the reliability of file content generation and modification. Part of https://github.com/google-gemini/gemini-cli/issues/484
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-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-23fix: do not retry cancelled tool calls (#504)Brandon Keiji
2025-05-23Mention Kotlin & Compose (Mutliplatform) in prompt.tsJordan Demeulenaere
2025-05-23Refactor(server): Centralize GEMINI.md discovery logic in server (#498)Allen Hutchison
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-22Fix: Prevent hang in large directories by using BFS for getFolderStru… (#470)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-22fix: synchronization between executed tools and turn loops (#488)Brandon Keiji