From 32496d24a24821758258ebd4ad0639255bebbd65 Mon Sep 17 00:00:00 2001 From: luckyyzh Date: Fri, 31 Jul 2026 03:28:46 +0800 Subject: [PATCH] fix: canonicalize missing managed paths --- pi-web/lib/app-runtime.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pi-web/lib/app-runtime.ts b/pi-web/lib/app-runtime.ts index d7dccea..5d7e575 100644 --- a/pi-web/lib/app-runtime.ts +++ b/pi-web/lib/app-runtime.ts @@ -1,5 +1,5 @@ import { existsSync, realpathSync } from "fs"; -import { isAbsolute, relative, resolve, sep } from "path"; +import { basename, dirname, isAbsolute, relative, resolve, sep } from "path"; import { SettingsManager, type ResourceDiagnostic, @@ -64,7 +64,11 @@ export function getManagedRuntimePaths(): ManagedRuntimePaths { function canonicalPath(path: string): string { const resolved = resolve(path); - if (!existsSync(resolved)) return resolved; + if (!existsSync(resolved)) { + const parent = dirname(resolved); + if (parent === resolved) return resolved; + return resolve(canonicalPath(parent), basename(resolved)); + } try { return realpathSync.native(resolved); } catch {