Repository navigation
Explore public spaces, and a Discord-style space menu - #30
Merged
Merged
Conversation
A compass in the spaces rail opens a directory of public spaces: search, read another server's directory, peek at a space's rooms, and join the space or individual rooms. join_room takes `via` servers so rooms found on other homeservers can be joined. Joins get a 5-minute timeout of their own (the SDK's 30s cut off federated joins the server went on to finish), and error messages now include their underlying cause instead of a bare "error sending request". Right-click or long-press a space for mark as read, invite, mute, notification level, hide muted rooms, browse rooms, leave (in red, with an option to take rooms only that space holds), and copy space id. Mute and notification level apply per room, since Matrix has no space-level setting; room summaries now carry each room's notify mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tiles keep a 16:9 shape in a best-fit grid instead of stretching to fill rows. Clicking a tile focuses it, with everyone else in a filmstrip; clicking it again goes back to the grid. Screen shares are their own tiles and take the stage until someone picks otherwise. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Explore public spaces. A compass button in the spaces rail opens a directory of public spaces:
/hierarchy)Space context menu. Right-click a space (press and hold on mobile), modelled on Discord's server menu:
Privacy settings, per-server profile and "move to" (folders) have no Matrix equivalent and are left out.
Why / notes for review
join_roomnow takesviaservers, which a room ID from another server's directory needs. Joins also get a 5-minute timeout of their own: the SDK's 30s default was cutting off federated joins (seen joining a matrix.org space from m.uwu.lt) that the server then finished anyway. The join is sent by hand with that timeout, thenjoin_room_by_id_or_aliasruns again, which returns instantly now that we're in and does the SDK's local bookkeeping.resolve_roombecame unused and is removed.RoomSummarygainsnotifyMode. New bulk commandsset_rooms_notify_modeandmark_rooms_readrun room by room, because concurrent push-rule writes race on the SDK's cached ruleset.hideMutedInSpaces), and only affects that space's list.ContextMenu(separators, checkboxes, radios, flyout submenus) andisInSpace/roomsInSpacestore helpers.filterRoomsuses them.Testing
tsc -bclean; vitest 178 passed (new:src/store/spaces.test.ts); cargo test 122 passed; no new clippy warningsviajoins, the longer timeout), or long-press on an actual phone🤖 Generated with Claude Code