matrix-org / matrix-org/matrix-spec

Ability to disable richer features per room or space.

Open
#836 22 comments 31 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.