-
Notifications
You must be signed in to change notification settings - Fork 397
MSC4283: Distinction between Ignore and Block #4283
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.