From d5738f542c222bb5832a21f54e8348db88a3f7ba Mon Sep 17 00:00:00 2001 From: Kenny Date: Sat, 10 Jan 2026 11:57:18 -0500 Subject: [PATCH] fix(grep): follow symlinks by default in ripgrep searches (#7501) --- packages/opencode/src/file/ripgrep.ts | 9 ++++++++- packages/opencode/src/tool/grep.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts index 841f5f305..834cbee1e 100644 --- a/packages/opencode/src/file/ripgrep.ts +++ b/packages/opencode/src/file/ripgrep.ts @@ -367,8 +367,15 @@ export namespace Ripgrep { return lines.join("\n") } - export async function search(input: { cwd: string; pattern: string; glob?: string[]; limit?: number }) { + export async function search(input: { + cwd: string + pattern: string + glob?: string[] + limit?: number + follow?: boolean + }) { const args = [`${await filepath()}`, "--json", "--hidden", "--glob='!.git/*'"] + if (input.follow !== false) args.push("--follow") if (input.glob) { for (const g of input.glob) { diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index 4cbc5347f..b7cba1674 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -33,7 +33,7 @@ export const GrepTool = Tool.define("grep", { const searchPath = params.path || Instance.directory const rgPath = await Ripgrep.filepath() - const args = ["-nH", "--field-match-separator=|", "--regexp", params.pattern] + const args = ["-nH", "--hidden", "--follow", "--field-match-separator=|", "--regexp", params.pattern] if (params.include) { args.push("--glob", params.include) }