VS Code 1.122.0 renamed the built-in ripgrep package from @vscode/ripgrep to @vscode/ripgrep-universal and moved the binary into a platform-specific subdirectory (e.g. bin/darwin-arm64/rg). The getBinPath() function only checks the old paths, so it fails to locate the ripgrep binary on the new VS Code version. This causes two cascading failures:
Codebase indexing breaks — throws "Could not find ripgrep binary"
Chat stops working entirely — messages are sent but receive no response, stuck in an API-requesting state (the ripgrep lookup failure blocks downstream processing)
To Reproduce
Prerequisite: VS Code ≥ 1.122.0
Install Roo Code in VS Code 1.122.0
Open any project and trigger codebase indexing
Observe the "Could not find ripgrep binary" error
Send a message in the chat panel — the message is sent but no response ever comes back, stuck in an API-requesting loop
Expected behavior
The ripgrep binary should be located successfully. Codebase indexing and chat should work normally.
Root Cause
getBinPath() in src/services/ripgrep/index.ts only checks these legacy paths:
node_modules/@vscode/ripgrep/bin/
node_modules/vscode-ripgrep/bin
node_modules.asar.unpacked/vscode-ripgrep/bin/
node_modules.asar.unpacked/@vscode/ripgrep/bin/
In VS Code 1.122.0, the actual ripgrep location is:
node_modules/@vscode/ripgrep-universal/bin/{platform}-{arch}/rg
For example, on macOS ARM64: node_modules/@vscode/ripgrep-universal/bin/darwin-arm64/rg
Fix
Add the new package path check before the existing legacy paths:
(await checkPath(node_modules/@vscode/ripgrep-universal/bin/${process.platform}-${process.arch}/)) ||
The new path is checked first. If not found, it falls back to the legacy paths, maintaining full backward compatibility with older VS Code versions and VS Code-based editors (Cursor, Qoder, Kiro, etc., which still use the old package structure).
What version of Roo Code are you running
develop branch, commit 51ff82fca
Additional context
VS Code 1.122.0 was released on 2026-05-27 and is the version that introduced this change
Confirmed that Cursor, Qoder, and Kiro still use the old @vscode/ripgrep package structure and are unaffected
The fix has been verified on the Rock-Code fork — both codebase indexing and chat functionality are restored
VS Code 1.122.0 renamed the built-in ripgrep package from @vscode/ripgrep to @vscode/ripgrep-universal and moved the binary into a platform-specific subdirectory (e.g. bin/darwin-arm64/rg). The getBinPath() function only checks the old paths, so it fails to locate the ripgrep binary on the new VS Code version. This causes two cascading failures:
Codebase indexing breaks — throws "Could not find ripgrep binary"
Chat stops working entirely — messages are sent but receive no response, stuck in an API-requesting state (the ripgrep lookup failure blocks downstream processing)
To Reproduce
Prerequisite: VS Code ≥ 1.122.0
Install Roo Code in VS Code 1.122.0
Open any project and trigger codebase indexing
Observe the "Could not find ripgrep binary" error
Send a message in the chat panel — the message is sent but no response ever comes back, stuck in an API-requesting loop
Expected behavior
The ripgrep binary should be located successfully. Codebase indexing and chat should work normally.
Root Cause
getBinPath() in src/services/ripgrep/index.ts only checks these legacy paths:
node_modules/@vscode/ripgrep/bin/
node_modules/vscode-ripgrep/bin
node_modules.asar.unpacked/vscode-ripgrep/bin/
node_modules.asar.unpacked/@vscode/ripgrep/bin/
In VS Code 1.122.0, the actual ripgrep location is:
node_modules/@vscode/ripgrep-universal/bin/{platform}-{arch}/rg
For example, on macOS ARM64: node_modules/@vscode/ripgrep-universal/bin/darwin-arm64/rg
Fix
Add the new package path check before the existing legacy paths:
(await checkPath(
node_modules/@vscode/ripgrep-universal/bin/${process.platform}-${process.arch}/)) ||The new path is checked first. If not found, it falls back to the legacy paths, maintaining full backward compatibility with older VS Code versions and VS Code-based editors (Cursor, Qoder, Kiro, etc., which still use the old package structure).
What version of Roo Code are you running
develop branch, commit 51ff82fca
Additional context
VS Code 1.122.0 was released on 2026-05-27 and is the version that introduced this change
Confirmed that Cursor, Qoder, and Kiro still use the old @vscode/ripgrep package structure and are unaffected
The fix has been verified on the Rock-Code fork — both codebase indexing and chat functionality are restored