updateRange()/updateSlider() emitted stateChange synchronously on every keystroke/drag event, triggering a full catalog filter recompute each time. Debounced both (350ms, per filterId+key timer, cleared on destroy). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>