From 1f48145b25e858a59c2e4712538fb1076c6ba3b3 Mon Sep 17 00:00:00 2001 From: LukeParkerDev <10430890+Hona@users.noreply.github.com> Date: Sun, 7 Jun 2026 18:51:19 +1000 Subject: [PATCH] fix(desktop): support UNC picker containment --- packages/app/src/components/directory-picker-domain.test.ts | 4 ++++ packages/app/src/components/directory-picker-domain.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/directory-picker-domain.test.ts b/packages/app/src/components/directory-picker-domain.test.ts index ed9f5917db9..d7d4bf37cb7 100644 --- a/packages/app/src/components/directory-picker-domain.test.ts +++ b/packages/app/src/components/directory-picker-domain.test.ts @@ -76,6 +76,10 @@ test("accepts mutations only from the active navigation", () => { test("preserves POSIX case while matching Windows drives case-insensitively", () => { expect(treePathWithin("/repo", "/Repo")).toBeFalse() expect(treePathWithin("C:/Repo", "c:/repo/src")).toBeTrue() + expect(treePathWithin("//Server/Share/Repo", "//server/share/repo/src")).toBeTrue() + expect(pickerMode("file", "//Server/Share/Repo").selection("//server/share/repo/src", "file.ts")).toBe( + "src/file.ts", + ) expect(treePathWithin("/repo", "/repo/../tmp")).toBeFalse() expect(treePathWithin("/", "/src")).toBeTrue() expect(pickerMode("file", "C:/Repo").selection("c:/repo/src", "file.ts")).toBe("src/file.ts") diff --git a/packages/app/src/components/directory-picker-domain.ts b/packages/app/src/components/directory-picker-domain.ts index b1d463eb373..6826a49788d 100644 --- a/packages/app/src/components/directory-picker-domain.ts +++ b/packages/app/src/components/directory-picker-domain.ts @@ -99,7 +99,7 @@ export function pickerRelativePath(base: string | undefined, path: string) { if (!base) return const rootPath = canonicalPickerPath(base) const targetPath = canonicalPickerPath(path) - const insensitive = /^[A-Za-z]:\//.test(rootPath) + const insensitive = /^[A-Za-z]:\//.test(rootPath) || rootPath.startsWith("//") const root = insensitive ? rootPath.toLowerCase() : rootPath const target = insensitive ? targetPath.toLowerCase() : targetPath if (target === root) return ""