Files
Max Litruv Boonzaayer e058165830 feat: upgrade toolchain and soften sync recovery after network blips
Bump Vite 8, matrix-js-sdk, and related deps; fix immer/vanilla-extract imports for new majors. Replace blocking sync error dialog with background recovery on wake/offline, and disable Vite auto-open in dev. Add feature handoff documentation index.
2026-07-09 01:55:09 +10:00

1.7 KiB

Global search — handoff

Summary

Quick global search modal for jumping to rooms, users, and recent conversations. Distinct from full message search — optimized for navigation, not event content search.

User-facing behavior

  • Keyboard shortcut / sidebar tab opens search modal
  • Type to filter rooms and users
  • Select result to navigate

Architecture

SearchModalRenderer (in Router.tsx)
  → features/search/Search.tsx
  → searchModal.ts atom for open state
useAsyncSearch or similar for filtering

Key files

Path Role
cinny/src/app/features/search/Search.tsx Modal UI
cinny/src/app/state/searchModal.ts Open/close state
cinny/src/app/pages/client/sidebar/SearchTab.tsx Sidebar entry

Data model

Key Storage
searchModal atom memory

Dependencies

  • Local room list + user index from sync

Integration points

  • routing-and-navigation: SearchModalRenderer in router
  • home-and-sidebar: SearchTab
  • message-search: different feature — don't merge UIs

Testing

Manual

  1. Open search modal from sidebar.
  2. Filter rooms by name.
  3. Select room; navigates and modal closes.

Automated

  • None

Known issues & gotchas

  • Two "search" features confuse users — message search vs global nav search
  • Modal focus trap via folds Overlay patterns

Future work

  • Unify search entry points with tabs (rooms / messages / users)
  • Recent searches persistence

Add your extra things here

  • SearchModalRenderer mounted at client root level in Router.tsx