matrix-org / matrix-org/matrix-spec
Ability to disable richer features per room or space.
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
https://github.com/matrix-org/matrix-appservice-irc/pull/1301 adds the ability to specify per-room configuration for the IRC bridge, to configure how things like long messages are pastebinned or the formats used for relaying replies.
However, we don't have the ability in general for a room/space admin to recommend that certain features are not used in a given room (unless they're features which map to specific event types which could be blocked by PLs). But for enforcing cultural norms in a room, or for moderation, or managing bridging impedance-mismatches, this could be a super useful feature.
So, I think we should define a config format which **recommends** how clients should be behave in terms of:
* The maximum length of messages sent to a room
* The maximum number of lines in messages sent to a room
* Whether files are allowed in the room
* Whether images/videos are allowed in a room
* Whether stickers allowed in a room
* Whether voice messages are allowed in a room
* What text formats are allowed
* Whether colours/colors/rainbows are allowed
* Whether edits are allowed
* Whether replies are allowed
* Whether reactions are allowed (although these could be blocked via PLs)
* Whether visual effects like confetti are allowed (see also https://github.com/matrix-org/matrix-react-sdk/pull/6075)
A well-behaved client SHOULD then honour these restrictions in its UI when sending content (although in general these are recommendations and are not enforced by the servers).
In future, once matrix-org/matrix-spec-proposals#1767 lands, we could also enforce more of these by blocking the event types using PLs (e.g. blocking files/images/edits/replies/reactions).
This in turn would make IRC bridging way nicer, as the bridge could configure portal rooms by default to have no edits/replies etc, and so eliminate the hate that Matrix gets for that impedance mismatch - while still letting room admins loosen the restriction if they care.
(P.S. i can't believe we don't have this already, but I've looked and failed to find a bug for it).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the referenced IRC bridge pull request, the Matrix feature proposal, and the linked visual-effects pull request to understand related configuration and enforcement mechanisms. Define a config format covering the listed room restrictions, with clear client recommendations and scope for future power-level enforcement; done means the specification and its expected behavior are agreed and documented.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100