Skip to content
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

MSC3784: Using room type of m.policy for policy rooms #3784

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

FSG-Cat
Copy link
Contributor

@FSG-Cat FSG-Cat commented Apr 25, 2022

Rendered

This simple MSC aims to help stakeholders know if its likely to be a room containing a policy list or not.

Signed-off-by: Catalan Lover catalanlover@protonmail.com

@uhoreg uhoreg added proposal-in-review proposal A matrix spec change proposal kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Apr 25, 2022
@@ -0,0 +1,63 @@
# MSC3784 Using room type of m.policy for policy rooms
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The whole point of policy rules was that they wouldn't get a room type, because there's zero practical reason to do so. In fact, it was originally intended that Matrix HQ itself would be the "ban list" plus regular chat, making it easy for others to subscribe to the list and see what was going on. The only reason we didn't end up doing that was because we wanted to keep the rules out of the main chat during development, and never migrated away.

Room types are generally used if the room can't practically hold information for other purposes, like spaces being practically unusable as a chatroom or profiles being useless as spaces. Policies are just arbitrary state events though and can live anywhere. It's very much a feature that rooms can contain multiple kinds of information when possible, which means a space which is also a policy room (for example).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well the way i personally see them used is as dedicated rooms mostly. This proposal aims to help that usecase but is not mutually exclusive with the usecases you mentioned in my head. Yes its probably a bit of a misuse of the type attribute in the sense that policy lists can contain other information unlike the other examples.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because there's zero practical reason to do so

@turt2live You're being a bit too certain about this 😞.

, it was originally intended that Matrix HQ itself would be the "ban list" plus regular chat, making it easy for others to subscribe to the list and see what was going on.

Original intent is fair to raise for context, but this isn't how policies are used, and it would be bad to use Matrix HQ this way. Not only is HQ a difficult room to query room state from because of the number of state events it has, but it's just not an appropriate place for them.

and see what was going on

Which would also be difficult because policy changes would be mixed with the chat timeline right?

Policies are just arbitrary state events though and can live anywhere. It's very much a feature that rooms can contain multiple kinds of information when possible, which means a space which is also a policy room (for example).

This isn't how they are used though, even matrix.org has dedicated rooms with chat disabled.

It makes a lot of sense to show these dedicated rooms differently in clients so that people can browse the rules and admins can edit them.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds like this makes a good argument and this info just needs to make its way back into the MSC of why the current status quo isn't enough (or just isn't used). It is usually good to reference historical context too.

Comment on lines +19 to +25
limited capacity. This proposal expands this system to help all stakeholders quickly identify
policy rooms in a machine compatible way that is computationally cheap. It has additional benefits like
allowing clients that are capable of editing policy to display editing tools for policy rooms when they
detect that a room is a policy room using this mechanic. For machine interaction with policy rooms this
proposal supplies a very fast way to tell if a room is definitively supposed to be a policy room or if
the user might have supplied a legacy room or typed in the wrong room ID / alias depending on how things
are configured.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To expand on this a bit, I really need something like this. Without this you run into a bootstrapping issue. Is this room supposed to be a policy room before the first policy is sent?

Without a room type you need to inspect the full room state to look for policy rules before you switch to the policy editor design. Slash commands can't warn the user properly that they are sending the rule into the wrong room.

So yes, I very much need this to provide a nice experience in my client. I can somewhat paper over it using account data, but it is not great. Everywhere we are told rooms are cheap. So far no rooms send policy rules into rooms you can send messages in. Most moderation tools even make it impossible to message in policy rooms, since that could possibly break the policy room when you actually need it to fight spam.

Thank you for writing this MSC!

Added improved information about what to do after the MSC gets merged.
Gnuxie added a commit to matrix-org/mjolnir that referenced this pull request Oct 17, 2022
matrix-org/matrix-spec-proposals#3784

This was extracted from the appservice mjolnir work to reduce review burden.
Gnuxie added a commit to matrix-org/mjolnir that referenced this pull request Oct 17, 2022
matrix-org/matrix-spec-proposals#3784

This was extracted from the appservice mjolnir work to reduce review burden.
Gnuxie added a commit to matrix-org/mjolnir that referenced this pull request Oct 19, 2022
matrix-org/matrix-spec-proposals#3784

This was extracted from the appservice mjolnir work to reduce review burden.
Gnuxie added a commit to matrix-org/mjolnir that referenced this pull request Oct 19, 2022
matrix-org/matrix-spec-proposals#3784

This was extracted from the appservice mjolnir work to reduce review burden.
@@ -0,0 +1,65 @@
# MSC3784 Using room type of m.policy for policy rooms
Copy link
Contributor Author

@FSG-Cat FSG-Cat Nov 27, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Making this thread to track Implementation status outside of the PR descript.

Implementation Tracking

Mjolnir as of da08432 and that commit is included in Release 1.6.0. Mjolnir implementation at time of writing only includes that it creates rooms for policy lists with the type.
Nheko in mtxclient has added initial support to recognise it in 4bd39bce. Further progres unknown at time of writing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does Nheko use it besides just declaring the constant?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants