matrix-org / matrix-org/matrix-spec

Suggesting state for the room.

Open
#356 2 comments 0 reactions 0 assignees View on GitHub
A-Client-Server enhancement
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

I've run up against this issue multiple times (bridge events being a big one) where I want to put state in the room, but in order to do so I need to be an op of the room. One way around this could be that we have "suggested state" events as regular events, where users can propose state be added to the room without having to get oped.

The format could be something like:
```json
"type": "m.suggested_state",
"event_id": "$eventforthis:matrix.org"
"content": {
"sender": "@appservice-irc:matrix.org",
"content": {
"something": "bridgey",
},
"type":"m.bridgething",
"state_key": "irc.freenode.net#somechan",
"target_room_id": "!someroom:matrix.org",
"body": "Suggested state for the room. Please open in a compatible client to use",
"reason": "The IRC bridge requires this state to function."
}
```

```json

"type": "m.bridgething",
"state_key": "irc.freenode.net#somechan",
"sender": "@mradmin:matrix.org"
"content": {
"something": "bridgey",
"m.suggested_state.for": "$eventforthis:matrix.org",
}
```
On receiving this event, the client should show an option to view and accept or reject it. It would be up to the client on what to do if the state is rejected (either blocking further attempts automatically or just not showing them).

Client's not able to action this event due to power levels can choose not to show it, but if the client doesn't support it then the body should be shown instead.

Accepting the event will make the accepting client send the event, and rejecting it will do nothing but will hide it from the current client's view. The hope is that scrollback will eventually remove it from view.

Obviously, like anything else this is open to abuse. There should be an option to prevent users from sending further requests (via power levels) if spammed.

Contributor guide

Open the contributing guide

Research direction

No file, test, or entry point is named. Start by reviewing the Matrix room state-event and power-level specifications, then determine how suggested events, acceptance or rejection, client display behavior, and spam prevention should be defined; done would require an agreed protocol design and corresponding specification updates.

Written by the indexing model from the issue text.

Assessment

Domain
distributed-systems, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.