diff --git a/src/lib/components/TaskSidebar.svelte b/src/lib/components/TaskSidebar.svelte index a1484cc..8f39929 100644 --- a/src/lib/components/TaskSidebar.svelte +++ b/src/lib/components/TaskSidebar.svelte @@ -20,7 +20,9 @@ } // Track recently added tasks for highlight animation - let prevTaskIds = $state(new Set(tasks.map((t) => t.id))); + // Use a plain variable (not $state) for previous IDs to avoid + // read-write loop inside the $effect. + let prevTaskIds = new Set(tasks.map((t) => t.id)); $effect(() => { const currentIds = new Set(tasks.map((t) => t.id)); for (const id of currentIds) { diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 8db3296..41995ec 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -14,6 +14,7 @@ const prefs = getPreferences(); + // Detect secondary windows (float, viewer) — they use +layout@.svelte // but as a fallback, hide chrome if the URL matches let isSecondaryWindow = $derived( @@ -211,13 +212,11 @@