From 9a95773664261532fd852ec3a9463992560dd7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Thu, 5 Mar 2026 00:42:47 +0000 Subject: [PATCH] fix Videos default dir name and strip tts voice subdir in save-result Co-Authored-By: Claude Opus 4.6 --- src/servers/api/file-browser/router.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/servers/api/file-browser/router.ts b/src/servers/api/file-browser/router.ts index cd566e83..75c13944 100644 --- a/src/servers/api/file-browser/router.ts +++ b/src/servers/api/file-browser/router.ts @@ -17,7 +17,7 @@ async function getUserTtsVoice(userId: number): Promise { return null; } -const DEFAULT_HOME_DIRS = ['Downloads', 'Documents', 'Music', 'Video', 'Pictures', 'Onboarding']; +const DEFAULT_HOME_DIRS = ['Downloads', 'Documents', 'Music', 'Videos', 'Pictures', 'Onboarding']; const OLD_CACHE_DIRS = ['ocr', 'tts', 'transcriptions', 'audio', 'video']; const ONBOARDING_SEED = join(DATA_PATH, 'Onboarding'); const ONBOARDING_ADMIN_SEED = join(DATA_PATH, 'Onboarding_Admin'); @@ -368,6 +368,11 @@ router.post('/save-result', async (ctx) => { if (!prefix) throw errors.BAD_REQUEST('Not a cached result path'); let relativePath = cachedPath.slice(prefix.length); + // TTS cache includes a voice subdirectory (e.g. am_liam/) — strip it + if (prefix === 'cache/tts/') { + const slashIdx = relativePath.indexOf('/'); + if (slashIdx !== -1) relativePath = relativePath.slice(slashIdx + 1); + } // Strip any nested cache prefixes (e.g. tts/ocr/photos/file.mp3 → photos/file.mp3) let nested: string | undefined; while ((nested = CACHE_PREFIXES.find((p) => relativePath.startsWith(p)))) {