Files
cinny/docs/handoff/features/message-search/HANDOFF.md
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

2.1 KiB

Message search — handoff

Summary

In-room and cross-room message search UI: query input, filters, result grouping, and navigation to found events. Uses Matrix /search or client-side APIs via useMessageSearch.

User-facing behavior

  • Search modal or page with text query
  • Filters: room, sender, date (see SearchFilters)
  • Results grouped by room/period
  • Click result → jump to event in timeline

Architecture

MessageSearch.tsx
  → useMessageSearch.ts
  → SearchInput, SearchFilters, SearchResultGroup
Router may mount search under client routes

Key files

Path Role
cinny/src/app/features/message-search/MessageSearch.tsx Main UI
cinny/src/app/features/message-search/useMessageSearch.ts Search logic
cinny/src/app/features/message-search/SearchInput.tsx Query field
cinny/src/app/features/message-search/SearchFilters.tsx Filters
cinny/src/app/features/message-search/SearchResultGroup.tsx Result list

Data model

Ephemeral search state in component hooks. No persistence.

Dependencies

  • matrix-js-sdk search API
  • Homeserver must support message search (server-dependent)

Integration points

  • routing-and-navigation: search routes in home/space
  • room-timeline: navigation to event id
  • global-search: separate modal feature — see that handoff

Testing

Manual

  1. Search known keyword; results appear.
  2. Apply room filter; results scoped.
  3. Click result; timeline scrolls to event.
  4. Test on homeserver without search — expect graceful error.

Automated

  • None

Known issues & gotchas

  • Server-side search availability varies by deployment
  • Encrypted room search limited by server/indexing policy
  • Pagination in useMessageSearch — check for duplicate results

Future work

  • Client-side fallback search for small rooms
  • Highlight match in timeline

Add your extra things here

  • Exported from features/message-search/index.ts