Skip to content

fix(core): centralize path validation to prevent crashes from malformed prompts#27211

Merged
cocosheng-g merged 20 commits into
mainfrom
fix/issue-25972-path-validation
May 20, 2026
Merged

fix(core): centralize path validation to prevent crashes from malformed prompts#27211
cocosheng-g merged 20 commits into
mainfrom
fix/issue-25972-path-validation

Conversation

@cocosheng-g
Copy link
Copy Markdown
Contributor

@cocosheng-g cocosheng-g commented May 18, 2026

Objective

Consolidate path validation and resolution into a centralized, safe bottleneck to prevent system crashes (like ENAMETOOLONG) and improve the intelligence of @-command file attachments.

The Problem

When the Gemini model outputs logs or stack traces, the CLI's parser sometimes misinterprets these large text blocks as file paths (e.g., @FAIL tests/auth.test.ts ... [5000+ characters]).

  1. Stability: Handing these massive strings to the OS filesystem APIs causes unhandled errors that crash the CLI.
  2. UX Friction: Valuable files mentioned inside those logs are missed because the CLI tries to resolve the entire log fragment as one path.
  3. Redundancy: Path resolution logic was duplicated across acpSession.ts and atCommandProcessor.ts, leading to inconsistent behavior and redundant disk hits.

The Solution

1. Centralized Validation & Resolution Bottleneck

  • Created PathValidator in @google/gemini-cli-core to identify "malformed" paths (e.g., strings with newlines, control characters, or known log markers like AssertionError:).
  • Hardened Config.validatePathAccess to use this validator. All core tools (Grep, ReadFile, LS, etc.) are now automatically protected from malformed model output.
  • Moved the core @-command resolution logic into a shared resolveAtCommandPath utility in @google/gemini-cli-core. This centralizes filesystem operations and ensures consistent validation across different UI hooks.

2. Smart Path Recovery (Signal from Noise)

  • Implemented a "Best-Effort Path Extractor" in the resolution utility.
  • If a fragment looks like a log but contains a real file path (e.g., (src/utils/math.ts:123)), the CLI will now automatically "dig out" and attach that file. This is a huge win for debugging test failures.

3. Optimized & Robust Resolution

  • Refactored resolution to return a structured result (resolved, unauthorized, invalid, not_found), eliminating redundant fs.stat and path.resolve calls.
  • Hardened filesystem error handling using isNodeError to specifically identify ENOENT vs other critical access errors.
  • Fixed multi-workspace resolution bugs by consistently passing absolutePath to internal tools.

4. Modern Path Support & Security

  • Refined heuristics to support Next.js dynamic routes ([id]), Windows file copies ((Copy)), and user home directories with apostrophes.
  • Hardened extraction against path traversal (..) and null byte injection by relying on the central bottleneck rather than naive string stripping.

Verification Results

Automated Tests (109 Passed)

  • Core Unit: Exhaustive coverage for PathValidator and resolveAtCommandPath (Unicode, ellipses, nested wrappers, error handling, etc.).
  • Core Integration: Verified Config.validatePathAccess protection across tool suites (merged into config.test.ts).
  • CLI Unit: Verified optimized resolution and recovery logic integration in atCommandProcessor.

Manual Verification (13/13 Passed)

Verified real-world scenarios mimicking Vitest, Jest, and raw shell output, ensuring:

  • Malformed junk is safely skipped.
  • Buried paths are correctly recovered and attached.
  • Modern routing and special characters remain fully accessible.

Related Issues

Fixes #25972

How to Validate

  1. Path Validator & Utility: npm test -w @google/gemini-cli-core -- src/utils/path-validator.test.ts src/utils/atCommandUtils.test.ts
  2. Config Integration: npm test -w @google/gemini-cli-core -- src/config/config.test.ts
  3. CLI Processor: npm test -w @google/gemini-cli -- src/ui/hooks/atCommandProcessor.test.ts
  4. Manual Check: Pipe a large log file into the CLI and verify it handles @FAIL markers gracefully without crashing.

@cocosheng-g cocosheng-g requested review from a team as code owners May 18, 2026 15:53
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses potential system crashes caused by the CLI attempting to process misinterpreted prompt fragments as file paths. By implementing a centralized validation layer, the system can now gracefully reject invalid or malformed path strings before they trigger filesystem errors, significantly improving the stability of core tools and CLI command processing.

Highlights

  • New PathValidator Utility: Introduced a robust PathValidator utility to perform pre-flight checks on file paths, identifying and rejecting malformed strings, log fragments, and excessively long paths before they reach system-level calls.
  • Tool Integration: Integrated the PathValidator into core tools including GrepTool, RipGrepTool, ReadFileTool, WriteFileTool, and LSTool to ensure safe path handling during tool execution.
  • CLI Command Resolution: Added path validation to CLI at-command resolution logic in acpSession.ts and atCommandProcessor.ts to prevent crashes when processing user prompts.
  • Comprehensive Testing: Added exhaustive unit tests for the PathValidator to cover various edge cases, including log markers, stack trace fragments, and invalid character sequences.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link
Copy Markdown

🛑 Action Required: Evaluation Approval

Steering changes have been detected in this PR. To prevent regressions, a maintainer must approve the evaluation run before this PR can be merged.

Maintainers:

  1. Go to the Workflow Run Summary.
  2. Click the yellow 'Review deployments' button.
  3. Select the 'eval-gate' environment and click 'Approve'.

Once approved, the evaluation results will be posted here automatically.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a validatePath utility to sanitize file paths and prevent system-level errors or security vulnerabilities arising from untrusted model output. The validation logic is integrated across several core tools and CLI components. Reviewers suggested extending this validation to resolved paths within tool parameter validation methods for better consistency and security. Furthermore, a potential issue was identified where the new validator might incorrectly reject valid glob patterns used in the ReadManyFilesTool.

Comment thread packages/core/src/tools/edit.ts Outdated
Comment thread packages/core/src/tools/read-many-files.ts Outdated
Comment thread packages/core/src/tools/write-file.ts Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

Size Change: +6.34 kB (+0.02%)

Total Size: 33.9 MB

Filename Size Change
./bundle/chunk-4U3GCXIT.js 0 B -2.79 MB (removed) 🏆
./bundle/chunk-BTRSUU6Q.js 0 B -16.4 MB (removed) 🏆
./bundle/chunk-CRNNK5NM.js 0 B -659 kB (removed) 🏆
./bundle/chunk-NDTA5LQ7.js 0 B -19.5 kB (removed) 🏆
./bundle/chunk-T57SOHIP.js 0 B -12.5 kB (removed) 🏆
./bundle/chunk-Y7AAP7UI.js 0 B -49.2 kB (removed) 🏆
./bundle/chunk-YDW5ZD2C.js 0 B -3.77 kB (removed) 🏆
./bundle/chunk-YGFPWRHM.js 0 B -3.43 kB (removed) 🏆
./bundle/core-U5XK7UVN.js 0 B -49.4 kB (removed) 🏆
./bundle/devtoolsService-RWVEHQNW.js 0 B -28 kB (removed) 🏆
./bundle/gemini-WEUBQWVF.js 0 B -588 kB (removed) 🏆
./bundle/interactiveCli-3SWH2PJ4.js 0 B -1.3 MB (removed) 🏆
./bundle/liteRtServerManager-KLMDG4B7.js 0 B -2.08 kB (removed) 🏆
./bundle/oauth2-provider-PFRMS5GB.js 0 B -9.12 kB (removed) 🏆
./bundle/chunk-2HK6NX3B.js 12.5 kB +12.5 kB (new file) 🆕
./bundle/chunk-2K7YZZS7.js 2.79 MB +2.79 MB (new file) 🆕
./bundle/chunk-3Z4QJPIZ.js 3.43 kB +3.43 kB (new file) 🆕
./bundle/chunk-CCOIOWF2.js 3.77 kB +3.77 kB (new file) 🆕
./bundle/chunk-FE5KY7YW.js 19.5 kB +19.5 kB (new file) 🆕
./bundle/chunk-PVTYDTGS.js 49.2 kB +49.2 kB (new file) 🆕
./bundle/chunk-TQAEPCTJ.js 659 kB +659 kB (new file) 🆕
./bundle/chunk-UBXVIIWK.js 16.4 MB +16.4 MB (new file) 🆕
./bundle/core-ZVXKFC6G.js 49.5 kB +49.5 kB (new file) 🆕
./bundle/devtoolsService-LDJYY5KI.js 28 kB +28 kB (new file) 🆕
./bundle/gemini-7M4KK4TI.js 589 kB +589 kB (new file) 🆕
./bundle/interactiveCli-ARFZNUQZ.js 1.3 MB +1.3 MB (new file) 🆕
./bundle/liteRtServerManager-JXBISAX5.js 2.08 kB +2.08 kB (new file) 🆕
./bundle/oauth2-provider-JQ5O3674.js 9.12 kB +9.12 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
./bundle/bundled/third_party/index.js 8 MB 0 B
./bundle/chunk-34MYV7JD.js 2.45 kB 0 B
./bundle/chunk-5AUYMPVF.js 858 B 0 B
./bundle/chunk-5PS3AYFU.js 1.18 kB 0 B
./bundle/chunk-6HI7VNOG.js 124 kB 0 B
./bundle/chunk-DAHVX5MI.js 206 kB 0 B
./bundle/chunk-IUUIT4SU.js 56.5 kB 0 B
./bundle/chunk-TUDYL3X4.js 40.3 kB 0 B
./bundle/cleanup-5VU5MIWF.js 0 B -902 B (removed) 🏆
./bundle/devtools-V7NE4CQA.js 696 kB 0 B
./bundle/events-XB7DADIJ.js 418 B 0 B
./bundle/examples/hooks/scripts/on-start.js 188 B 0 B
./bundle/examples/mcp-server/example.js 1.43 kB 0 B
./bundle/gemini.js 5.07 kB 0 B
./bundle/getMachineId-bsd-TXG52NKR.js 1.55 kB 0 B
./bundle/getMachineId-darwin-7OE4DDZ6.js 1.55 kB 0 B
./bundle/getMachineId-linux-SHIFKOOX.js 1.34 kB 0 B
./bundle/getMachineId-unsupported-5U5DOEYY.js 1.06 kB 0 B
./bundle/getMachineId-win-6KLLGOI4.js 1.72 kB 0 B
./bundle/https-proxy-agent-AVGR4LHR.js 490 B 0 B
./bundle/multipart-parser-KPBZEGQU.js 11.7 kB 0 B
./bundle/sandbox-macos-permissive-open.sb 890 B 0 B
./bundle/sandbox-macos-permissive-proxied.sb 1.31 kB 0 B
./bundle/sandbox-macos-restrictive-open.sb 3.36 kB 0 B
./bundle/sandbox-macos-restrictive-proxied.sb 3.56 kB 0 B
./bundle/sandbox-macos-strict-open.sb 4.82 kB 0 B
./bundle/sandbox-macos-strict-proxied.sb 5.02 kB 0 B
./bundle/src-LG4OHBW7.js 233 kB 0 B
./bundle/src-QVCVGIUX.js 47 kB 0 B
./bundle/start-WMF7DK6Y.js 0 B -622 B (removed) 🏆
./bundle/tree-sitter-7U6MW5PS.js 274 kB 0 B
./bundle/tree-sitter-bash-34ZGLXVX.js 1.84 MB 0 B
./bundle/worker/worker-entry.js 361 kB 0 B
./bundle/cleanup-5POL55XJ.js 902 B +902 B (new file) 🆕
./bundle/start-QNDRRTUP.js 622 B +622 B (new file) 🆕

compressed-size-action

@cocosheng-g cocosheng-g changed the title fix(core): add path validation to prevent crashes from long or invalid paths fix(core): centralize path validation to prevent crashes from malformed prompts May 18, 2026
@cocosheng-g cocosheng-g force-pushed the fix/issue-25972-path-validation branch from f97a61f to 5f37142 Compare May 18, 2026 16:26
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

@gemini-cli gemini-cli Bot added priority/p2 Important but can be addressed in a future release. area/core Issues related to User Interface, OS Support, Core Functionality labels May 18, 2026
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution system for @-commands to prevent system-level crashes and handle misinterpreted log fragments. Key additions include a PathValidator utility in the core package and a resolveAtCommandPath helper in the CLI. Feedback from the reviewer highlights opportunities to reduce redundant operations in acpSession.ts and atCommandProcessor.ts where path resolution and validation are re-executed after the initial utility call fails. Improving the return type of the resolution helper and simplifying the fallback logic for glob searches would enhance code efficiency and clarity.

Comment thread packages/cli/src/acp/acpSession.ts Outdated
Comment thread packages/cli/src/ui/hooks/atCommandProcessor.ts Outdated
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution system for @-commands to prevent system-level issues caused by malformed paths or misinterpreted log fragments. Key changes include the addition of a PathValidator utility in packages/core and a resolveAtCommandPath utility in packages/cli, along with corresponding refactors in the session and UI layers. Review feedback identifies critical issues with the new validation heuristics, noting that the checks for log markers, brackets, and apostrophes are overly broad and will cause false positives for valid project files like Next.js dynamic routes. Additionally, the subpath detection logic in the resolution utility needs to be more robust to correctly identify directory boundaries.

Comment thread packages/core/src/utils/atCommandUtils.ts
Comment thread packages/core/src/utils/path-validator.ts Outdated
Comment thread packages/core/src/utils/path-validator.ts Outdated
Comment thread packages/core/src/utils/path-validator.ts Outdated
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a robust path validation utility to prevent system-level errors caused by untrusted model output. It adds a new path-validator module in packages/core to check for invalid characters, log fragments, and excessive path lengths. The Config class and resolveAtCommandPath utility have been updated to integrate this validation, ensuring that all paths are sanitized before use. Additionally, the PR includes comprehensive unit tests for the new validator and updates existing test mocks to support the new path resolution logic.

@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution mechanism for @-commands. It adds a new validatePath utility in packages/core to detect invalid characters, log fragments, and excessive lengths. A new resolveAtCommandPath utility in packages/cli consolidates path resolution logic across the RPC dispatcher and UI hooks, ensuring consistent workspace boundary checks and improved error handling. The changes also include comprehensive unit and integration tests for these new utilities. I have no feedback to provide as there were no review comments.

@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution framework to prevent system-level crashes and improve security. It adds a PathValidator in packages/core to detect excessively long paths, log fragments, and invalid characters, and refactors @-command resolution in packages/cli to use a new resolveAtCommandPath utility. This utility improves consistency across multi-workspace directories and permission prompts. Feedback suggests ensuring that the absolutePath is stored when files are found via glob search to avoid incorrect resolution in multi-workspace setups.

Comment thread packages/cli/src/ui/hooks/atCommandProcessor.ts
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution mechanism for @-commands to prevent system-level crashes caused by malformed paths or misinterpreted log fragments. A new validatePath utility in packages/core enforces limits on path length and checks for invalid characters and common log markers. The resolveAtCommandPath utility in packages/cli refactors path resolution logic to support multiple workspace directories and consistent authorization checks across acpSession and atCommandProcessor. Comprehensive unit and integration tests have been added to verify these improvements. I have no feedback to provide.

@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request implements a centralized path validation and resolution framework to handle @-commands more safely, specifically targeting crashes caused by misinterpreting log fragments as file paths. It introduces a validatePath utility in packages/core for pre-flight checks on path length and content, and a resolveAtCommandPath utility in packages/cli that includes logic to extract paths from noisy strings. The Session and atCommandProcessor classes have been updated to use these new utilities. Feedback was provided to improve the robustness of the path extraction logic in atCommandUtils.ts, specifically regarding the handling of nested wrapper characters and the sanitization of extracted paths against traversal and null byte injection.

Note: Security Review did not run due to the size of the PR.

Comment thread packages/cli/src/utils/atCommandUtils.ts Outdated
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution system for @-commands. It adds a PathValidator utility to check for invalid characters, log markers, and excessive lengths, alongside a resolveAtCommandPath utility that handles resolution across multiple workspace directories and performs best-effort extraction for paths found in log fragments. Existing resolution logic in acpSession.ts and atCommandProcessor.ts has been refactored to utilize these new utilities. Feedback was provided regarding the manual sanitization of path traversal and null bytes in atCommandUtils.ts, suggesting a shift toward relying on centralized validation logic to prevent potential bypasses and avoid corrupting legitimate filenames.

Comment thread packages/cli/src/utils/atCommandUtils.ts Outdated
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a centralized path validation and resolution system for @-commands to prevent crashes and improve robustness when handling untrusted model output. It adds a PathValidator in the core package to detect invalid characters, excessive lengths, and misinterpreted log fragments, while a new atCommandUtils utility in the CLI package handles path extraction from noisy strings and resolution across multiple workspace directories. Existing components like Session and atCommandProcessor have been refactored to utilize these utilities. Feedback was provided to enhance the path extraction logic by updating a regex to strip multiple trailing punctuation characters, such as ellipses, which improves the recovery rate of paths from log fragments.

Note: Security Review did not run due to the size of the PR.

Comment thread packages/cli/src/utils/atCommandUtils.ts Outdated
@cocosheng-g
Copy link
Copy Markdown
Contributor Author

/gemini review

@cocosheng-g cocosheng-g force-pushed the fix/issue-25972-path-validation branch from 9b67b18 to e1111c9 Compare May 20, 2026 16:23
@devr0306
Copy link
Copy Markdown
Contributor

devr0306 commented May 20, 2026

From /review-frontend

Code Review

This pull request effectively addresses the system-crashing issues caused by malformed @-command inputs by introducing a centralized, robust validation layer (PathValidator) and a smart path extraction utility. The test coverage is excellent, and the improvements to path resolution logic will significantly enhance the developer experience when dealing with log fragments.

However, there are a couple of architectural and error-handling improvements that need to be addressed to align with the project's strict development rules:

1. Architectural Package Boundaries (Action Required)

The newly introduced utility, packages/cli/src/utils/atCommandUtils.ts, contains filesystem operations (e.g., fs.stat).
According to the Architectural Audit guidelines:

"Non-UI logic (e.g., model orchestration, tool implementation, git/filesystem operations) MUST reside in packages/core. packages/cli should ONLY contain UI/Ink components, command-line argument parsing, and user interaction logic."

Because atCommandUtils.ts relies only on Node built-ins and core definitions (like Config and validatePath), please move this file to packages/core/src/utils/ and export it from packages/core/src/index.ts.

2. Filesystem Error Handling

In the previous implementation of atCommandProcessor.ts, errors from fs.stat were inspected using isNodeError to check specifically for ENOENT, and unexpected errors were logged as warnings.

The new resolveAtCommandPath utility catches all errors silently:

    try {
      const stats = await fs.stat(pathName);
      // ...
    } catch {
      return { status: 'not_found' };
    }

To align with the Core Guidelines:

"Handle filesystem errors gracefully using isNodeError from packages/core/src/utils/errors.ts."

Please restore the explicit error checking. If the error is an ENOENT, returning not_found is correct. For other unexpected errors (like EACCES), it should log a warning or a debug message to prevent debugging nightmares when files exist but are inaccessible for reasons other than path authorization.

Overall, a solid and much-needed feature. Once these two points are addressed, it should be ready to go!

…ed prompts

This change consolidates path validation into the central Config.validatePathAccess method. It introduces a PathValidator utility that performs pre-flight checks for length, invalid characters, and log markers. This automatically protects all tools using workspace boundary checks. Additionally, CLI-level at-command resolution is consolidated into a shared utility.

Fixes #25972
@cocosheng-g cocosheng-g force-pushed the fix/issue-25972-path-validation branch from b38c27c to 3d68862 Compare May 20, 2026 19:41
@cocosheng-g cocosheng-g enabled auto-merge May 20, 2026 19:45
@cocosheng-g cocosheng-g added this pull request to the merge queue May 20, 2026
Merged via the queue into main with commit d7384c4 May 20, 2026
31 checks passed
@cocosheng-g cocosheng-g deleted the fix/issue-25972-path-validation branch May 20, 2026 20:04
HIHACK1911 added a commit to HIHACK1911/gemini-cli that referenced this pull request May 22, 2026
… does not negatively impact users. (#1)

* fix(core): reduce default API timeout to 60s and enable retries for undici timeouts (google-gemini#26191)

* fix(core): distinguish fallback chains and fix maxAttempts for auto vs explicit model selection (google-gemini#26163)

* fix(cli): handle InvalidStream event gracefully without throwing (google-gemini#26218)

* ci(github-actions): switch to github app token and fix bot self-trigger (google-gemini#26223)

* Respect logPrompts flag for logging sensitive fields (google-gemini#26153)

Co-authored-by: David Pierce <davidapierce@google.com>
Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>

* fix: correct API key validation logic in handleApiKeySubmit (google-gemini#25453)

Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>

* fix(agent): prevent exit_plan_mode from being called via shell (google-gemini#26230)

* # Fix: Inconsistent Case-Sensitivity in GrepTool (google-gemini#26235)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>

* docs(core): add automated gemma setup guide (google-gemini#26233)

Co-authored-by: Samee Zahid <sameez@google.com>

* Allow non-https proxy urls to support container environments (google-gemini#26234)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(bot): productivity and backlog optimizations (google-gemini#26236)

* refactor(acp): delegate prompt turn processing logic to GeminiClient (google-gemini#26222)

* fix(cli): refine platform-specific undo/redo and smart bubbling for WSL (google-gemini#26202)

* fix: suppress duplicate extension warnings during startup (google-gemini#26208)

* fix(cli): use byte length instead of string length for readStdin size limits (google-gemini#26224)

* fix(ui): made shell tool header wrap on Ctrl+O (google-gemini#26229)

* Changelog for v0.41.0-preview.0 (google-gemini#26244)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* Skip binary CLI relaunch (google-gemini#26261)

* fix(cli): do not override GOOGLE_CLOUD_PROJECT in Cloud Shell when using Vertex AI (google-gemini#24455)

Co-authored-by: David Pierce <davidapierce@google.com>

* docs(cli): add skill discovery troubleshooting checklist to tutorial (google-gemini#26018)

* docs(policy-engine): link to tools reference for tool names and args (google-gemini#22081)

Co-authored-by: Aashir Javed <Aaxhirrr@users.noreply.github.com>
Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* Fix posting invalid response to a comment (google-gemini#26266)

* fix(cli): prevent informational logs from polluting json output (google-gemini#26264)

* feat(ui): added microphone and updated placeholder for voice mode (google-gemini#26270)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(cli): Add 'list' subcommand to '/commands' (google-gemini#22324)

Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Spencer <spencertang@google.com>

* fix(core): ensure tool output cleanup on session deletion for legacy files (google-gemini#26263)

* Docs: Update Agent Skills documentation  (google-gemini#22388)

Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Changelog for v0.40.0 (google-gemini#26245)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* test(acp): add missing coverage for extensions command error paths (google-gemini#25313)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix: report AgentExecutionBlocked in non-interactive programmatic modes (google-gemini#26262)

* feat(extensions): add 'delete' as an alias for /extensions uninstall (google-gemini#25660)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): silently skip GEMINI.md paths that are directories (EISDIR) (google-gemini#25662)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(ci): checkout PR branch instead of main in bot workflow (google-gemini#26289)

* fix(cli): use resolved sandbox state for auto-update check (google-gemini#26285)

* # Metrics Integrity & Standardized Reporting (BT-01) (google-gemini#26240)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>

* Add Star History section to README (google-gemini#26290)

* Add Star History section to README (google-gemini#26308)

* Remove Star History section from README (google-gemini#26309)

* test(evals): add behavioral eval for file creation and write_file tool selection (google-gemini#26292)

* feat(config): enable Gemma 4 models by default via Gemini API (google-gemini#26307)

* fix(cli): insert voice transcription at cursor position instead of ap… (google-gemini#26287)

Co-authored-by: Zheyuan <zlin252@emory.edu>

* fix(ui): fix issue with box edges (google-gemini#26148)

* fix(cli): respect .env override for GOOGLE_CLOUD_PROJECT (google-gemini#26288)

* fix(ci): robust version checking in release verification (google-gemini#26337)

* fix(cli): enable daemon relaunch in binary and bundle keytar (google-gemini#26333)

* fix(core): discourage unprompted git add . in prompt snippets (google-gemini#26220)

* feat(ui): added wave animation for voice mode (google-gemini#26284)

* fix(cli): prevent Escape from clearing input buffer (google-gemini#17083) (google-gemini#26339)

* fix(cli): undeprecate --prompt and correct positional query docs (google-gemini#26329)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Metrics updates (google-gemini#26348)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>

* fix(core): remove "System: Please continue." injection on InvalidStream events (google-gemini#26340)

* docs(policy-engine): add tool argument keys reference and shell policy cross-links (google-gemini#25292)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(cli): resolve Ghostty/raw-mode False Cancellation in oauth flow (google-gemini#25026)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): reset session-scoped state on resumption (google-gemini#26342)

* Fix bulk of remaining issues with generalist profile (google-gemini#26073)

* fix(core): make subagents aware of active approval modes (google-gemini#23608)

* fix(acp): resolve agent mode disconnect and improve mode awareness (google-gemini#26332)

* docs(sdk): add JSDoc to exported interfaces in packages/sdk/src/types.ts (google-gemini#26441)

* perf: skip redundant GEMINI.md loading in partialConfig (google-gemini#26443)

* feat(core): reinforce Inquiry constraints to prevent unauthorized changes (google-gemini#26310)

* Enhance React guidelines (google-gemini#22667)

Co-authored-by: Jacob Richman <jacob314@gmail.com>

* revert: fix(ci): robust version checking in release verification (google-gemini#26337) (google-gemini#26450)

* refactor(UI): created constants file for ThemeDialog (google-gemini#26446)

* docs: fix GitHub capitalization in releases guide (google-gemini#26379)

* fix(cli): ensure branch indicator updates in sub-directories and worktrees (google-gemini#26330)

* feat: add minimal V8 heap snapshot utility for memory diagnostics (google-gemini#26440)

* fix(hooks): preserve non-text parts in fromHookLLMRequest (google-gemini#26275)

* fix(cli): allow early stdout when config is undefined (google-gemini#26453)

* fix(cli)google-gemini#21297: clear skills consent dialog before reload (google-gemini#26431)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(cli): render LaTeX-style output as Unicode in the TUI (google-gemini#25802)

Co-authored-by: cynthialong0-0 <82900738+cynthialong0-0@users.noreply.github.com>

* fix(core): use close event instead of exit in child_process fallback (google-gemini#25695)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(voice): add privacy and compliance UX warning for Gemini Live backend (google-gemini#26454)

* feat(memory): add Auto Memory inbox flow with canonical-patch contract (google-gemini#26338)

* test(cleanup): fix temporary directory leaks in test suites (google-gemini#26217)

* feat: add ignoreLocalEnv setting and --ignore-env flag (google-gemini#2493) (google-gemini#26445)

* docs(sdk): add JSDoc to all exported interfaces and types (google-gemini#26277)

* feat(cli): improve /agents refresh logging (google-gemini#26442)

* Fix: make Dockerfile self-contained with multi-stage build (google-gemini#24277)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): filter unsupported multimodal types from tool responses (google-gemini#26352)

* fix(core): properly format markdown in AskUser tool by unescaping newlines (google-gemini#26349)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(bot): add actions spend metric script (google-gemini#26463)

* feat(cli): add /bug-memory command and auto-capture heap snapshot in /bug (google-gemini#25639)

* fix(cli): make SkillInboxDialog fit and scroll in alternate buffer (google-gemini#26455)

* Robust Scale-Safe Lifecycle Consolidation (google-gemini#26355)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>

* fix(ci): respect exempt labels when closing stale items (google-gemini#26475)

* fix(cli): use os.homedir() for home directory warning check (google-gemini#25890)

* fix(a2a-server): resolve tool approval race condition and improve status reporting (google-gemini#26479)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(cli): prevent settings dialog border clipping using maxHeight (google-gemini#26507)

* feat: allow queuing messages during compression (google-gemini#24071) (google-gemini#26506)

* fix(core): retry on ERR_STREAM_PREMATURE_CLOSE errors (google-gemini#26519)

* fix(core): Minor fixes for generalist profile. (google-gemini#26357)

* feat(core): steer model to use edit tool for surgical edits, fix a typo (google-gemini#26480)

* docs: clarify Auto Memory proposes memory updates and skills (google-gemini#26527)

* fix(core): reject numeric project IDs in GOOGLE_CLOUD_PROJECT (google-gemini#24695) (google-gemini#26532)

* fix(core): remove unsafe type assertion suppressions in error utils (google-gemini#19881)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): allow redirection in YOLO and AUTO_EDIT modes without sandboxing (google-gemini#26542)

* ci(release): build and attach unsigned macOS binaries to releases (google-gemini#26462)

* fix(core): Fix chat corruption bug in context manager. (google-gemini#26534)

* fix(cli): provide JSON output for AgentExecutionStopped in non-interactive mode (google-gemini#26504)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(evals): add shell command safety evals (google-gemini#26528)

* fix(core): handle invalid custom plans directory gracefully (google-gemini#26560)

* fix(acp): move tool explanation from thought stream to tool call content (google-gemini#26554)

* fix(a2a-server): Resolve race condition in tool completion waiting (google-gemini#26568)

* fix(cli): randomize sandbox container names (google-gemini#26014)

* fix(core): Fix hysteresis in async context management pipelines. (google-gemini#26452)

* Tighten private Auto Memory patch allowlist (google-gemini#26535)

* fix(cli): hide read-only settings scopes (google-gemini#26249)

* fix(ci): preserve executable bit for mac binaries (google-gemini#26600)

* fix(cli): improve mcp list UX in untrusted folders (google-gemini#26457)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(core): prevent silent hang during OAuth auth on headless Linux (google-gemini#26571)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>

* Changelog for v0.42.0-preview.0 (google-gemini#26537)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* ci: fix Argument list too long in triage workflows (google-gemini#26603)

* refactor(cli): migrate core tools to native ToolDisplay property and fix UI rendering (google-gemini#25186)

* don't wrap args unnecessarily (google-gemini#26599)

* fix(core): preserve system PATH in Git environment to fix ENOENT (google-gemini#25034) (google-gemini#26587)

* fix(routing): fix resolveClassifierModel argument mismatch in ApprovalModeStrategy (google-gemini#26658)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* docs: add vi mode shortcuts and clarify MCP/custom sandbox setup (google-gemini#23853)

Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* fix(ux): fixed issue with transcribed text not showing after releasing space (google-gemini#26609)

* ci: fix json parsing in scheduled triage workflow (google-gemini#26656)

* fix(cli): hide /memory add subcommand when memoryV2 is enabled (google-gemini#26605)

* fix: prevent false command conflicts when launching from home directory (google-gemini#23069)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): cache model routing decision in LocalAgentExecutor (google-gemini#26548)

* Changelog for v0.42.0-preview.2 (google-gemini#26597)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* skip broken test (google-gemini#26705)

* feat: export session to file and import via flag (google-gemini#26514)

* Feat: Add Machine Hostname to CLI interface (google-gemini#25637)

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* docs(extensions): refactor releasing guide and add update mechanisms (google-gemini#26595)

* fix(ci): fix maintainer identification in lifecycle manager (google-gemini#26706)

* fix(ui): added quotes around session id in resume tip (google-gemini#26669)

* Changelog for v0.41.0 (google-gemini#26670)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* refactor(core): agent session protocol changes (google-gemini#26661)

* fix(context): implement loose boundary policy for gc backstop. (google-gemini#26594)

* fix(core): throw explicit error on dropped tool responses (google-gemini#26668)

* fix: resolve "function response turn must come immediately after function call" error (google-gemini#26691)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): resolve parallel tool call streaming ID collision (google-gemini#26646)

* feat(core): add LocalSubagentProtocol behind AgentProtocol (google-gemini#25302)

* fix(cli): remove noisy theme registration logs from terminal (google-gemini#25858)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>

* ci: implement codebase-aware effort level triage (google-gemini#26666)

* feat(acp/core): prefix tool call IDs with tool names to support tool rendering in ACP compliant IDEs. (google-gemini#26676)

* fix(mcp): treat GET 404 as 405 in StreamableHTTPClientTransport (google-gemini#24847)

Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Spencer <spencertang@google.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(core): add RemoteSubagentProtocol behind AgentProtocol (google-gemini#25303)

* feat(context): Improvements to the snapshotter. (google-gemini#26655)

* fix(context): Change snapshotter model config. (google-gemini#26745)

* fix(cli): allow installing extensions from ssh repo (google-gemini#26274)

Signed-off-by: Daniel Finimundi <danielrf@motorola.com>
Co-authored-by: Dev Randalpura <devrandalpura@google.com>

* fix(cli): prevent duplicate SessionStart systemMessage render (google-gemini#25827)

Co-authored-by: Jacob Richman <jacob314@gmail.com>

* fix(cli/acp): prevent infinite thought loop in ACP mode by disablig nextSpeakerCheck (google-gemini#26874)

* fix(cli): use static tool name in confirmation prompt to avoid parsing errors (google-gemini#26866)

* fix(routing): Refactor tool turn handling for the conversation history in NumericalClassifierStrategy to prevent 400 Bad Request (google-gemini#26761)

* fix(core): handle malformed projects.json in ProjectRegistry (google-gemini#26885)

* fix(ui): added a gutter width to the input prompt width calculation (google-gemini#26882)

* fix: prevent EISDIR crash when customIgnoreFilePaths contains directories (google-gemini#19868) (google-gemini#19898)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* revert 6b9b778 (google-gemini#26893)

* Fix/vscode run current file ts (google-gemini#22894)

Co-authored-by: Spencer <spencertang@google.com>

* Allow Enter to select session while in search mode in /resume (google-gemini#21523)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): ignore .pak and .rpa game archive formats by default (google-gemini#26884)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(cli): enable adk non-interactive session (google-gemini#26895)

* fix(cli): restore resume for legacy sessions (google-gemini#26577)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix: respect explicit model selection after Flash quota exhaustion (google-gemini#26759) (google-gemini#26872)

* feat(context): Introduce adaptive token calculator to more accurately calculate content sizes. (google-gemini#26888)

* chore: update checkout action configuration in workflows (google-gemini#26897)

* fix (telemetry): inject quota_project_id to prevent fallback to default oauth client (google-gemini#26698)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* Exclude extension context from skill extraction agent (google-gemini#26879)

* Enable NumericalRouter when using dynamic model configs (google-gemini#26929)

* ci: actively triage missing priority labels and intelligently clean up conflicting labels (google-gemini#26865)

* refactor(core): introduce SubagentState enum for progress (google-gemini#26934)

* fix(ci): replace brittle --no-tag with explicit staging-tmp tag (google-gemini#26940)

* Incremental refactor repo agent towards skills-based composition (google-gemini#26717)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(ui): fixed line wrap padding for selection lists (google-gemini#26944)

* fix(core): update read_file schema for v1 compatibility (google-gemini#22183) (google-gemini#26922)

* fix(ci): configure git remote with token for authentication (google-gemini#26949)

* chore(release): bump version to 0.44.0-nightly.20260512.g022e8baef (google-gemini#26957)

* Changelog for v0.42.0 (google-gemini#26958)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* Refactor: Eliminate `no-unsafe-return` suppressions via strict type validation (google-gemini#20668)

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* Changelog for v0.43.0-preview.0 (google-gemini#26959)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* feat(core): change agent registration to first-wins and prioritize project (google-gemini#26953)

* feat(cli): merge Auto modes into a single Auto mode (google-gemini#26714)

* fix(core): preserve OAuth refresh tokens during rotation and retrieval (google-gemini#26924)

* fix(cli): allow keychain auth for --list-sessions and non-interactive mode (google-gemini#26921)

* fix(core): handle EISDIR on virtual drives in memory discovery (google-gemini#26985)

* fix(cli): auto-approve shell redirections in AUTO_EDIT mode (google-gemini#27003)

* ci: suppress bot comments during standard triage maintenance (google-gemini#27006)

* fix(core): isolate subagent thread context (google-gemini#26449)

* fix(core): refresh MCP OAuth token usage after re-auth (google-gemini#26312)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(ui): clamped table column widths (google-gemini#26991)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* chore: add execution permission to scripts/review.sh (google-gemini#27009)

* fix(core): made context files append instead of replace (google-gemini#26950)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix: add system PATH fallback for ripgrep resolution (google-gemini#26777) (google-gemini#26868)

* chore: clean up launched memory features (google-gemini#26941)

Co-authored-by: Jenna Inouye <jinouye@google.com>

* fix(core): throttle shell text output and bound live UI buffer (google-gemini#26955)

* fix(cli): don't crash when an @-mention captures a non-path blob (google-gemini#25980)

* fix(core): ensure stable fallback for restricted preview models (google-gemini#26999)

* feat(core): expose RAG snippets to local log file for debugging (google-gemini#27016)

* fix(acp/auth): prevent conflicting credentials on enterprise gateways and support optional API keys natively (google-gemini#27021)

* fix(core): respect NO_PROXY for network-based MCP servers (google-gemini#27012)

* fix(cli): resolve permission denied in sandbox on NixOS and other distros (google-gemini#27004)

* fix(ui): preserve new line at the end of edit window (google-gemini#27057)

* fix(core): ensure Vertex AI sets hasAccessToPreviewModels and remove aggressive 404 fallback revocation (google-gemini#27067)

* fix(core): ensure stable admin settings comparison across IPC to prevent restart loop (google-gemini#27066)

* fix(deps): update vulnerable dependencies (google-gemini#27062)

* fix(core): resolve EISDIR errors during file processing (google-gemini#21527) (google-gemini#27041)

* docs(extensions): clarify env var sanitization policy for MCP and ext… (google-gemini#22854)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
Co-authored-by: Jenna Inouye <jinouye@google.com>

* fix(ui): add ENAMETOOLONG and ENOTDIR to exceptions for file parsing errors (google-gemini#27069)

* fix(cli): explicitly clear entrypoint when spawning sandbox container (google-gemini#27059)

* docs: update sandbox image command (google-gemini#26774)

* fix(core): externalize https-proxy-agent to fix proxy support (google-gemini#26361)

* security: update dependencies to fix critical and high vulnerabilities (google-gemini#27077)

* Fix/web fetch ctrl c abort (google-gemini#24320)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(core): add aliases and thinking config for gemini-3.1 models (google-gemini#27007)

* fix(core): use hasAccessToPreview for auto model resolution and fix disappearing models (google-gemini#27112)

* feat(core): add adk.agentSessionSubagentEnabled flag (google-gemini#26947)

* fix(core): enforce compile-time exhaustiveness in content-utils (google-gemini#27207)

* feat(skills): add agent-tui and tui-tester skills (google-gemini#27121)

* fix(context): Fix snapshot recovery across sessions. (google-gemini#26939)

* fix(core): add unit tests for stableStringify (google-gemini#27212)

* fix(core): prefer pwsh.exe over Windows PowerShell 5.1 (google-gemini#25859) (google-gemini#25900)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(core): add LocalSessionInvocation (google-gemini#26665)

* refactor: decouple auto model description and configuration from releaseChannel (google-gemini#27227)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): prevent isBinary false-positive on Windows PTY streams (google-gemini#26565)

* fix(cli): Prevent unmapped keys in Vim Normal mode from inserting text into prompt Input. (google-gemini#25139)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(a2a-server): Implement default policy loading for parity with CLI (google-gemini#27073)

* feat(core): add RemoteSessionInvocation (google-gemini#26937)

* fix: allow configured MCP servers in non-interactive mode (google-gemini#27215)

* fix(core): add exception handling to migrateFromFileStorage (google-gemini#27229)

* fix(cli): bundle ink worker-entry.js (google-gemini#27249)

* feat(core): wire AgentSession invocations into agent-tool (google-gemini#26948)

* fix(core): prevent path traversal in custome command file injection (google-gemini#27234)

* fix(core): respect NO_PROXY in global fetch dispatcher (google-gemini#27216)

* fix(core): correctly handle nullable array types in MCP tools (google-gemini#27228)

* Proposal: deterministic encoding for child-process I/O (google-gemini#27247)

* fix(cli): preserve proxy-agent named exports in ESM bundle (google-gemini#27145)

* feat(cli): add Sublime Text and Emacs Client editors, improve error messages and documentation (google-gemini#21090)

Co-authored-by: Ananth Kini <ananthkini1@gmail.com>

* Changelog for v0.43.0-preview.1 (google-gemini#27297)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* fix(devtools): bundle devtools package to avoid resolution errors (google-gemini#27250)

* fix(cli): integrate PolicyEngine into ACP session to prevent deadlocks (google-gemini#23507) (google-gemini#27252)

* fix: robust ripgrep path resolution and 1p hermetic execution support (google-gemini#27253)

* refactor: decouple stored session deletion from ChatRecordingService (google-gemini#22920) (google-gemini#27039)

* fix(core): improve Alpine shell compatibility (google-gemini#26770)

* fix(core): generalize MCP compliance fix for tool results (google-gemini#27045)

* fix(scripts): scrub CI env vars in dev to keep interactive mode (google-gemini#27159)

* fix(core): Added date field for the GCal MCP (google-gemini#27251)

* fix(core): centralize path validation to prevent crashes from malformed prompts (google-gemini#27211)

* fix(core): prevent SIGHUP kills in PTY environments (WSL2/Kitty/Alacritty) (google-gemini#27267)

* fix(core): dynamic fallback routing for exhausted quota models (google-gemini#27315)

* Auto detect pnpm global installation path for macOS and Windows (google-gemini#22748)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Coco Sheng <cocosheng@google.com>

* fix(windows): resolve interactive shell arrow-key navigation on Windows (google-gemini#23505)

* ci: robust stale issue lifecycle and consolidated triage labels (google-gemini#27015)

* fix(context): Ensure last message is processed. (google-gemini#27232)

* chore/release: bump version to 0.44.0-nightly.20260521.g57c42a5c4 (google-gemini#27324)

* fix(ui): added volta to auto update check (google-gemini#27353)

* perf: optimize issue triage and lifecycle management (google-gemini#27346)

---------

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Signed-off-by: Daniel Finimundi <danielrf@motorola.com>
Co-authored-by: Adib234 <30782825+Adib234@users.noreply.github.com>
Co-authored-by: Adam Weidman <65992621+adamfweidman@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>
Co-authored-by: lp-peg <35035802+lp-peg@users.noreply.github.com>
Co-authored-by: David Pierce <davidapierce@google.com>
Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>
Co-authored-by: Martin <martin.hsu.test@gmail.com>
Co-authored-by: Abhijit Balaji <abhijitbalaji@google.com>
Co-authored-by: gemini-cli[bot] <218312386+gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Samee Zahid <sameescouser24@gmail.com>
Co-authored-by: Samee Zahid <sameez@google.com>
Co-authored-by: Stephen Eckels <stevemk14ebr@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
Co-authored-by: Sri Pasumarthi <111310667+sripasg@users.noreply.github.com>
Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Dev Randalpura <devrandalpura@google.com>
Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>
Co-authored-by: ruomeng <ruomeng@google.com>
Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
Co-authored-by: Paolo Menichetti <74872147+pmenic@users.noreply.github.com>
Co-authored-by: Aashir Javed <150792417+Aaxhirrr@users.noreply.github.com>
Co-authored-by: Aashir Javed <Aaxhirrr@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: JunYoung Ka <82663161+Jwhyee@users.noreply.github.com>
Co-authored-by: Spencer <spencertang@google.com>
Co-authored-by: Jenna Inouye <jinouye@google.com>
Co-authored-by: Sahil Kirad <167863755+sahilkirad@users.noreply.github.com>
Co-authored-by: Bryan Morgan <bryanmorgan@google.com>
Co-authored-by: AK <akhilbussiness@gmail.com>
Co-authored-by: Zheyuan Lin <137805563+Zheyuan-Lin@users.noreply.github.com>
Co-authored-by: Zheyuan <zlin252@emory.edu>
Co-authored-by: Sandy Tao <sandytao520@icloud.com>
Co-authored-by: Harsh Pujari <42710594+harshpujari@users.noreply.github.com>
Co-authored-by: Aarchi Kumari <aarchikumari07052@gmail.com>
Co-authored-by: joshualitt <joshualitt@google.com>
Co-authored-by: Pyush Sinha <pyushsinha20@gmail.com>
Co-authored-by: Jacob Richman <jacob314@gmail.com>
Co-authored-by: Sense_wang <167664334+haosenwang1018@users.noreply.github.com>
Co-authored-by: Manav Sharma <123449950+manavmax@users.noreply.github.com>
Co-authored-by: Aryan Singh <146713101+dimssu@users.noreply.github.com>
Co-authored-by: cynthialong0-0 <82900738+cynthialong0-0@users.noreply.github.com>
Co-authored-by: Aryan Kumar <154001177+tusaryan@users.noreply.github.com>
Co-authored-by: ANDI FAUZAN HEDIANTORO <144610468+fauzan171@users.noreply.github.com>
Co-authored-by: Horizon_Architect_07 <famousrajbhatt@gmail.com>
Co-authored-by: Aishanee Shah <aishaneeshah@google.com>
Co-authored-by: Anjaligarhwal <anjaligarhwal1610@gmail.com>
Co-authored-by: Tirth Naik <naik.ti@northeastern.edu>
Co-authored-by: Keith Schaab <keith.schaab@gmail.com>
Co-authored-by: Himanshu Kumar <77563702+himanshu748@users.noreply.github.com>
Co-authored-by: Kartik <85060731+Kkartik14@users.noreply.github.com>
Co-authored-by: Christian Van <113378434+cvan20191@users.noreply.github.com>
Co-authored-by: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
Co-authored-by: Michael Bleigh <mbleigh@mbleigh.com>
Co-authored-by: Daniel Weis <danielweis@users.noreply.github.com>
Co-authored-by: Christopher Thomas <cobekgn@gmail.com>
Co-authored-by: Br1an <932039080@qq.com>
Co-authored-by: mahadevan <135952571+M-DEV-1@users.noreply.github.com>
Co-authored-by: JAYADITYA <96861162+JayadityaGit@users.noreply.github.com>
Co-authored-by: krishdef7 <157892833+krishdef7@users.noreply.github.com>
Co-authored-by: Daniel Finimundi <daniel@finimundi.com>
Co-authored-by: Suhaan Raqeeb Khavas <suhaanrk73@gmail.com>
Co-authored-by: Neil Nair <65729206+Neil-N4@users.noreply.github.com>
Co-authored-by: Franco Pieri <geo22therm@gmail.com>
Co-authored-by: Eswar809 <deevieswar44@gmail.com>
Co-authored-by: Kuroda Kayn <kurodakayn@outlook.com>
Co-authored-by: Yulong Wu <50110323+TNTCompany@users.noreply.github.com>
Co-authored-by: kevinjwang1 <kevinjwang@google.com>
Co-authored-by: EMERSON BUSSON <93008583+emersonbusson@users.noreply.github.com>
Co-authored-by: ifitisit <90478348+ifitisit@users.noreply.github.com>
Co-authored-by: PROTHAM <155388736+ProthamD@users.noreply.github.com>
Co-authored-by: 7. Sun <jhao.sun@gmail.com>
Co-authored-by: sotokisehiro <101786086+sotokisehiro@users.noreply.github.com>
Co-authored-by: Anish Sabharwal <anishs1207@gmail.com>
Co-authored-by: kaluchi <kaluchi@gmail.com>
Co-authored-by: Rajesh patel <145205731+Rajeshpatel07@users.noreply.github.com>
Co-authored-by: Ramón Medrano Llamas <45878745+rmedranollamas@users.noreply.github.com>
Co-authored-by: Om Patel <ompatel.aiml@gmail.com>
Co-authored-by: ashishch432 <55024632+ashishch432@users.noreply.github.com>
Co-authored-by: Andrea Alberti <a.alberti82@gmail.com>
Co-authored-by: Ananth Kini <ananthkini1@gmail.com>
Co-authored-by: Yuvraj Angad Singh <36276913+yuvrajangadsingh@users.noreply.github.com>
Co-authored-by: Debasish <90102437+dibyx@users.noreply.github.com>
Co-authored-by: Hashaam Zahid <68606886+Hashaam101@users.noreply.github.com>
Co-authored-by: tison <wander4096@gmail.com>
Co-authored-by: adithya32 <163162210+KumarADITHYA123@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core Issues related to User Interface, OS Support, Core Functionality priority/p2 Important but can be addressed in a future release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cli breaks on certain prompts which contain code logs

3 participants