Hey all,
We’ve just pushed out Matrix 1.9! Our last release was Matrix 1.8 and brought us a whole new room version. Matrix 1.9 continues a theme of an annual maintenance release, bringing with it mostly clarifications and bug fixes.
Today’s release sees just 1 MSC formally merged to the specification, though this is expected for a maintenance release. For the last 2 months (and beyond), we have largely been focused on changes which haven’t settled enough to be MSCs yet, such as interactions with the More Instant Messaging Interoperability (MIMI) working group at the IETF.
This post covers a lot of what we’ve been up to for the last few months, and what we expect to get done for the Matrix 1.10 release cycle. As always, the full changelog for Matrix 1.9 is at the bottom of the post :)
🔗Messaging interoperability
One of the major features of Matrix is its ability to connect multitudes of messaging providers with a common communications fabric - a feature that is extremely useful in light of the EU’s Digital Markets Act (DMA) which requires gatekeepers to interoperate with other messaging providers.
We’ve been working with the MIMI working group at the IETF to establish a federation protocol for DMA-style messaging alongside our own experiments like MSC3995: Linearized Matrix. The proposed protocol for MIMI is based upon the Linearized Matrix work, but is primarily designed for an MLS-centric environment.
Discussions and experiments will continue over the next several months, and you can read all about our progress so far in TWIM 2023-11-10.
🔗Custom emoji/stickers
We mentioned in Matrix 1.8’s release that we’d be taking a look at MSC2545, MSC1951, MSC4027, and MSC3892 - a family of MSCs collectively called “custom emoji/stickers”. Our review started relatively late in the Matrix 1.9 release cycle (sorry), and we started thinking about interactions with MSC3916/MSC3911 where media is linked to a specific event.
We haven’t had a chance to really dig into the specific possible concerns on these two features overlapping, but do welcome feedback and suggestions for what might impact custom emoji/stickers over on our dedicated tracking issue. We’ll continue working through the problem space in the Matrix 1.10 release cycle, and hope to get both linked media and custom emoji/stickers up for FCP.
🔗Upcoming in Matrix 1.10
With each release we aim to have a plan for what the next release will look like, giving us a direction or theme to follow. Noting that the next release cycle has a lot of holidays (and FOSDEM) in it, we’ve got an initial list of things to look at, grouped by theme:
- Authenticated media
- Custom emoji/stickers
- MSC4074 - Server-side annotation aggregation
- MSC4048 - Authenticated key backup
- Extensible Events
- Encrypted Appservices
- MSC2702 - Content-Disposition semantics for media
- MSC3939 - Account locking
This list is not final and will be iterated upon over the next couple of weeks. If you’ve got an MSC to add or remove, let us know in the SCT Office on Matrix. For all of the MSCs above, we aim to get them to a FCP-accepted state at a minimum, and merged to the spec if time permits (and makes sense - looking at you, Extensible Events).
🔗The full changelog
Matrix 1.9 is a relatively light maintenance release, but it still has a changelog! Read on for full details.
🔗Client-Server API
Backwards Compatible Changes
- Add the
m.rule.suppress_edits
default push rule, as per MSC3958. (#1617)
Spec Clarifications
- Fix
m.call.negotiate
schema and example. (#1546)
- Clarify that the
via
property is required for m.space.parent
and m.space.child
as per MSC1772. Contributed by @PaarthShah. (#1618)
- Add a note to the
/publicRooms
API that the server name is case sensitive. (#1638)
- Clarify that an
m.room.name
event with an absent name
field is not expected behavior. (#1639)
- Fix schemas used for account data and presence events in
GET /initialSync
. (#1647)
- Fix various typos throughout the specification. (#1658, #1661, #1665)
- Fix
.m.rule.suppress_notices
push rule not being valid JSON. (#1671)
- Add missing properties for
event_property_is
and event_property_contains
push conditions to PushConditions
object. (#1673)
- Indicate that fallback keys should have a
fallback
property set to true
. (#1676)
- Clarify that thread roots are not considered within the thread. (#1677)
🔗Server-Server API
Spec Clarifications
- Fix schema of
m.receipt
EDU. (#1636)
- Fix various typos throughout the specification. (#1661)
- Clarify that federation requests for non-local users are invalid. (#1672)
🔗Application Service API
No significant changes.
🔗Identity Service API
No significant changes.
🔗Push Gateway API
No significant changes.
🔗Room Versions
No significant changes.
🔗Appendices
Spec Clarifications
- Clarify timestamp specification with respect to leap seconds. (#1627)
- Fix various typos throughout the specification. (#1652)
Backwards Compatible Changes
- Add more CI checks for OpenAPI definitions and JSON Schemas. (#1656)
- Generate server-server OpenAPI definition. (#1657)
Spec Clarifications
- Replace all mentions of Swagger by OpenAPI. (#1633)
- Fix enum types in JSON schemas. (#1634)
- Fix schema of
m.mentions
object. (#1635)
- Fix rendering of
m.receipt
event in Client-Server API. (#1637)
- Remove required
fieldname
in appservice Protocol definition. (#1646)
- Fix github action workflow responsible for releasing of @matrix-org/spec package. (#1648)
- Upgrade GitHub actions. (#1660)