Dept of Spec 📜
Andrew Morgan (anoa) says
Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals.
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were closed/rejected this week.
This week we have been preparing for IETF117, Matrix 1.8, Matrix 1.9, and Messaging Layer Security (MLS) for Matrix. Most of our work on globally interoperable communications is ongoing through the More Instant Messaging Interoperability (MIMI) working group at the IETF, and will be making significant strides in the coming days as we head to the IETF117 hackathon and meetup.
Over the last few months we've been working on a version of Linearized Matrix which supports the simplicity of linear event history while being fully compatible with today's Matrix network, and while we think that the 03 draft we wrote up accomplishes a lot of this, there's further work to be done to make it cleaner and easier to use. We've also been writing implementations of it to prove the semantics (and find areas which need improvement), starting with our cleanroom eigen-server TypeScript implementation and interoperating it with a branch of Synapse. During IETF117 we expect more implementations to sprout and have their interoperability tested - watch this space for updates on how that goes.
Aside from IETF117, we're continuing to look at the previously-selected Matrix 1.8 MSCs for release in mid-late August 2023. This might be slow over the next couple of weeks while half of us are at IETF117, but expect more forward progress when we get back. Matrix 1.9 is scheduled to be released sometime in November 2023, and a few months ago we said we were aiming to plan ahead for releases a bit more deliberately. Starting this week, we're accepting submissions for ideas and specific MSCs which need our attention in Matrix 1.9. If you have an MSC (current or future) which will need Spec Core Team (SCT) attention between August 2023 and November 2023, let us know in the SCT Office room. Once Matrix 1.8 is released (exact date TBD) we will have limited availability to add things to the Matrix 1.9 target - please raise your MSCs & themes as soon as possible. The current set of MSCs up for consideration can be found on the SCT Intake Board.
If you've made it this far in our weekly update, congratulations, and thank you. We expect things will rapidly start to happen with IETF117 kicking off tomorrow (July 22, 2023), and we will do our best to keep folks updated. Next week's TWIM in particular will have a post-IETF117 debrief for your reading enjoyment :)
As always, if you have any questions or concerns about what we're working on, visit the SCT Office and let us know. We can't promise a prompt reply (particularly during IETF117), but we will take a look when we can.
Random MSC of the Week
The random MSC of the week is... MSC3105: Previewing UIA flows!
This MSC addresses a shortcoming in the current User-Interactive Authentication (UIA) mechanism where attempting to deduce the required authentication flows for an action will result in that action being carried out if it turns out no flows were required. This makes it tricky for a client to present a "are you sure you want to do X?" as a final step in completing an action that requires authentication.
The proposals aims to allow an OPTIONS pre-flight HTTP request to the same endpoint in order to retrieve the flows necessary, without actually carrying out the action. The proposal does note that using OPTIONS for this case is a bit non-standard though, and some clients may treat the typical
401error code returned during User-Interactive Auth as a fatal error.
While this does address a flaw in the UIA system, it's worth noting that many other flaws exist! Matrix is planning to move over to an OpenID Connect-based authentication system in the not too distant future, which will likely have far fewer edge cases than our traditional, home-grown one. You can visit https://areweoidcyet.com/ for more information and to track the current progress on that front.
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
This week we released 1.88.0. First, an announcement: Please note that this release
- raises the minimum supported version of Python to 3.8, as Python 3.7 is now end-of-life and
- removes deprecated config options related to worker deployment.
See the upgrade notes for more information. Now the highlights:
- Remove deprecated
^=1.7.4to avoid backwards-incompatible API changes from the 2.0.0 release
- Correctly resize thumbnails with pillow version >=10
not_user_typeparam to the list accounts admin API
- Use lower isolation level when cleaning old presence stream data to avoid serialization errors
and much more. If you'd like to take a deep dive into the changes, you can find the release notes here and as always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.
Dept of Bridges 🌉
There's a Google Messages bridge now for bridging RCS (and normal SMS/MMS too): https://github.com/mautrix/gmessages
Since Google's RCS is basically completely proprietary and doesn't have any real interoperability (despite what they want you to think), the only way to bridge it is to act as the Messages for Web app. It's also a much more reliable way of bridging SMS from an Android phone, because the Messages app on Android has access to all of Google's cheat codes to avoid being killed/limited by the OS.
Dept of Clients 📱
FluffyChat took a little development break to migrate to Github. However I hope that this improves some flows after all and makes releases more stable in the future. Stay tuned ❤️
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
We're continuing our bug fixing spree following the App Store release:
- massive improvements to the timeline and message rendering
- redaction is now supported for group moderators
- fixed bugs around pasting media into the message composer
- blocked members are now updated accordingly
- improvements to how to exercise the sync loop
- fixed thumbnails for portrait videos
- fixed alert and dialog tint colors throughout the app
- fixed tint colors in dark mode
- fixed incorrect file reply icons
- and we have promoted location sharing from behind a feature flag and made it available to all
Element X Android (website)
Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
- We’re working with Google to get our first version of Element X published on the play store!
- We’re making steady progress with push notifications, our current task is to be testing to ensure the best experience possible for users of the app.
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- Stuck notifications improvements are here! We’re making some significant improvements in the area of stuck notifications that some users have been experiencing. We aren’t taking our foot off the pedal though, we still have some pesky things to iron out and are continuing to work on these.
- For our accessibility work, we’re making great progress on color this week. If you use our Develop or Nightly instances you’ll have seen the changes already. We’re increasing contrast throughout the app, improving legibility and reducing eye strain.
Dept of Encryption 🔐
Messaging Layer Security
Messaging Layer Security (MLS) is now RFC 9420! MLS is an IETF standard for end-to-end encryption in messaging systems. You can read the Matrix.org Foundation's blog post about the publication of MLS at https://matrix.org/blog/2023/07/a-giant-leap-with-mls/, and the IETF's blog post at https://www.ietf.org/blog/mls-protocol-published/. We've been working on integrating MLS into Matrix via a proof-of-concept implementation in Element Web. We have basic functionality working, and even key backup is working. You can read more about our progress and view demo videos at https://arewemlsyet.com.
Dept of SDKs and Frameworks 🧰
Multiplatform Kotlin SDK for Matrix
I fixed two bugs with Trixnity 3.7.1 and 3.7.2 and introduced RoomService::canSendEvent as easy power level check (e. g.
matrixClient.room.canSendEvent<NameEventContent>(roomId)). Currently I'm working on matrix 1.7 compatibility.
Dept of Ops 🛠
Matrix server setup using Ansible and Docker
To learn more see our Storing Matrix media files using matrix-media-repo documentation page.
Slavi also announces
See our Setting up Mautrix Google Messages bridging documentation page for getting started.
Dept of Services 🚀
wordpress is now running an official community Matrix server! https://make.wordpress.org/meta/2023/07/20/matrix-chat-summary-july-20-2023/
Dept of Bots 🤖
A Matrix bot for the Friendly Linux Players community.
The greeter function of the bot now takes a guess at whether a new room member is a guest and sends a different welcome message. This aims to explain that the session does not persist, and that they may create a new account if they want.
Dept of Events and Talks 🗣️
Matrix @ FrOSCon
On August 05-06 the annual Free and Open Source Conference (short FrOSCon) will take place at the German University of applied Sciences Bonn Rhine Sieg. A small team of volunteers from the community has gotten together to organize both a Devroom and a Booth/Stand.
There will be plenty of talks, presentations and workshops about Matrix and lots of surrounding things too, such as talks about open source in German public administration which often includes Matrix. Did you miss our CfP deadline but still have an idea for something you want to present? Get in touch with us at #FrOSCon:fiksel.info.
We might have some shop.matrix.org merch and other things available at the stand - contact us at #FrOSCon:fiksel.info for reservations.
You're attending and want to link up to other Matrix geeks or just other attendees in general? Also join us at #FrOSCon:fiksel.info!
Dept of Interesting Projects 🛰️
cool use of Matrix for comms within a hacked Google Nest Mini: https://twitter.com/justLV/status/1681377298308820992
Dept of Guides 🧭
Matrix Client Tutorial
I've just posted the initial version of the Megolm encryption/decryption section of my Matrix client tutorial. The Megolm section alone is longer than the entirety of the current End-to-End Encryption implementation guide, which, depending on your point of view, could be either a good thing or a bad thing. The next section I'll be working on will be Olm encryption/decryption. The tutorial is available at https://uhoreg.gitlab.io/matrix-tutorial/index.html, and the Megolm section is at https://uhoreg.gitlab.io/matrix-tutorial/megolm.html. The source code is at https://gitlab.com/uhoreg/matrix-tutorial.
Matrix in the News 📰
BWI, maker of BwMessenger (for German armed forces) and BundesMessenger based on and in collaboration with Element, in an interview with German IT news heise https://www.heise.de/hintergrund/Interview-Ueber-den-Bundeswehr-Messenger-und-warum-Open-Source-wichtig-ist-9217085.html
also an interview with me in Heise: https://www.heise.de/hintergrund/Sichere-Messenger-fuer-alle-Matrix-Gruender-im-Interview-9220484.html
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!