Hey all,
Another 9 MSCs have been released today in Matrix 1.13! Itβs just over 2 months since Matrix 1.12 went out, and the last scheduled release for 2024 - the next release is planned for around FOSDEM 2025. Todayβs release contains more T&S features and a number of clarifications and improvements. The full changelog is at the end of this post, per usual :)
πAccount suspension
Last release brought Account Locking to the spec, and this release brings Account Suspension - a highly related but semantically different feature. Locking prevents the user from accessing their account, typically as a consequence of security reasons or restrictions, while suspension aims to disrupt while retaining a (mostly) readonly experience for the user. Both actions are reversible, and available to safety and security teams to help manage their servers with alternatives to deactivation (a destructive, irreversible, action).
Clients should continue calling /sync
to detect when a lock/suspension is lifted (or converted to deactivation). MSC3939 and MSC3823 both have suggestions on what a UI could look like for the different states.
πReporting rooms
Event reporting has been in the spec since the very early days of Matrix, allowing users to send concerns about particular content to their homeserver administrators for review. A notable gap in this functionality is being able to report whole rooms from the public room directory or out of band in general - this has been addressed in Matrix 1.13 with the new report room endpoint.
The T&S team continues to work on designing a possible replacement to reporting in general, considering functionality like appeals, report-to-moderators, classification, and other quality of life improvements.
πUp next in Matrix 1.14 and 2025
Mentioned earlier in this post, Matrix 1.14 is expected to be released around FOSDEM 2025 in early February. Many of the Matrix 2.0 features, like OIDC and Simplified Sliding Sync, are getting ever-closer to the needed proposed-FCP state to become part of the spec. We currently expect that the Matrix 2.0 features will land in either Matrix 1.14 or Matrix 1.15, converting the applicable release to Matrix 2.0 as a specification version. This is highly dependent on the MSCs progressing through FCP though, and may get pushed out as needed.
As always, if thereβs an MSC ready for FCP, let us know in the SCT Office room! Weβre currently on an administrative break until January 8th, 2025, but weβre still around and prioritizing features as we see them.
πThe full changelog
The full changelog for Matrix 1.13 is:
πClient-Server API
New Endpoints
Backwards Compatible Changes
- Add error codes to requestToken endpoints, as per MSC4178. (#1944)
- Remove reply fallbacks, as per MSC2781. (#1994)
- Clarify the allowed HTTP methods in CORS responses, as per MSC4138. (#1995, #2011)
- Add new
M_USER_SUSPENDED
error code behaviour, as per MSC3823. (#2014)
Spec Clarifications
- The
reason
parameter inPOST /_matrix/client/v3/rooms/{roomId}/report/{eventId}
can be omitted instead of left blank, as per MSC2414. (#1938) - Correct OpenAPI specification for query parameters to
GET /_matrix/client/v3/thirdparty/location/{protocol}
endpoint. (#1947) - Sort VoIP events semantically. (#1967)
- Clarify that servers must forward custom keys in
PusherData
when sending notifications to the push gateway. (#1973) - Clarify formats of string types. (#1978, #1979, #1980)
- Clarify that the async upload endpoint will return 404 in some cases. (#1983)
- Remove distinction between
StateFilter
andRoomEventFilter
. (#2015) - Add hyperlinks throughout the specification. (#2016)
- Use
json
instead ofjson5
for syntax highlighting. (#2017) - Specify order that one-time keys are issued by
/keys/claim
, as per MSC4225. (#2029)
πServer-Server API
Backwards Compatible Changes
Spec Clarifications
- Add 403 error response to
/_matrix/federation/v1/state_ids/{roomId}
. (#1926)
πApplication Service API
Backwards Compatible Changes
πIdentity Service API
No significant changes.
πPush Gateway API
Spec Clarifications
- Document the schema of
PusherData
. (#1968) - The path of HTTP pusher URLs is fixed to
/_matrix/push/v1/notify
. (#1974)
πRoom Versions
Spec Clarifications
- Clarify rule 4.3.1 of the auth rules in room version 11 to state which event's
sender
thestate_key
needs to match. (#2024)
πAppendices
Spec Clarifications
- Remove note about reference implementations. (#1966)
πInternal Changes/Tooling
Spec Clarifications
- Add
x-weight
property for sorting events rendered with theevent-group
shortcode. (#1967) - Enforce consistent vertical spacing between paragraphs in endpoint definitions. (#1969, #2005)
- Remove
boxes/added-in-paragraph
shortcode. (#1970) - Remove
withVersioning
parameter ofrver-fragment
shortcode. (#1971) - Remove
span
element fromadded-in
andchanged-in
shortcodes. (#1972) - Fix formatting of
added-in
andchanged-in
shortcodes by using%
delimiter. (#1975) - Remove CSS workaround for scroll-anchoring. (#1976)
- Rename
custom-formats.yaml
tostring-formats.yaml
and update its docs. (#1977) - Fix relative URLs when serving the specification with a custom
baseURL
. (#1984, #1997) - Rename
.htmltest.yaml
to.htmltest.yml
. (#1985) - Improve the JS script to highlight the current ToC entry. (#1991, #2002)
- Upgrade docsy to 0.11.0 and hugo to 0.139.0. (#1996, #2007)
- Improve the quality of the rendered diagrams (#1999)
- Update the Inter font and allow the browser to render the page before it is loaded (#2000)
- Use a proper Matrix favicon (#2001)
- Clean up unused CSS classes in
openapi/render-operation
partial. (#2003) - Fix
changed-in
partial when used with multiple paragraphs. (#2006) - Optimize generated CSS by removing unused selectors. (#2008)
- Remove trailing slash on void HTML elements. (#2009)
- Remove
type
andlanguage
attributes ofscript
element. (#2021) - Change the accessible role of info boxes to
note
. (#2022)
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.
Support us