Browse Source

fix(opencode): preserve grep symlink paths (#38581)

Co-authored-by: Zach Bruggeman <zbruggeman@ramp.com>
Zach Bruggeman 1 month ago
parent
commit
e63996919b
2 changed files with 6 additions and 1 deletions
  1. 4 1
      packages/opencode/src/tool/grep.ts
  2. 2 0
      packages/opencode/test/tool/grep.test.ts

+ 4 - 1
packages/opencode/src/tool/grep.ts

@@ -69,7 +69,10 @@ export const GrepTool = Tool.define(
           if (result.length === 0) return empty
 
           const rows = result.map((item) => ({
-            path: path.resolve(cwd, item.entry.path),
+            path: path.resolve(
+              requestedInfo?.type === "Directory" ? requested : path.dirname(requested),
+              item.entry.path,
+            ),
             line: item.line,
             text: item.text,
           }))

+ 2 - 0
packages/opencode/test/tool/grep.test.ts

@@ -215,6 +215,8 @@ describe("tool.grep", () => {
       )
 
       expect(result.metadata.matches).toBe(1)
+      expect(result.output).toContain(path.join(alias, "test.txt"))
+      expect(result.output).not.toContain(path.join(real, "test.txt"))
       expect(requests.find((req) => req.permission === "external_directory")).toBeUndefined()
     }),
   )