diff options
| author | Aiden Cline <[email protected]> | 2026-01-13 13:52:09 -0600 |
|---|---|---|
| committer | Frank <[email protected]> | 2026-01-13 19:51:01 -0500 |
| commit | 4eb6b5750351762e4602454be657ae5b8f72b30b (patch) | |
| tree | 9df1dc74018b7331e265582475aee52732d5c027 | |
| parent | 7599396162e8196535f1eb56f7fd9014c70538f0 (diff) | |
| download | opencode-4eb6b5750351762e4602454be657ae5b8f72b30b.tar.gz opencode-4eb6b5750351762e4602454be657ae5b8f72b30b.zip | |
tweak: external dir permission rendering in tui
| -rw-r--r-- | packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx index 9cde65d2e..eab2adb10 100644 --- a/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx +++ b/packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx @@ -13,15 +13,26 @@ import path from "path" import { LANGUAGE_EXTENSIONS } from "@/lsp/language" import { Keybind } from "@/util/keybind" import { Locale } from "@/util/locale" +import { Global } from "@/global" type PermissionStage = "permission" | "always" | "reject" function normalizePath(input?: string) { if (!input) return "" - if (path.isAbsolute(input)) { - return path.relative(process.cwd(), input) || "." + + const cwd = process.cwd() + const home = Global.Path.home + const absolute = path.isAbsolute(input) ? input : path.resolve(cwd, input) + const relative = path.relative(cwd, absolute) + + if (!relative) return "." + if (!relative.startsWith("..")) return relative + + // outside cwd - use ~ or absolute + if (home && (absolute === home || absolute.startsWith(home + path.sep))) { + return absolute.replace(home, "~") } - return input + return absolute } function filetype(input?: string) { |
