diff --git a/ui-electrobun/src/mainview/CommandPalette.svelte b/ui-electrobun/src/mainview/CommandPalette.svelte index b4f7430..09dba29 100644 --- a/ui-electrobun/src/mainview/CommandPalette.svelte +++ b/ui-electrobun/src/mainview/CommandPalette.svelte @@ -88,11 +88,11 @@ } }); - // Clamp selection when filtered list changes - $effect(() => { + // Clamp selection when query changes (NOT via $effect — avoids read+write cycle) + function clampSelection() { const len = filtered.length; if (selectedIdx >= len) selectedIdx = Math.max(0, len - 1); - }); + } function handleKeydown(e: KeyboardEvent) { if (e.key === 'Escape') { onClose(); return; } @@ -138,6 +138,7 @@ placeholder={t('palette.placeholder')} bind:this={inputEl} bind:value={query} + oninput={() => clampSelection()} onkeydown={handleKeydown} aria-label="Command search" aria-autocomplete="list"