Matrix spec updates meta issue #880

Open
opened 2025-07-01 00:07:32 +00:00 by nex · 0 comments
Owner

The Matrix specification gets updated every 6 months or so, introducing new features and clarifications. This issue is to be used to track the status of things from the spec that we might not have implemented according to the updates yet.

As of our fork point, we already advertise support for spec versions 1.1 through 1.5. The 1.11 support was added purely so that clients would use authenticated media, not because the requirements were met. For the sake of not hanging on to versions that frankly aren't used anymore, only 1.6 and above will be tracked here.

Only things that require changes to the server itself are included. Docs changes and client changes are omitted entirely.

Warning

This list is an attempt to be as accurate as possible, however some irrelevant changes may be included, relevant changes omitted, or changes incorrectly marked as unimplemented or implemented. There's a lot to track!

v1.15

client-to-server

  • Add GET /_matrix/client/v1/room_summary/{roomIdOrAlias}, as per MSC3266. (See: #881)
  • Add GET /_matrix/client/v1/auth_metadata, as per MSC2965. (See: #810)
  • Add the OAuth 2.0 based authentication API, as per MSC3861 and its sub-proposals. (rather broad change but alright. See: #810)

server-to-server

  • Extend /_matrix/federation/v1/hierarchy/{roomId} with the new optional properties encryption and room_version as per MSC3266. (See: #881)

v1.14

client-to-server

  • Add POST /_matrix/client/v3/users/{userId}/report, as per MSC4260. (See: #882)

v1.13

client-to-server

  • Add POST /_matrix/client/v3/rooms/{roomId}/report, as per MSC4151.
  • Add new M_USER_SUSPENDED error code behaviour, as per MSC3823.

server-to-server

  • Make ACLs apply to EDUs, as per MSC4163.

Appservice API

  • Allow sending ephemeral data to application services, as per MSC2409.

v1.12

client-to-server

  • Add support for marking rooms as unread, as per MSC2867.
  • Add via query parameter on POST /_matrix/client/v3/join/{roomIdOrAlias} and POST /_matrix/client/v3/knock/{roomIdOrAlias}, as per MSC4156.
  • Add account locking, as per MSC3939 (we don't technically support locking in the canonical sense, however, !admin users deactivate -n achieves the same effect. Locking is also yet to be used in the wild)

v1.11

client-to-server

new endpoints

  • GET /_matrix/client/v1/media/config
  • GET /_matrix/client/v1/media/download/{serverName}/{mediaId}
  • GET /_matrix/client/v1/media/download/{serverName}/{mediaId}/{fileName}
  • GET /_matrix/client/v1/media/preview_url
  • GET /_matrix/client/v1/media/thumbnail/{serverName}/{mediaId}

changes

  • Add optional animated query string option to GET /thumbnail, as per MSC2705
  • Do not require UIA when first uploading cross-signing keys, as per MSC3967.
  • Add the new unsigned.membership property to events, as per MSC4115.

v1.10

client-to-server

  • Allow /versions to optionally accept authentication, as per MSC4026.
  • Add local erasure requests, as per MSC4025.
  • Add server support discovery endpoint, as per MSC1929.
  • Add support for recursion on the GET /relations endpoints, as per MSC3981.

v1.9

did anything even change in this version lmao

client-to-server

  • Add the m.rule.suppress_edits default push rule, as per MSC3958.

v1.8

client-to-server

  • Require callers to be joined to the room to report its events, as per MSC2249.

server-to-server

  • Deprecate matrix SRV lookup steps during server discovery, as per MSC4040.
  • Add matrix-fed SRV lookup steps to server discovery, as per MSC4040.

v1.7

client-to-server

New endpoints

  • Implement POST /_matrix/media/v1/create
  • Implement PUT /_matrix/media/v3/upload/{serverName}/{mediaId}
  • Implement POST /_matrix/client/v1/login/get_token

Changes

  • Changes to the server-side aggregation of m.replace (edit) events, as per MSC3925. (See: #847)
  • Add new push rule conditions event_property_is and event_property_contains, as per MSC3758 and MSC3966.
  • Add m.annotation relations (reactions), as per MSC2677.
  • Support asynchronous media uploads, as per MSC2246.
  • Add an ability to redirect media downloads, as per MSC3860.
  • Add an ability to use an existing session to log in another, as per MSC3882. (is this implemented but not advertised in /capabilities?)

Appservice API

  • Add homeserver->appservice ping mechanism, as per MSC2659 (POST /_matrix/app/v1/ping, POST /_matrix/client/v1/appservice/{appserviceId}/ping)

v1.6

client-to-server

  • Add information on standard error responses for unknown endpoints/methods, as per MSC3743.
  • Add /rooms/<roomID>/timestamp_to_event endpoint, as per MSC3030.

server-to-server

  • Add information on standard error responses for unknown endpoints/methods, as per MSC3743.
  • Remove keyId from the server /keys endpoints, as per MSC3938.
  • Add /timestamp_to_event/<roomID> endpoint, as per MSC3030.
  • Extend /_matrix/federation/v2/send_join to allow omitting membership events, per MSC3706.
The [Matrix specification gets updated](https://spec.matrix.org/latest/changelog) every 6 months or so, introducing new features and clarifications. This issue is to be used to track the status of things from the spec that we might not have implemented according to the updates yet. As of our fork point, we already advertise support for spec versions 1.1 through 1.5. The 1.11 support was added purely so that clients would use authenticated media, not because the requirements were met. For the sake of not hanging on to versions that frankly aren't used anymore, only 1.6 and above will be tracked here. Only things that require changes to the server itself are included. Docs changes and client changes are omitted entirely. > [!WARNING] > This list is an attempt to be as accurate as possible, however some irrelevant changes may be included, relevant changes omitted, or changes incorrectly marked as unimplemented or implemented. There's a lot to track! ## v1.15 ### client-to-server - [x] Add `GET /_matrix/client/v1/room_summary/{roomIdOrAlias}`, as per MSC3266. (See: #881) - [ ] Add `GET /_matrix/client/v1/auth_metadata`, as per MSC2965. (See: #810) - [ ] Add the OAuth 2.0 based authentication API, as per MSC3861 and its sub-proposals. (rather broad change but alright. See: #810) ### server-to-server - [x] Extend `/_matrix/federation/v1/hierarchy/{roomId}` with the new optional properties encryption and room_version as per MSC3266. (See: #881) ## v1.14 ### client-to-server - [x] Add `POST /_matrix/client/v3/users/{userId}/report`, as per MSC4260. (See: #882) ## v1.13 ### client-to-server - [X] Add `POST /_matrix/client/v3/rooms/{roomId}/report`, as per MSC4151. - [X] Add new `M_USER_SUSPENDED` error code behaviour, as per MSC3823. ### server-to-server - [ ] Make ACLs apply to EDUs, as per MSC4163. ### Appservice API - [ ] Allow sending ephemeral data to application services, as per MSC2409. ## v1.12 ### client-to-server - [X] Add support for marking rooms as unread, as per MSC2867. - [X] Add via query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}` and `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per MSC4156. - [X] Add account locking, as per MSC3939 (we don't technically support locking in the canonical sense, however, `!admin users deactivate -n` achieves the same effect. Locking is also yet to be used in the wild) ## v1.11 ### client-to-server #### new endpoints - [X] `GET /_matrix/client/v1/media/config` - [X] `GET /_matrix/client/v1/media/download/{serverName}/{mediaId}` - [X] `GET /_matrix/client/v1/media/download/{serverName}/{mediaId}/{fileName}` - [X] `GET /_matrix/client/v1/media/preview_url ` - [X] `GET /_matrix/client/v1/media/thumbnail/{serverName}/{mediaId}` #### changes - [ ] Add optional animated query string option to `GET /thumbnail`, as per MSC2705 - [x] Do not require UIA when first uploading cross-signing keys, as per MSC3967. - [ ] Add the new `unsigned.membership` property to events, as per MSC4115. ## v1.10 ### client-to-server - [x] Allow `/versions` to optionally accept authentication, as per MSC4026. - [ ] Add local erasure requests, as per MSC4025. - [X] Add server support discovery endpoint, as per MSC1929. - [ ] Add support for recursion on the GET /relations endpoints, as per MSC3981. ## v1.9 did anything even change in this version lmao ### client-to-server - [ ] Add the `m.rule.suppress_edits` default push rule, as per MSC3958. ## v1.8 ### client-to-server - [X] Require callers to be joined to the room to report its events, as per MSC2249. ### server-to-server - [X] Deprecate `matrix` SRV lookup steps during server discovery, as per MSC4040. - [X] Add `matrix-fed` SRV lookup steps to server discovery, as per MSC4040. ## v1.7 ### client-to-server #### New endpoints - [ ] Implement `POST /_matrix/media/v1/create` - [ ] Implement `PUT /_matrix/media/v3/upload/{serverName}/{mediaId}` - [X] Implement `POST /_matrix/client/v1/login/get_token` #### Changes - [ ] Changes to the server-side aggregation of `m.replace` (edit) events, as per MSC3925. (See: #847) - [ ] Add new push rule conditions `event_property_is` and `event_property_contains`, as per MSC3758 and MSC3966. - [X] Add m.annotation relations (reactions), as per MSC2677. - [ ] Support asynchronous media uploads, as per MSC2246. - [X] Add an ability to redirect media downloads, as per MSC3860. - [ ] Add an ability to use an existing session to log in another, as per MSC3882. (is this implemented but not advertised in /capabilities?) ### Appservice API - [X] Add homeserver->appservice ping mechanism, as per MSC2659 (`POST /_matrix/app/v1/ping`, `POST /_matrix/client/v1/appservice/{appserviceId}/ping`) ## v1.6 ### client-to-server - [X] Add information on standard error responses for unknown endpoints/methods, as per MSC3743. - [ ] Add `/rooms/<roomID>/timestamp_to_event` endpoint, as per MSC3030. ### server-to-server - [X] Add information on standard error responses for unknown endpoints/methods, as per MSC3743. - [x] Remove `keyId` from the server `/keys` endpoints, as per MSC3938. - [ ] Add `/timestamp_to_event/<roomID>` endpoint, as per MSC3030. - [ ] Extend `/_matrix/federation/v2/send_join` to allow omitting membership events, per MSC3706.
nex added the
Matrix/Core
Meta
labels 2025-07-01 00:07:32 +00:00
nex pinned this 2025-07-01 00:09:46 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: continuwuation/continuwuity#880
No description provided.