fix: robust ripgrep path resolution and 1p hermetic execution support#27253
Conversation
Summary of ChangesHello, 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 a regression in the Gemini CLI where the ripgrep binary was failing to be located across local development, 1P hermetic environments, and 3P NPM distributions. By adjusting path resolution strategies and updating security trust boundaries, the changes ensure the CLI can reliably locate the necessary binary without falling back to less efficient tools. Highlights
Using Gemini Code AssistThe 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
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 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
|
|
Size Change: +545 B (0%) Total Size: 34.1 MB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Code Review
This pull request updates the ripgrep path resolution to support different build layouts and expands the list of trusted system paths to include internal Google execution paths. Feedback suggests adding a candidate path for flattened SEA layouts where the binary resides in the same directory as the script. Additionally, it was noted that the implementation for trusted paths is missing an environment variable bypass for hermetic environments, which was mentioned in the PR description but not included in the code.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request expands the candidate search paths for the ripgrep binary to support multiple deployment layouts and introduces a bypass for hermetic environments in the system path trust check. Feedback indicates that the hermetic environment bypass is logically incomplete as it still subjects paths to the allowlist check, and unit tests for this security-sensitive logic are currently missing.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request expands the search paths for the ripgrep binary to support various deployment layouts, including flattened SEA and specific Dev/Dist structures. It also updates path validation logic to trust internal execution paths and allow CWD-based paths within hermetic environments like Bazel. Feedback was provided regarding test robustness in paths.test.ts, specifically recommending the use of beforeEach and afterEach hooks to ensure global state and environment variables are correctly restored after tests, adhering to the repository's testing conventions.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request expands the ripgrep binary resolution logic to support additional directory layouts, including flattened SEA runtimes and specific development/distribution structures. It also updates the isTrustedSystemPath utility to recognize and permit execution within hermetic environments (such as Bazel or Blaze) by checking for specific environment variables and adding internal 1P execution paths to the trusted list. Corresponding unit tests have been added to verify these new resolution paths and security bypasses. I have no feedback to provide.
🚨 Action Required: Eval Regressions DetectedModel: The following trustworthy evaluations passed on
The check passed or was cleared for 66 other trustworthy evaluations. 🛠️ Troubleshooting & Fix Instructions1. Ask Gemini CLI to fix it (Recommended)Copy and paste this prompt to the agent: 2. Reproduce LocallyRun the following command to see the failure trajectory: GEMINI_MODEL=gemini-3-flash-preview npm run test:all_evals -- evals/plan_mode.eval.ts --testNamePattern="should allow file modification in plans directory when in plan mode"3. Manual FixSee the Fixing Guide for detailed troubleshooting steps. This PR modifies files that affect the model's behavior (prompts, tools, or instructions).
This is an automated guidance message triggered by steering logic signatures. |
22d884c to
03f8507
Compare
|
LGTM |
…locks and isolated env stubs
03f8507 to
e259d40
Compare
… 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>
Summary
This PR fixes two critical regressions related to
ripgrepbinary resolution that caused the CLI to incorrectly fall back to the slowerGrepToolin local development and 1P hermetic environments.Details
ripgrepbinary when running locally because it assumed the compiled file was atdist/tools/ripGrep.jsinstead of the actualdist/src/tools/ripGrep.js. Added the correct absolute path fallback.isTrustedSystemPathto allow internal hermetic execution./google/bin,/google/src/cloud) to the POSIXtrustedPrefixesallowlist.isHermeticEnvbypass based on standard Bazel/Blaze environment variables (TEST_SRCDIR,TEST_WORKSPACE,BAZEL_TEST,RUNFILES_DIR) to prevent the sandbox CWD from being improperly blocked as an untrusted local binary.Related Issues
Addresses the 1P and Local Dev components of the
Ripgrep is not availableregression.