From 62a1aeaf46c94554bb782293a356887571c4ce28 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}`); }