From 4df87cc96a9495fcfe277b8cfa99a798938f255b Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Sun, 12 Jul 2026 10:40:16 +0000 Subject: [PATCH] Explain portable storage path policy --- src/apps/storagePath.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/apps/storagePath.ts b/src/apps/storagePath.ts index 06bcda4..1e69668 100644 --- a/src/apps/storagePath.ts +++ b/src/apps/storagePath.ts @@ -10,6 +10,8 @@ export function validateStoragePath(storagePath: string, allowRoot: boolean = tr throw new Error("The storage root is not a valid entry path"); } + // LiveSync normally rejects ':' in portable filenames before paths reach storage. A leading letter and colon + // therefore represents drive-qualified input or a leaked non-storage namespace, not a supported physical path. if (storagePath.startsWith("/") || storagePath.startsWith("\\") || /^[A-Za-z]:/.test(storagePath)) { throw new Error(`Storage paths must be relative to the configured root: ${storagePath}`); }