summaryrefslogtreecommitdiff
path: root/packages/server/src/core
AgeCommit message (Collapse)Author
2025-05-30Rename server->core (#638)Tommaso Sciortino
2025-05-30feat: Implement retry with backoff for API calls (#613)N. Taylor Mullen
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-29Refactor read-file and support images. (#480)Jacob Richman
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-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): 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-23fix: do not retry cancelled tool calls (#504)Brandon Keiji
2025-05-23Mention Kotlin & Compose (Mutliplatform) in prompt.tsJordan Demeulenaere
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: synchronization between executed tools and turn loops (#488)Brandon Keiji
2025-05-21feat: Update feedback mechanism to use /bug commandTaylor Mullen
- Replaces the previous email-based feedback with a /bug command in the system prompt.
2025-05-21feat: useToolScheduler hook to manage parallel tool calls (#448)Brandon Keiji
2025-05-21Add Logger for command history (#435)Seth Troisi
2025-05-20Support Images and PDFs (#447)Jacob Richman
2025-05-19indicate system prompt override on bottom right; require GEMINI_SYSTEM_MD to ↵Olcan
make it more explicit; allow custom paths for read/write (#427)
2025-05-19trim system prompt (#426)Olcan
2025-05-17ability to write system prompt to file (#414)Olcan
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-16feat: Implement CLI and model memory management (#371)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-16feat: Add support for Vertex AI and Vertex express mode (#380)sasha-gitg
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-13mention `git diff --staged` for partial commits (#336)Olcan
2025-05-13use git diff HEAD instead of git diff && git diff --staged (#333)Olcan
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
2025-05-12ensure no 'undefined' in system prompt (#322)Olcan
2025-05-12system prompt for working with git (#321)Olcan
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-10Log server information on error.Taylor Mullen
- The goal of this is to enable us to better diagnose server issues when they occur. - Added tests because why not.
2025-05-10Don't prematurely end convo w/ Gemini.Taylor Mullen
- There seems to be a root model bug where the model will preemptively bail on conversations without trying harder. Typically the stops are VERY obvious and bug-looking where you need to prmopt the model to "continue". - This PR attempts to fix the above by running a 2.0-flash request (don't need somethign more powerful) at the end of every full interaction to see who should speak (user or model). - Add tests for nextSpeakerChecker Fixes https://b.corp.google.com/issues/416826051
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-09sandbox/seatbelt-aware system prompt, support for custom seatbelt profiles ↵Olcan
under project settings (#304)
2025-05-07Continue to work through 429/500s.Taylor Mullen
- The root of this issue was actually a genai SDK bug that was fixed here: https://critique.corp.google.com/cl/753255997 - Upgrade to latest genai SDK for latest bug fixes (including the above) - Removed specific 429 handling for uncaught rejections. Fixes https://b.corp.google.com/issues/413760164
2025-05-06fix: use flat config for react eslint plugin (#265)Brandon Keiji
2025-05-05Add vibe coding instructions for 0->game.Taylor Mullen
- Prior to this GC would attempt to utilize React components as game assets (instead of using canvas) + would fail to deal with placeholder assets effectively. Part of https://b.corp.google.com/issues/413718497
2025-05-02Cleanup low value comments. (#248)Jacob Richman
2025-05-02Use parameter properties where possible. (#242)Jacob Richman
2025-04-28switch to shell tool, deprecating terminal (#203)Olcan
* switch to shell tool, deprecating terminal * Merge remote-tracking branch 'origin/main' into deprecate_terminal
2025-04-27Refactor: Update core system prompt with new application workflow and ↵Taylor Mullen
improved structure - Refine agent persona from 'assistant' to 'agent'. - Restructure prompt into distinct 'Software Engineering Tasks' and 'New Application' workflows. - Add detailed steps and tool usage guidance for creating new applications. - Improve clarity and formatting of prompt instructions. Part of https://b.corp.google.com/issues/413718497 Signed-off-by: Gemini, your friendly neighborhood code agent.
2025-04-26Prevent console.warn's for tool calls.Taylor Mullen
- Added helper for extracting text content from responses without warning. See fixed issue for more detail: https://b.corp.google.com/issues/414005146
2025-04-24Adding a full_context command line argument. (#158)Allen Hutchison
* Adding a full_context command line argument. * Update packages/cli/src/config/config.ts Co-authored-by: N. Taylor Mullen <[email protected]> * lint fix. --------- Co-authored-by: N. Taylor Mullen <[email protected]>