Matrix spec updates meta issue #880

Open
opened 2025-07-01 00:07:32 +00:00 by nex · 1 comment
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 relevant 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.16 (upcoming)

client-to-server

  • Deprecate m.set_avatar_url and m.set_displayname capabilities, as per MSC4133
  • Update user profile endpoints to handle custom fields, and add a new m.profile_fields capability,as per MSC4133
  • Add format query parameter to GET /state/{eventType}/{stateKey} to allow fetching metadata of a specific state event.
  • Add the use_state_after query parameter and state_after response property to GET /sync, as per MSC4222
  • When upgrading rooms to room version 12, additional_creators may be specified on the POST /_matrix/client/v3/rooms/{roomId}/upgrade endpoint, as per MSC4289 (see: #943)
  • In room version 12, room IDs no longer have a domain component as per MSC4291 (see: #943)
  • When creating rooms with room version 12, the trusted_private_chat preset should merge the invitees into the supplied content.additional_creators in the resulting room, as per MSC4289 (see: #943)

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 relevant 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.16 (upcoming) ### client-to-server - [ ] Deprecate `m.set_avatar_url` and `m.set_displayname` capabilities, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133) - [ ] Update user profile endpoints to handle custom fields, and add a new `m.profile_fields` capability,as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133) - [X] Add format query parameter to `GET /state/{eventType}/{stateKey}` to allow fetching metadata of a specific state event. - [ ] Add the `use_state_after` query parameter and state_after response property to `GET /sync`, as per [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/issues/4222) - [ ] When upgrading rooms to room version 12, `additional_creators` may be specified on the `POST /_matrix/client/v3/rooms/{roomId}/upgrade` endpoint, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289) (see: #943) - [ ] In room version 12, room IDs no longer have a domain component as per [MSC4291](https://github.com/matrix-org/matrix-spec-proposals/pull/4289) (see: #943) - [ ] When creating rooms with room version 12, the trusted_private_chat preset should merge the invitees into the supplied `content.additional_creators` in the resulting room, as per [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289) (see: #943) ## v1.15 ### client-to-server - [x] Add `GET /_matrix/client/v1/room_summary/{roomIdOrAlias}`, as per [MSC3266](https://github.com/matrix-org/matrix-spec-proposals/pull/3266). (See: #881) - [ ] Add `GET /_matrix/client/v1/auth_metadata`, as per [MSC2965](https://github.com/matrix-org/matrix-spec-proposals/pull/2965). (See: #810) - [ ] Add the OAuth 2.0 based authentication API, as per [MSC3861](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) 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](https://github.com/matrix-org/matrix-spec-proposals/pull/3266). (See: #881) ## v1.14 ### client-to-server - [x] Add `POST /_matrix/client/v3/users/{userId}/report`, as per [MSC4260](https://github.com/matrix-org/matrix-spec-proposals/pull/4260). (See: #882) ## v1.13 ### client-to-server - [X] Add `POST /_matrix/client/v3/rooms/{roomId}/report`, as per [MSC4151](https://github.com/matrix-org/matrix-spec-proposals/pull/4151). - [X] Add new `M_USER_SUSPENDED` error code behaviour, as per [MSC3823](https://github.com/matrix-org/matrix-spec-proposals/pull/3823). ### server-to-server - [x] Make ACLs apply to EDUs, as per [MSC4163](https://github.com/matrix-org/matrix-spec-proposals/pull/4163). ### Appservice API - [ ] Allow sending ephemeral data to application services, as per [MSC2409](https://github.com/matrix-org/matrix-spec-proposals/pull/2409). ## v1.12 ### client-to-server - [X] Add support for marking rooms as unread, as per [MSC2867](https://github.com/matrix-org/matrix-spec-proposals/pull/2867). - [X] Add via query parameter on `POST /_matrix/client/v3/join/{roomIdOrAlias}` and `POST /_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4156](https://github.com/matrix-org/matrix-spec-proposals/pull/4156). - [X] Add account locking, as per [MSC3939](https://github.com/matrix-org/matrix-spec-proposals/pull/3939) (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](https://github.com/matrix-org/matrix-spec-proposals/pull/2705) - [x] Do not require UIA when first uploading cross-signing keys, as per [MSC3967](https://github.com/matrix-org/matrix-spec-proposals/pull/3967). - [ ] Add the new `unsigned.membership` property to events, as per [MSC4115](https://github.com/matrix-org/matrix-spec-proposals/pull/4115). ## v1.10 ### client-to-server - [x] Allow `/versions` to optionally accept authentication, as per [MSC4026](https://github.com/matrix-org/matrix-spec-proposals/pull/4026). - [ ] Add local erasure requests, as per [MSC4025](https://github.com/matrix-org/matrix-spec-proposals/pull/4025). - [X] Add server support discovery endpoint, as per [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929). - [ ] Add support for recursion on the GET /relations endpoints, as per [MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981). ## 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](https://github.com/matrix-org/matrix-spec-proposals/pull/3958). ## v1.8 ### client-to-server - [X] Require callers to be joined to the room to report its events, as per [MSC2249](https://github.com/matrix-org/matrix-spec-proposals/pull/2249). ### server-to-server - [X] Deprecate `matrix` SRV lookup steps during server discovery, as per [MSC4040](https://github.com/matrix-org/matrix-spec-proposals/pull/4040). - [X] Add `matrix-fed` SRV lookup steps to server discovery, as per [MSC4040](https://github.com/matrix-org/matrix-spec-proposals/pull/4040). ## 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](https://github.com/matrix-org/matrix-spec-proposals/pull/3925). (See: #847) - [ ] Add new push rule conditions `event_property_is` and `event_property_contains`, as per [MSC3758](https://github.com/matrix-org/matrix-spec-proposals/pull/3758) and [MSC3966](https://github.com/matrix-org/matrix-spec-proposals/pull/3966). - [X] Add m.annotation relations (reactions), as per [MSC2677](https://github.com/matrix-org/matrix-spec-proposals/pull/2677). - [ ] Support asynchronous media uploads, as per [MSC2246](https://github.com/matrix-org/matrix-spec-proposals/pull/2246). - [X] Add an ability to redirect media downloads, as per [MSC3860](https://github.com/matrix-org/matrix-spec-proposals/pull/3860). - [ ] Add an ability to use an existing session to log in another, as per [MSC3882](https://github.com/matrix-org/matrix-spec-proposals/pull/3882). (is this implemented but not advertised in /capabilities?) ### Appservice API - [X] Add homeserver->appservice ping mechanism, as per [MSC2659](https://github.com/matrix-org/matrix-spec-proposals/pull/2659) (`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](https://github.com/matrix-org/matrix-spec-proposals/pull/3743). - [ ] Add `/rooms/<roomID>/timestamp_to_event` endpoint, as per [MSC3030](https://github.com/matrix-org/matrix-spec-proposals/pull/3030). ### server-to-server - [X] Add information on standard error responses for unknown endpoints/methods, as per [MSC3743](https://github.com/matrix-org/matrix-spec-proposals/pull/3743). - [x] Remove `keyId` from the server `/keys` endpoints, as per [MSC3938](https://github.com/matrix-org/matrix-spec-proposals/pull/3938). - [ ] Add `/timestamp_to_event/<roomID>` endpoint, as per [MSC3030](https://github.com/matrix-org/matrix-spec-proposals/pull/3030). - [ ] Extend `/_matrix/federation/v2/send_join` to allow omitting membership events, per [MSC3706](https://github.com/matrix-org/matrix-spec-proposals/pull/3706).
Owner

Re MSC3882 - yep that is implemented (I did it back in the conduwuit days), not sure about unstable prefixes or advertising capabilities for it though.

/// # `POST /_matrix/client/v1/login/get_token`

Re MSC3882 - yep that is implemented (I did it back in the conduwuit days), not sure about unstable prefixes or advertising capabilities for it though. https://forgejo.ellis.link/continuwuation/continuwuity/src/commit/293e7243b3c08aaed71b89a16544a5e75b9105dc/src/api/client/session.rs#L256
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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.