Răsfoiți Sursa

tweak: external dir permission rendering in tui

Aiden Cline 3 luni în urmă
părinte
comite
33ba064c40

+ 14 - 3
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) {