matrix-org / matrix-org/matrix-spec
Clarify how clients should handle rooms in the `leave` section of sync without a leave member event
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 330
- Forks
- 150
- Avg merge
- 2h 21m
- Merged PRs (30d)
- 3
Description
The `/sync` response has a `leave` section, but servers usually also send the `m.room.member` leave event inside the sync payload. The spec should clarify whether that event is mandatory or if clients should assume the user is left merely based on the room ID being in the leave section (even if there are no events provided at all).
Being able to tell clients a room has been left without having to store or fake a full member event would be useful for ensuring rooms deleted by the server don't get stuck on clients. If a leave event is required, servers would have to either persist more data or generate a fake event.
Element Web currently treats the room as joined until it receives the leave event in `state_after`: https://github.com/element-hq/element-web/issues/30449. This came up due to a Synapse bug: https://github.com/element-hq/synapse/issues/18793. The question is whether that server bug should actually break element web or not
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 reading the Matrix /sync specification's leave section and compare its treatment of m.room.member events with the linked Element Web and Synapse issues. Determine whether room IDs alone or a leave event are normative, then document the decided client/server behavior and any required examples or conformance wording in the spec.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100