-
Notifications
You must be signed in to change notification settings - Fork 394
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
MSC4273: Approve and Disapprove ratings for moderation policies #4273
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:
- Client/bot sending approvals
- Client/bot using approvals
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.
Overarching question: does this need to be a protocol feature? In the early design of policy lists there was a theory of "multiple confirmations" and manual approval, where the bot wouldn't honour the policy list recommendations until either multiple lists added the same rule, or the operator accepted it.
This is also why the spec doesn't say that recommendations must be followed: the lists are just sources of information. What the parser/receiver does with that information is entirely left to the implementation.
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 doesn't seem to be an overarching question, but a question you have about the proposal?
I am unaware of the early work around moderation policy lists. This proposal has been on the cards for a long time now and there is a lot of potential for this proposal to be used beyond moderation purposes as it is generic.
This does need to be documented somewhere for the purpose of interoperability between moderation tools and matrix clients, and the MSC process currently is the best avenue for that. It is also my intent for this proposal to land within the specification.
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 is also why the spec doesn't say that recommendations must be followed: the lists are just sources of information. What the parser/receiver does with that information is entirely left to the implementation.
Likewise, they are free to do what they want with approval ratings in this proposal
event_id: | ||
type: string | ||
description: |- | ||
The event ID of the moderation policy that this is a rating for. | ||
example: "$some_event_id" |
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.
CC @deepbluev7
We should instead use the room_id
, the event type
and the event state_key
. As the state_key
+ type
combination are used to identify a policy within moderation policy lists so that they can be updated or removed.
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.
On the other hand, without the event_id
or entity
the policy can be modified after the fact once agreement has been met to target a different entity that you disagree with
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.
An approach to this in implementation could be simply to notify that a policy has changed, and ask again for a new rating.
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.
I'll update the MSC with that recommendation.
For example: `charity`, the moderator of `cat-community.example.com`, cannot | ||
subscrbe to the list, `#bat-coc-bl:bat-community.example.org` without accepting | ||
all of the existing policies. This is problematic because `charity`'s friend | ||
`bob` was banned from the list for arguing with a moderator. `charity` respects | ||
the ban in the bat community, but still needs to be able to interact with their | ||
friend. | ||
|
||
Addtionaly, this all-or-nothing approach increases the amount of trust that | ||
moderators place onto the curators of moderation policy lists. As watching a | ||
list gives the list curators the ability to manage members within the | ||
subscribing community. | ||
|
||
For example: `luna`, the moderator of `bat-community.example.com` notices that | ||
`cat-community.example.com` is watching the list, and uses their power to ban | ||
more of `charity`'s friends. |
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.
@deepbluev7 says to just use "mine" and "third party" rather than all these names.
description: |- | ||
A binary rating of either string literals approve or disapprove. | ||
type: string | ||
enum: | ||
- approve | ||
- disapprove |
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.
I think spaces (or tabs) got slightly out of order here.
description: |- | |
A binary rating of either string literals approve or disapprove. | |
type: string | |
enum: | |
- approve | |
- disapprove | |
description: |- | |
A binary rating of either string literals approve or disapprove. | |
type: string | |
enum: | |
- approve | |
- disapprove |
properties: | ||
rating: | ||
description: |- | ||
A binary rating of either string literals approve or disapprove. |
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.
What does "binary" refer to here?
|
||
## Security considerations | ||
|
||
See ptoential issues. |
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.
See ptoential issues. | |
See potential issues. |
event_id: | ||
type: string | ||
description: |- | ||
The event ID of the moderation policy that this is a rating for. | ||
example: "$some_event_id" |
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.
What if i want to mark other entities as approved or disapproved? Such as a room or a user?
Rendered
Signed-off-by: Gnuxie Gnuxie@protonmail.com