feat: bundle ripgrep binaries into SEA for offline support#25342
feat: bundle ripgrep binaries into SEA for offline support#25342
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 enables offline support for the Gemini CLI by bundling native ripgrep binaries directly into the Single Executable Application (SEA). This change removes the runtime dependency on downloading ripgrep, ensuring the CLI remains functional in air-gapped or restricted network environments. 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 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 counter productive. 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: -538 kB (-1.58%) Total Size: 33.6 MB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Code Review
This pull request replaces the runtime downloading of ripgrep with bundled, pre-built binaries for supported platforms and architectures. It removes the @joshua.litt/get-ripgrep dependency, adds a script to manage vendor binaries, and updates the RipGrepTool and build configuration to utilize these local assets. I have no feedback to provide.
|
✅ 59 tests passed successfully on gemini-3-flash-preview. 🧠 Model Steering GuidanceThis PR modifies files that affect the model's behavior (prompts, tools, or instructions).
This is an automated guidance message triggered by steering logic signatures. |
| @@ -0,0 +1,138 @@ | |||
| /** | |||
| * @license | |||
There was a problem hiding this comment.
nit: maybe convert this to typescript for easier maintainability going forward.

Summary
This PR bundles
ripgrepnative binaries directly into the Gemini CLI's Single Executable Application (SEA).Details
ripgrepbinaries for the 5 major architectures (Linux x64/arm64, macOS x64/arm64, Windows x64) are now checked intopackages/core/vendor/ripgrep.scripts/copy_bundle_assets.jsto ensure the vendor directory is included in thebundle/folder during the SEA build process.packages/core/src/tools/ripGrep.tsto asynchronously check multiple potential paths for thergexecutable, supporting both local development and the flattened SEA runtime environment.scripts/download-ripgrep-binaries.jswith proper Apache license headers and documentation to allow maintainers to easily update the checked-in binaries.Related Issues
Replaces and fixes #25332
How to Validate
packages/core/vendor/ripgrepand then runnode scripts/download-ripgrep-binaries.jsto verify the maintainer script correctly fetches all 5 architectures.node scripts/build_binary.jsto generate a native SEA executable.Ripgrep is not available. Falling back to GrepTool.Pre-Merge Checklist