feat: Discord-style auto room access for space members (restricted join_rule) #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/restricted-space-rooms"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Discord-style automatic room access for space members, picked from the 2026-09-16 live multi-user testing report ("click a link, you're on the server, and you're automatically in every room you have permission for — even rooms created later").
What this does
restrictedjoin_rule withallow: [{type: m.room_membership, room_id: <space>}](MSC3083): space membership = join permission, automatically, for members who join later and rooms created later. With the space's "allow join requests" toggle ON, the room getsknock_restrictedinstead (space members still auto-join; outsiders can knock).SpaceHierarchyModal) unchanged — restricted rooms join directly for space members, no invite needed.Why restricted and not invite/knock
Plain
invitejoin_rule (the previous default) is why the admin-added tester sawM_FORBIDDENand a misleading knock fallback: Matrix space membership never implied room access.restrictedis the spec mechanism that makes "member of the server" mean "can join its channels", like Discord.Gate
build clean, 471 unit tests (+1 skip), oxlint 0 errors, full Playwright e2e 14/14 green (13 existing + new
e2e/tests/restricted-rooms.spec.ts: a space member auto-joins a restricted room with no invite). All run in this branch's worktree.Based on main @
65fdb32.Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
🤖 Generated with Claude Code
Merged into main via fast-forward merge commit
951294c(ort merge, no conflicts). Gate results on the merged tree: build clean, 471 unit tests passed (1 skipped), lint 0 errors, e2e 14/14 passed (including restricted-rooms.spec.ts). Closing.Pull request closed