MSC4283: Distinction between Ignore and Block#4283
Conversation
There was a problem hiding this comment.
Implementation requirements:
- Some sort of demonstration that these terms make sense (ie: evidence that "block" is defined correctly, given that "ignore" is already used)
| **Block** means to prevent the sender from completing an action. This is typically done server-side, | ||
| but with some work, can be done client-side. Reusing the invite example, the sender would get explicitly | ||
| told "you cannot send this invite" instead of it appearing successful with an *ignore*. | ||
|
|
||
| Other platforms may call *blocks* "ignores", which is mildly confusing, but swapping the terminology | ||
| would involve significant edits to the specification and its implementations. |
There was a problem hiding this comment.
Out of band (summarized) thoughts: Blocks are meant to be bidrectional too. For example, if Alice blocks Bob, Bob can't see what Alice posts (and Alice can't see Bob's posts). Bob knows this is happening.
Supporting this in Matrix is difficult, but not impossible. One option may be to further distinguish what subtype of block we support (ie: public or private blocks).
There was a problem hiding this comment.
This proposal makes a lot of sense to me in that I would like to see these terms clarified in approximately the suggested way, and ideally applied across (at least) UX in the ecosystem.
It does however raise the question to how this is supposed to apply practically to the spec:
- We currently have the C2S module for ignoring users https://spec.matrix.org/unstable/client-server-api/#ignoring-users which states "Servers may optionally decide to reject the invite, however.", i.e. half way of what this MSC defines as block. For this to work properly, we would need to change the required behavior for ignores to actually be ignores.
- Some of the exemplary blocking actions can probably be implemented as is. I'm not sure, but for efficiency and potentially to enable further features, it may be reasonable to actually specify behavior? I somehow expected to be presented with something to implement here 🤷
- As one particular example, I suggest that ignoring should be a valid reaction to receiving an invite, which sends it in that "black hole" without explicitly rejecting or any other information relayed back to the inviting user.
Rendered
Disclosure: I am Director of Standards Development at The Matrix.org Foundation C.I.C., Matrix Spec Core Team (SCT) member, employed by Element, and operate the t2bot.io service. This proposal is written and published as a Trust & Safety team member allocated in full to the Foundation.