diff --git a/proposals/3375-room-v9.md b/proposals/3375-room-v9.md new file mode 100644 index 00000000..0cd1e219 --- /dev/null +++ b/proposals/3375-room-v9.md @@ -0,0 +1,26 @@ +# 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. + +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. +No other room versions are affected by this MSC. + +## Background + +Protecting this key from redaction was missing in [MSC3083](https://github.com/matrix-org/matrix-doc/blob/main/proposals/3083-restricted-rooms.md). +By redacting it, new servers which join a room are unable to properly 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).