matrix-org / matrix-org/matrix-spec
Invite cancellation is indistinct from kick/leave (SPEC-372)
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
If you opt to leave a room (or someone else kicks you), you receive an `m.room.member` event that sets your own `membership` state to `leave`. If someone cancels an invite on you before you joined, you get a membership state change to `leave`.
The only way to distinguish these two cases is to examine the previous state, to see if it used to be `invite` or `joined`. However, the membership state event you receive over the event stream doesn't contain the previous state, it only contains the event ID the previous state was in. Since you're no longer a member of the room, you don't have the necessary permission to look at that state event to remind yourself what that state was.
(Imported from https://matrix.org/jira/browse/SPEC-372)
(Reported by @leonerd)
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 with the Matrix membership-state rules described in the issue, especially m.room.member events and the previous state event ID. Determine the intended protocol change with maintainers; done requires an agreed specification update and corresponding validation, but this issue does not name files or tests.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100