Final search UX polish: focus, cache, spinner opacity, scroller key
- AppSidebar: auto-focus input when search opens via querySelector.
  Spinner icon now hides via opacity:0 instead of visibility:hidden.
- SessionsStore: add searchCache ref + restoreSearch(). Cache stores last
  search results (items, hasMore, nextOffset) so reopening search avoids
  re-fetching when query hasn't changed.
- SessionList: add :key on DynamicScroller to force recreate when switching
  between search/normal mode, fixes pinned item spacing bug.
- Tests pass (51/51)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 3c7f5c3 commit 94ccbb51b98cc932f6e3fea7c2e69aed5b46abfd
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored on 14 May
Showing 3 changed files
View
webclient/src/components/sidebar/AppSidebar.vue
View
webclient/src/components/sidebar/SessionList.vue
View
webclient/src/stores/sessions.js