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.9 KiB

Explore — handoff

Summary

Discover public rooms and featured communities on Matrix homeservers. Browse by server, search public room directory, and preview/join rooms.

User-facing behavior

  • Explore tab in sidebar
  • Pick server / homeserver directory
  • Featured rooms list
  • Search public rooms on server
  • Join room from preview

Architecture

client/explore/
  Explore.tsx — main explore page
  Server.tsx — server-specific directory
  Featured.tsx — featured rooms
  PublicRooms via matrix directory API

Key files

Path Role
cinny/src/app/pages/client/explore/Explore.tsx Explore hub
cinny/src/app/pages/client/explore/Server.tsx Server directory
cinny/src/app/pages/client/explore/Featured.tsx Featured list
cinny/src/app/pages/client/sidebar/ExploreTab.tsx Sidebar entry
cinny/src/app/hooks/useRoomDirectoryVisibility.ts Directory visibility

Data model

Public room directory from homeserver HTTP API (ephemeral).

Dependencies

  • Homeserver /publicRooms or sliding sync directory
  • matrix-js-sdk room directory helpers

Integration points

  • routing-and-navigation: EXPLORE_PATH, _SERVER_PATH, _FEATURED_PATH
  • join-before-navigate: may route here before join

Testing

Manual

  1. Open explore; list loads for default server.
  2. Switch server; directory refreshes.
  3. Join public room from explore.
  4. Server without public directory — error handling.

Automated

  • None

Known issues & gotchas

  • Public directory disabled on many private homeservers
  • Featured rooms may be config-dependent (clientConfig)

Future work

  • Federated universal search
  • Room preview with topic/avatar before join

Add your extra things here

  • getExploreFeaturedPath in pathUtils