diff --git a/proposals/4210-remove-legacy-mentions.md b/proposals/4210-remove-legacy-mentions.md new file mode 100644 index 00000000000..cb4db83c8e5 --- /dev/null +++ b/proposals/4210-remove-legacy-mentions.md @@ -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.