Hey all,
Today’s Matrix 1.16 release brings two major features to the protocol: extensible profiles and room version 12 from Project Hydra! With room version 12, users should see fewer “state resets” and a clearer hierarchy for power levels in the room. The Project Hydra blog post covers the changes in more detail, so this post will focus on extensible profiles and our plan for Matrix 2.0.
As always, the full changelog and descriptions of the 9 MSCs released today is at the end of this post.
🔗Extensible profiles
Since the invention of profiles, people have wanted to advertise information to others. Matrix is no different, with time zones, pronouns, preferred languages, job titles, and more being among the top requested dedicated fields. Matrix 1.16 brings time zone support to ensure the new extensible system is capable of representing basic information. However users are able to use custom namespaces today to describe additional details, whereas new MSCs may formally define fields to be added to the specification for broad client support.
Huge thanks and congratulations to Tom for landing this highly requested feature in their first-ever MSC.
🔗Matrix 2.0
Over the years we’ve talked a lot about Matrix 2.0, and even demoed the implementations of Matrix 2.0 MSCs at last year’s Matrix Conference. After spending the majority of the last year polishing the implementations and touching up the MSCs, we’re setting our sights on Matrix 2.0. If we’re lucky, we’ll even get the 12+ remaining MSCs merged before the Matrix Conference in October.
Watch this space and the Office of the Matrix Spec Core Team room on Matrix for updates as we work toward Matrix 2.0/the conference.
🔗The full changelog
The full changelog for Matrix 1.16 is:
🔗Client-Server API
Deprecations
Removed Endpoints
Backwards Compatible Changes
- Update user profile endpoints to handle custom fields, and add a new
m.profile_fields
capability, as per MSC4133. (#2071) - Add
format
query parameter toGET /state/{eventType}/{stateKey}
to allow fetching metadata of a specific state event. (#2175) - Add the
use_state_after
query parameter andstate_after
response property toGET /sync
, as per MSC4222. (#2187) - When upgrading rooms to room version 12,
additional_creators
may be specified on thePOST /_matrix/client/v3/rooms/{roomId}/upgrade
endpoint, as per MSC4289. (#2193) - When creating rooms with room version 12, the
trusted_private_chat
preset should merge the invitees into the suppliedcontent.additional_creators
in the resulting room, as per MSC4289. (#2193) - In room version 12, the power level of room creators is now infinitely high as per MSC4289. (#2193)
- In room version 12, room IDs no longer have a domain component as per MSC4291. (#2193)
- When creating rooms with room version 12, the initial power levels will restrict the ability to upgrade rooms by default, as per MSC4289. (#2193)
- Add a profile field for a user's time zone, as per MSC4175. (#2206)
- Invites and knocks are now expected to contain the
m.room.create
event in their stripped state entries, as per MSC4311. (#2207)
Spec Clarifications
- Clarify that
format
is required ifformatted_body
is specified. (#2167) - The
latest_event
in an aggregated set of thread events uses the same format as the event itself. (#2169) - Fix various typos throughout the specification. (#2171, #2177, #2179)
- Clarify that clients should replace events with the most recent replacement by
origin_server_ts
. (#2190) - Fix
/sync
flow referencing incorrect parameter to use with/messages
. (#2195) - Clarify wording around the
world_readable
history visibility setting. Contributed by @HarHarLinks. (#2204)
🔗Server-Server API
Backwards Compatible Changes
invite_room_state
andknock_room_state
now have additional requirements and validation depending on the room version, as per MSC4311. (#2207)
🔗Application Service API
No significant changes.
🔗Identity Service API
No significant changes.
🔗Push Gateway API
No significant changes.
🔗Room Versions
Backwards Compatible Changes
- Room IDs in room version 12 are now the event ID of the create event with the normal room ID sigil (
!
), as per MSC4291. (#2193) - Room creators are formalized in room version 12 and have infinitely high power level, as per MSC4289. (#2193)
- State Resolution is updated in room version 12 to reduce the opportunity for "state resets", as per MSC4297. (#2193)
- The default room version is now room version 12, though servers SHOULD keep using room version 11 for a little while, as per MSC4304. (#2193)
- Add room version 12 as per MSC4304. (#2193, #2199)
Spec Clarifications
- In room versions 1 through 12, an event's
auth_events
have always needed to belong to the same room as per MSC4307. (#2193)
🔗Appendices
Backwards Compatible Changes
- Room IDs can now appear without a domain component in room version 12, as per MSC4291. (#2193)
🔗Internal Changes/Tooling
Backwards Compatible Changes
- Add "placeholder MSC" process definition. (#2157)
Spec Clarifications
- Declare the Application Service Registration schema to follow JSON Schema spec 2020-12. (#2132)
- Declare the event schemas to follow JSON Schema spec 2020-12. (#2132)
- Upgrade the docsy theme to version 0.12.0. (#2160)
- GitHub actions are now building the OpenAPI
spec/identity-service-api/api.json
file. (#2172) - Minor fixes to JSON schemas. (#2182)
- Specify a correct spelling for "display name". (#2189)
- Fix a grammatical typo on the Matrix Spec Process documentation page. (#2205)
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