This Week in Matrix 2023-04-14
14.04.2023 20:25 — This Week in Matrix — ThibMatrix Live
An unfortunate series of events prevented us from recording this week! Stay tuned for great bridge news next week.
Dept of Spec 📜
Andrew Morgan (anoa) [GMT-6] says
Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.
MSC Status
New MSCs:
- MSC3999: Add causal parameter to
/timestamp_to_event
- MSC3998: Add timestamp massaging to
/join
and/knock
- MSC3997: Add timestamp massaging to
/createRoom
- MSC3996: Encrypted mentions-only rooms.
- MSC3995: [WIP] Linearized Matrix
MSCs in Final Comment Period:
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
The concept of Linearized Matrix (MSC3995) is moving forwards as a potential answer to the European Union's, Digital Markets Act. The fully-decentralised Direct Acyclic Graph (DAG) model of Matrix is well-known, yet complex to implement and thus a potential blocker to gatekeepers who are looking for an interoperable messaging protocol to link their chat service to. Enter Linearized Matrix, a concept of a Matrix room that uses a linked-list to store events in a room, rather than a DAG. Crucially, while being simpler to implement, our aim is to be forward-compatible with the DAG version of Matrix, such that gatekeepers may switch over to DAG-style Matrix in the future if they so chose.
See MSC3995 for more information, and a reminder that this is all still very much in flux!
Random MSC of the Week
The random MSC of the week is... MSC2943: Return an event ID for membership endpoints!
Currently, when you send a (state) event manually via PUT /_matrix/client/v3/rooms/{roomId}/send/{eventType}/{txnId}, you'll receive an event ID in the response. While you can send membership events this way, it's often a bit nicer to use the various
POST /_matrix/client/v3/rooms/{roomId}/join,leave,kick
endpoints instead. However, these do not return an event ID in their response. For clients that don't use/sync
, this would force them to use the former, generic endpoint in order to retrieve the event ID of the membership event.MSC2943 attempts to rectify that by specifying that membership-related endpoints should return an event ID, similar to the generic event send endpoint. Currently this MSC is just waiting on an implementation in a homeserver (and possible a client) in order to move forward. If you feel strongly about this change being included in the Matrix spec, why not get your hands dirty with some homeserver dev?