From df7296cfe16d3c2dfffb01941354173fb5f4a812 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Mon, 11 Aug 2025 08:23:41 -0500 Subject: [PATCH] fix: instructions should be able to handle absolute paths (#1762) --- packages/opencode/src/session/system.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index 2f767c12..7e5c75e6 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -74,8 +74,22 @@ export namespace SystemPrompt { paths.add(path.join(os.homedir(), ".claude", "CLAUDE.md")) if (config.instructions) { - for (const instruction of config.instructions) { - const matches = await Filesystem.globUp(instruction, cwd, root).catch(() => []) + for (let instruction of config.instructions) { + if (instruction.startsWith("~/")) { + instruction = path.join(os.homedir(), instruction.slice(2)) + } + let matches: string[] = [] + if (path.isAbsolute(instruction)) { + matches = await Array.fromAsync( + new Bun.Glob(path.basename(instruction)).scan({ + cwd: path.dirname(instruction), + absolute: true, + onlyFiles: true, + }), + ).catch(() => []) + } else { + matches = await Filesystem.globUp(instruction, cwd, root).catch(() => []) + } matches.forEach((path) => paths.add(path)) } }