Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC3375: Room version 9 #3375

Merged
merged 3 commits into from
Sep 3, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions proposals/3375-room-v9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# MSC3375: Room Version 9

A new room version, `9`, is proposed using [room version 8](https://spec.matrix.org/unstable/rooms/v8/)
as a base and incorporating the following:

The redaction rules for room version 9 are updated, such that `m.room.member`
events allow the `join_authorised_via_users_server` key in addition to the
`membership` key.
Comment on lines +6 to +8
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Starting a thread just to have a thread.)

@turt2live asked me to do some additional testing with redaction. So I did the following:

  1. Created a space and a v9 room as alice.
  2. Set the join rules of the room to restricted via the space.
  3. Invited bob (from the same server) to the space.
  4. Had bob join the room and chat a little.
  5. Redact all state events in the room (all m.room.member events, m.room.join_rules, m.room.history_visibility, m.room.name, m.room.guest_access)
  6. Invited charlie (from a new server) to the space
  7. Had charlie join the room
  8. Ensure that alice, bob, and charlie were all in the room, all able to chat (and see each other's messages).

@turt2live Please let me know if there's additional testing I should do!


Though other MSCs are capable of being included in this version, they do not have
sufficient implementation to be considered for this room version. A future room
version may include them.

Room version `9` upon being added to the specification shall be considered stable
and room version `8` shall be considered unstable. No other room versions are
clokep marked this conversation as resolved.
Show resolved Hide resolved
affected by this MSC.

## Background

The redaction of this key was missing in [MSC3083](https://github.com/matrix-org/matrix-doc/blob/main/proposals/3083-restricted-rooms.md),
but without redacting it new servers which join a room are unable to properly
clokep marked this conversation as resolved.
Show resolved Hide resolved
authorise `m.room.member` events which include the
`join_authorised_via_users_server` key and have been redacted.
This can cause a split-brained room where some servers believe a member is joined
and other servers do not see the member in the room.

Note that a new room version is necessary since this will change that event ID
calculation of the `m.room.member` event (and thus is not backwards compatible).