Files
cinny/docs/handoff/features/explore/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

80 lines
1.9 KiB
Markdown

# 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
## Related docs
- [routing-and-navigation HANDOFF](../routing-and-navigation/HANDOFF.md)
- [join-before-navigate HANDOFF](../join-before-navigate/HANDOFF.md)
## Add your extra things here
- `getExploreFeaturedPath` in pathUtils