Matrix.org - Matrix v1.19 release
📢 We are happy to launch The Matrix Conference on 20th-23rd October in Malmö, Sweden. Don't forget to get your ticket!
Hey all,
Matrix 1.19 is here! This release brings 6 more MSCs to the spec since the Matrix 1.18 release just over 3 months ago. Aside from clarifying that server ACLs are case insensitive, adding mutual rooms lookup, and making the room directory order implementation-defined, this release brings a couple of commonly requested features to the protocol: encrypted room history sharing and custom emoji.
🔗Encrypted room history sharing
When a user joins or is invited to an unencrypted room, they might see events from before their join/invite due to history visibility. When that invite or join happens in an encrypted room though, the same history visibility doesn't always apply. Room history sharing, introduced by MSC4268, fixed that.
Readers who have been following the spec and project a long time may recall that room history sharing used to exist approximately 5 years ago in the form of MSC3061. After the proposal passed Final Comment Period (FCP), some shortcomings were discovered with the proposal. The cryptography team at Element addressed those shortcomings in MSC4268 by more carefully specifying what devices it is safe to share keys with, and by specifying a format for bulk-sharing keys rather than sending a to-device message per key.
More information about how history sharing has been implemented in Element's clients can be found on their blog.
🔗Custom emoji (image packs)
Regular emoji simply isn't expressive enough for users - they need the ability to send custom emoticons, and share those image packs with other users so they can use them too. MSC2545, the most commented-on proposal as of writing at 603 comments, introduces this capability while also improving sticker pack support more generally.
Similar to other proposals in this spec release, it's been worked on for over 6 years and has been through several iterations. Clients like FluffyChat, Cinny, and Nheko have supported the proposal through those iterations and enable users to share their image packs with other users. With the proposal being added to the spec, all clients can now interoperate with stable identifiers and images in a more expressive Matrix!
🔗The full changelog
The full changelog for Matrix 1.19 is:
🔗Client-Server API
New Endpoints
Add GET /_matrix/client/v1/mutual_rooms, as per MSC2666. (#2367)
Backwards Compatible Changes
Specify unsigned.replaces_state in client-formatted events. Contributed by @nexy7574. (#2345, #2403)
Specify m.key_backup account data, as per MSC4287. (#2354)
The room directory now returns rooms in a server-defined order rather than largest first, as per MSC4423. (#2392)
Add support for image packs (m.room.image_pack and m.image_pack.rooms), allowing custom emoticons and stickers to be organised into packs and shared between users, as per MSC2545. (#2397)
Specify encrypted history sharing, as per MSC4268. (#2399)
Spec Clarifications
Clarify SAS commitment calculation for m.key.verification.accept messages. (#2344)
Clarify formats of string types. (#2347, #2349, #2358, #2359, #2370, #2374, #2375, #2376)
Restore alphabetical order of common error codes. (#2348)
Fix various typos throughout the specification. (#2351, #2389)
Clarify how to find via parameter when following room upgrades. (#2352)
Clarify that room messages can be encrypted. (#2371)
Clarify how to paginate messages using the pagination tokens returned by GET /rooms/{roomId}/context/{eventId}. (#2372)
Clarify allowed characters in mxc:// URIs. (#2377)
Add link to RFC 9700 OAuth 2.0 Best Current Practices. (#2379)
Add links from the Client-Server spec to the Olm message definitions. (#2381)
Disambiguate placeholder descriptions in OlmPayload example. (#2382)
Replace "Olm message" with "event encrypted using Olm" where not referring to the Olm message format. (#2383)
Removed unused components in OpenAPI definitions. (#2386)
Clarify definitions of EncryptedFile structure. (#2398)
🔗Server-Server API
Backwards Compatible Changes
The room directory now returns rooms in a server-defined order rather than largest first, as per MSC4423. (#2392)
Spec Clarifications
Clarify the behaviour and response format of GET /_matrix/federation/v1/query/profile. (#2326)
Clarify that server ACLs are case-insensitive, as per MSC4436. (#2334)
Clarify how multiple signatures should be handled during signature verification. Contributed by @nexy7574. (#2341)
Fix various typos throughout the specification. (#2351)
Clarify that policy servers might share a name with event origins, and that servers should avoid overwriting/discarding signatures for the event origin when getting a policy server signature. (#2385)
🔗Application Service API
Spec Clarifications
Fix various typos throughout the specification. (#2351)
🔗Identity Service API
Spec Clarifications
Fix various typos...