From 395098c6f1b7499d37ad55145a5931431d3e72e9 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 2 Mar 2026 12:07:55 -0600 Subject: [PATCH] refac --- src/lib/components/chat/FileNav.svelte | 4 ++++ src/lib/components/chat/FileNav/FileEntryRow.svelte | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/lib/components/chat/FileNav.svelte b/src/lib/components/chat/FileNav.svelte index d081b98bd..4fc148bb7 100644 --- a/src/lib/components/chat/FileNav.svelte +++ b/src/lib/components/chat/FileNav.svelte @@ -334,6 +334,10 @@ if (source === destination) return; + // Prevent moving a folder into itself or its own subtree + const sourceDir = source.endsWith('/') ? source : source + '/'; + if (destFolder.startsWith(sourceDir)) return; + const result = await moveEntry(terminal.url, terminal.key, source, destination); toast[result ? 'success' : 'error']( $i18n.t(result ? 'Moved {{name}}' : 'Failed to move {{name}}', { name: fileName }) diff --git a/src/lib/components/chat/FileNav/FileEntryRow.svelte b/src/lib/components/chat/FileNav/FileEntryRow.svelte index f97aa7270..6f531b0f0 100644 --- a/src/lib/components/chat/FileNav/FileEntryRow.svelte +++ b/src/lib/components/chat/FileNav/FileEntryRow.svelte @@ -51,6 +51,8 @@ const data = JSON.parse(raw); if (data.path) { const destFolder = `${currentPath}${entry.name}/`; + // Don't allow dropping a folder onto itself + if (data.path + '/' === destFolder || data.path === destFolder) return; onMove(data.path, destFolder); } } catch {}