Skip to content
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
Prev Previous commit
Next Next commit
Rewrite words into order that sense make
  • Loading branch information
turt2live committed May 31, 2023
commit cccb646fb4c25ee72f53614e11432621907f2688
25 changes: 16 additions & 9 deletions proposals/3821-update-redaction-rules-again.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,29 @@
# Update redaction rules, again

The current [redaction algorithm](https://spec.matrix.org/v1.6/rooms/v9/#redactions) are
still missing some key fields, even after [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176)
attempted to fix some of the obvious cases. This MSC aims to fix more fields.
still missing some key properties, even after [MSC2176](https://github.com/matrix-org/matrix-spec-proposals/pull/2176)
attempted to fix some of the obvious cases. This MSC aims to fix those missing cases.

## 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 new room version (due to redactions affecting event hashes):
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` events additionally preserve part of `third_party_invite` under `content`, if present:
* Spec: https://spec.matrix.org/v1.6/client-server-api/#mroommember
* Under `third_party_invite`, `signed` is preserved. Rationale being that the `signed` block is required
for the server to validate the event, however excess fields and `display_name` are not as important.
Clients which are trying to represent a redacted `m.room.member` event with `third_party_invite` should
not rely on `display_name` being present but rather state "Bob accepted a third party invite" or similar.
* [`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

Expand Down