From 08b3b62e03168c4a1be3a5b5768b42eef0c7c8e3 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 19 Jun 2023 08:53:37 -0600 Subject: [PATCH] MSC3821: Update the redaction rules, again (#3821) * Start an MSC2176 2.0 * Remove scary warning about unstable implementation * Update spec links * Apply suggestions from code review Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Rewrite words into order that sense make * Update intro & unstable prefix history --------- Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> --- .../3821-update-redaction-rules-again.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 proposals/3821-update-redaction-rules-again.md diff --git a/proposals/3821-update-redaction-rules-again.md b/proposals/3821-update-redaction-rules-again.md new file mode 100644 index 00000000..2cc33405 --- /dev/null +++ b/proposals/3821-update-redaction-rules-again.md @@ -0,0 +1,37 @@ +# MSC3821: Update redaction rules, again + +[MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176) aimed to fix inconsistencies +with the [redaction algorithm](https://spec.matrix.org/v1.6/rooms/v10/#redactions) where server-side +event auth required properties to exist that were being removed. While MSC2176 fixed a number of cases, +one was unfortunately missed. + +This MSC aims to fix that missing case, originally identified long ago by [synapse#1831](https://github.com/matrix-org/synapse/issues/1831). + +## Proposal + +*Note*: It is recommended to read [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176) +before this proposal as MSC2176 contains a lot of backing context. + +In a future room version, the following changes are made to the [redaction algorithm](https://spec.matrix.org/v1.6/rooms/v10/#redactions). +Note that this requires a new room version because changing the redaction algorithm changes how +[event IDs](https://spec.matrix.org/v1.6/rooms/v10/#event-ids) are calculated, as they are +[reference hashes](https://spec.matrix.org/v1.6/server-server-api/#calculating-the-reference-hash-for-an-event) +which redact the event during calculation. + +* [`m.room.member`](https://spec.matrix.org/v1.6/client-server-api/#mroommember) events preserve a portion + of `third_party_invite` under `content`, if present. Those properties being: + + * `signed`: the block is required for the server to validate the event, however excess adjacent properties + such as `display_name` are not important. + +Clients should note that because `display_name` is *not* preserved during redaction they might need to change +how that event is rendered/presented to users. For example, when rendering such a redacted event the client +might show it as "Bob accepted a third party invite". + +## Unstable prefix + +Implementations looking to test these changes before adopted into a stable room version should use +`org.matrix.msc3821.opt1` as the room version, using **v9** as a base and treating it as unstable. + +**History**: This MSC was originally written before room version 10 existed. Implementations wishing to use +v10 as a base instead of v9 should use `org.matrix.msc3821.opt1.v10` as the room version instead.