Proposal for removing unintentional intentional mentions in replies
Signed-off-by: Tulir Asokan <tulir@maunium.net>tulir/fix-reply-intentional-mentions
parent
d6edcbd946
commit
4516c6e381
@ -0,0 +1,47 @@
|
||||
# MSC4142: Remove unintentional intentional mentions in replies
|
||||
|
||||
Currently, the reply spec has a section called [Mentioning the replied to user](https://spec.matrix.org/v1.10/client-server-api/#mentioning-the-replied-to-user)
|
||||
which says
|
||||
|
||||
> In order to notify users of the reply, it may be desirable to include the
|
||||
> sender of the replied to event and any users mentioned in that event. See
|
||||
> [user and room mentions](https://spec.matrix.org/v1.10/client-server-api/#user-and-room-mentions)
|
||||
> for additional information.
|
||||
|
||||
The "*any users mentioned in that event*" part is particularly problematic, as
|
||||
it effectively means all mentions will be propagated forever through a reply
|
||||
chain, causing lots of unintentional pings.
|
||||
|
||||
The propagation was originally added to preserve the old reply fallback mention
|
||||
behavior where explicit mentions in the replied-to message were be copied to
|
||||
the reply fallback and therefore caused pings. However, the current spec copies
|
||||
far more than just explicit pings from the replied-to message. Additionally, no
|
||||
other chat application that I know of propagates mentions like that.
|
||||
|
||||
## Proposal
|
||||
The proposed fix is to stop propagating mentions entirely. The `m.mentions`
|
||||
object of replies should only contain explicit mentions in the new message,
|
||||
plus the sender of the replied-to message. The mentions in the replied-to
|
||||
message are ignored.
|
||||
|
||||
## Potential issues
|
||||
Users who have already got used to the new behavior may be surprised when they
|
||||
don't get mentioned by reply chains.
|
||||
|
||||
## Alternatives
|
||||
### Split `m.mentions`
|
||||
To preserve the old reply fallback behavior, `m.mentions` could be split into
|
||||
"explicit" and "implicit", so that replies copy explicit mentions into the
|
||||
implicit list. Future replies would then only copy new explicit pings and
|
||||
wouldn't cause an infinite chain.
|
||||
|
||||
Since other chat applications don't copy pings at all, having a weird feature
|
||||
like that doesn't seem worth the additional complexity.
|
||||
|
||||
## Security considerations
|
||||
This proposal doesn't touch anything security-sensitive.
|
||||
|
||||
## Unstable prefix
|
||||
Not applicable, this proposal only changes how the existing `m.mentions` object
|
||||
is filled for replies.
|
||||
|
Loading…
Reference in New Issue