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

MSC3389: Relation redactions #3389

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
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
27 changes: 27 additions & 0 deletions proposals/3389-relation-redactions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# MSC3389: Redaction changes for events with a relation

[MSC2674](https://github.com/matrix-org/matrix-doc/pull/2674) defines a
standard shape for indicating events which relate to other events.

When redacting events relating to other events, some information needs to be
preserved for the best user experience. Given that this will require
a room version change, it was split up into a separate MSC here.

## Proposal

Events with a relation may be redacted like any other event.

The `m.relates_to`.`rel_type` and `m.relates_to`.`event_id` fields should
be preserved over redactions, so that clients can still distinguish
redacted relations from other redacted events of the same event type.
If `m.relates_to` is not an object, or `m.relates_to` would be
an empty object after redacting any other keys, then `m.relates_to`
should also be removed from `content`.
Comment on lines +17 to +19
Copy link
Member

Choose a reason for hiding this comment

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

Not including it as an empty object seems to not be what we normally do? See #3821 (comment)

Copy link
Member

Choose a reason for hiding this comment

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

The spec of a similar field uses terminology like:

Additionally, it allows the signed key of the third_party_invite key.

And doesn't clarify what happens if this isn't a dictionary. I assume it would just get removed.


One example is telling redacted edits (as proposed in
[MSC 2676](https://github.com/matrix-org/matrix-doc/pull/2676)) apart from
from normal redacted messages, and maintain reply ordering.

This modification to the redaction algorithm requires a new room version.
However, event relationships can still be used in existing room versions, but
the user experience may be worse if redactions are performed.