summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-01-13 13:52:09 -0600
committerFrank <[email protected]>2026-01-13 19:51:01 -0500
commit4eb6b5750351762e4602454be657ae5b8f72b30b (patch)
tree9df1dc74018b7331e265582475aee52732d5c027
parent7599396162e8196535f1eb56f7fd9014c70538f0 (diff)
downloadopencode-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.tsx17
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) {