MSC4210: Remove legacy mentions (#4210)
* Remove legacy mentions Signed-off-by: Tulir Asokan <tulir@maunium.net> * Add another potential issue Signed-off-by: Tulir Asokan <tulir@maunium.net> * Add new room version to alternatives Signed-off-by: Tulir Asokan <tulir@maunium.net> * Specify that including `m.mentions` in all events is still necessary Signed-off-by: Tulir Asokan <tulir@maunium.net> * Add links to current spec --------- Signed-off-by: Tulir Asokan <tulir@maunium.net>pull/4315/head
parent
5beaf2e7a7
commit
07ee4ffef7
@ -0,0 +1,60 @@
|
||||
# MSC4210: Remove legacy mentions
|
||||
Matrix v1.7 introduced [intentional mentions], where events list users they
|
||||
mention explicitly, instead of the recipients inferring mentions from the raw
|
||||
message text. For backwards-compatibility reasons, messages without the new
|
||||
`m.mentions` field still use the old plaintext matching for mentions.
|
||||
|
||||
[intentional mentions]: https://spec.matrix.org/v1.15/client-server-api/#user-and-room-mentions
|
||||
|
||||
Plaintext matching means it's very difficult for automated tools to tell which
|
||||
users are mentioned in a message. This means that it's easy to spam mentions by
|
||||
simply not using intentional mentions.
|
||||
|
||||
If intentional mentions are mandatory, automated tools could easily ban users
|
||||
who send more than X mentions in a single message. There could even be a new
|
||||
push rule condition to allow checking the number of mentioned users and skip
|
||||
notifying entirely.
|
||||
|
||||
## Proposal
|
||||
Support for legacy mentions is dropped. Specifically, the following deprecated
|
||||
standard push rules are removed entirely:
|
||||
|
||||
* [`.m.rule.contains_display_name`](https://spec.matrix.org/v1.15/client-server-api/#_m_rule_contains_display_name)
|
||||
* [`.m.rule.contains_user_name`](https://spec.matrix.org/v1.15/client-server-api/#_m_rule_contains_user_name)
|
||||
* [`.m.rule.roomnotif`](https://spec.matrix.org/v1.15/client-server-api/#_m_rule_roomnotif)
|
||||
|
||||
Additionally, the `contains_display_name` [push rule condition] is deprecated.
|
||||
|
||||
[push rule condition]: https://spec.matrix.org/v1.15/client-server-api/#conditions-1
|
||||
|
||||
Including an empty `m.mentions` key is still required for clients that are
|
||||
aware of intentional mentions, as omitting it would cause current clients to
|
||||
assume messages are not using intentional mentions.
|
||||
|
||||
## Potential issues
|
||||
Users using old clients (which don't send intentional mentions) will no longer
|
||||
be able to mention users on up-to-date clients/servers.
|
||||
|
||||
Users using old clients (which don't support the new push rule conditions) will
|
||||
also no longer be notified for mentions in case the client depends on the push
|
||||
rules served by the server.
|
||||
|
||||
## Alternatives
|
||||
The removal could be done in a new room version, such as when switching to
|
||||
extensible events, as suggested by [MSC3952]. However, such a migration will
|
||||
likely take much longer than clients implementing intentional mentions.
|
||||
Additionally, the room upgrade UX is still an open issue, which means many
|
||||
rooms simply don't upgrade. Therefore, making a slightly breaking change to
|
||||
existing room versions seems like the better option.
|
||||
|
||||
[MSC3952]: https://github.com/matrix-org/matrix-spec-proposals/pull/3952
|
||||
|
||||
## Security considerations
|
||||
This proposal doesn't add any features, so there are no new security
|
||||
considerations.
|
||||
|
||||
## Unstable prefix
|
||||
Not applicable, this proposal only removes features.
|
||||
|
||||
## Dependencies
|
||||
None.
|
||||
Loading…
Reference in New Issue