Thib was away this week, Matrix Live is finally coming back next week!
Dept of Status of Matrix 🌡️
If you didn't already catch it this week, Gitter has fully migrated to Matrix! 😎
We brought over all of the historical Gitter content to the
gitter.imhomeserver and gave everyone free rein over it via app.gitter.im, a Gitter branded Element instance.
Of course, since it's Matrix, you can use whatever client you want to access your public, private and one to one (now DM) conversations!
You can read about the full details in the blog post: https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/
Happy chatting! 🤠
Dept of Spec 📜
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
- No MSCs were merged this week.
MSCs in Final Comment Period:
Spec Core Team
The Spec Core Team has been busy working away at Matrix 1.6 (released earlier in the week) and aiming to get MSC3925:
m.replaceaggregation with full event, MSC3952: Intentional Mentions, and MSC2677: Annotations and reactions and all of their dependencies through the spec process. These are all MSCs the SCT has been asked to help get through the process - if there's an MSC we should be looking at, please let us know in #sct-office:matrix.org.
With the Extensible Events Core (MSC1767) being accepted last week, the focus now turns to all the other extensible event MSCs for images, files, etc. How does extensible events relate to IETF/MIMI/DMA, you ask? In our mission for having Matrix be the standard for interoperability, we need a content format that works for everyone. Events prior to MSC1767 could work with enough effort, though MSC1767's system makes things a lot easier when representing arbitrarily complex messaging features.
Stay tuned to TWIM for progress in this area. It's a relatively slow process, but we're working through it.
Random MSC of the week
This week's random MSC is MSC2785: Event notification attributes and actions! This is effectively a replacement for the push rules system we have today, and a super interesting one (how do you even design a notifications system?). Focus has shifted a little bit since this MSC was first opened, though its ideas still comes up frequently when aiming to make smaller changes to push rules today.
The chart has been giving us a bit of grief when trying to be generated, but today it seems agreeable enough to include - enjoy :)
Dept of Servers 🏢
Jason Volk announces
Construct 0.9 is out. New commands have been added to manage bridges. I'd like to thank tulir for accepting the associated documentation for mautrix users. I'd like to thank @bgiovanni for driving the features and fixes for this epoch. I'd also like to give special mention to qg of schildichat for helping diagnose issues.
This will be the final minor version. Construct is nearly stable and is on approach to 1.0. Stay tuned for the coming weeks. Don't forget to idle and perform #construct:zemos.net
Dept of Bridges 🌉
A bridge for reading RSS feeds in Matrix rooms.
This week matrix-rss-bridge received support for authentication to Matrix homeservers via access token or login (SSO) token. Thank you to SuperEmotes for contributing!
Dept of Clients 📱
chooj, the Matrix client for KaiOS, is back into the game. Most importantly, with upgrade of the JS SDK used in chooj, chooj doesn't have any known security flaws anymore and usable again. There are many features added and bugs removed, too. Including joining public rooms, saving image to gallery and a better login process.
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- This week we sunset Gitter; users were migrated over to Element. There’s more info here
- As part of this work we’re continuing to work on the migration, polish, and other remaining pieces, including; fully supporting archive rooms
- We completed the first draft of automated Linux packaging!
- A bug was reported on room ordering; it’s been fixed
- Also, we’re investigating messages sometimes sending out of order
In labs (you can enable labs in settings on develop.element.io or on Nightly):
- The rich text editor continues to improve!
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- This week in ElementX land was still mostly about stabilization and bug fixes, but we did manage to sneak a couple of features in too:
- fixed the integration tests and improved the UI ones
- a developer menu for supporting features while in development
- added support for attaching screenshots to feedback reports
- almost finished with the reporting content flows
- started on collapsible room state events
- and more
- Meanwhile there’s a new version of Element available on the AppStore that brings with it the ability to mark rooms as unread and a brand new Poll History screen
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Element Android 1.5.24 has been replaced by 1.5.25 just before making it public because an issue was discovered on the audio player. A crash impacted both voice message and voice broadcast playback. 1.5.25 fixes this and should be available to everyone soon.
- We are also continuing to improve polls.
- On Element X, the developer team got a new member! We are working to store the user credentials in a safer way. Also we are getting ready to start developing all the missing features (there are a lot!).
Dept of SDKs and Frameworks 🧰
Dart matrix sdk (website)
We released another breaking change this week :p bump to v0.17.0
Introduced a couple of new features like upgrading voice calls to video calls, some neat helper functions for group calls. Fixes include cleaning group call state events, fixing the searchEvent function, a way to get own profile from server and then fallback to room profile and also fixes to the /markasdm command.
- fix: ability to upgrade audio calls to video calls (td)
- chore: add a fetchOwnProfileFromServer method which tries to get ownProfile from server first, disk then (td)
- fix: clean expired member state events in group calls (td)
- fix: hasActiveGroup call now checks all group calls (td)
- fix: Check if argument is valid mxid in /maskasdm command (Christian Pauly)
- fix: Fake User object (Christian Pauly)
- fix: Request key in searchEvent method crashes because of wrong preconditions (Christian Pauly)
- refactor: Check config at file sending after placing fake event and add error handling (Krille)
- chore: bump dart to 2.18 (Nicolas Werner)
- fix: setMicrophoneMuted is now async to match setVideoMuted (td)
- fix: implement activeGroupCallEvents to get all active group call state events in a room (td)
- refactor: (BREAKING CHANGE) move staleCallChecker and expires_Ts stuff to an extension on Room, instead of Voip because it makes much more sense per room rather than on voip, also makes testing easier (td)
- fix: populate local groupCalls list on instantiating VOIP() (td)
- fix: starting stale call checker is now handled by the sdk itself because clients can forget to do so (td)
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Kévin Commaille reports
It's been a while since our last update in November, but it just means we have been busier than ever! A lot has happened to follow changes in the Matrix specification as well as fixing bugs in our codebase or making our API easier to use.
We have released Ruma 0.8.0 and 0.8.1 at the beginning of the month. It was long overdue with a lot of improvements, including but not limited to:
- Stabilized support for all the changes and features of Matrix 1.4 and Matrix 1.5
- Making our request types use owned instead of borrowed data
ruma_api!with more flexible macros
- Fixing the serialization and deserialization of redacted events
- Reorganizing our
*EventContenttraits to allow event content types to only implement what is really needed
- Removing sensitive data from the
Debug-format representation of our types
And on the 15th we released Ruma 0.8.2 with a few bug fixes but also stabilized support for all the changes and features of Matrix 1.6!
Although it might be less visible in our changelogs, we also regularly add support for MSCs, and try to keep our implementations up-to-date. A few examples:
- Sliding sync (MSC3575 and others, currently used by Element X via the matrix-rust-sdk)
- Extensible events (MSC1767 and others)
- Push rule condition for room version features (MSC3931 and MSC3932)
We also have a bunch of issues opened if you feel like contributing, so come say hi!
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte reports
- We're continuing our focus on fixing bugs and refactoring our code to make things more robust, especially around sliding sync and the timeline API, i.e. the critical pieces underpinning Element X
- A few more logging / tracing improvements have landed
- We updated the nodejs bindings for matrix-sdk-crypto to allow the use of sqlite for storage instead of sled (Rust database that is unfortunately not well maintained)
Dept of Ops 🛠
Matrix server setup using Ansible and Docker
matrix-docker-ansible-deploy is progressing toward switching to Traefik as the default reverse-proxy, instead of nginx. As a project running everything in containers, it's only natural to be using a container-native reverse-proxy.
Our changelog entry Reverse-proxy configuration changes and initial Traefik support contains the backstory, current progress and future goals.
Dept of Services 🚀
Your matrix server on your conditions
Besides some upstream Ansible playbook feature contributions, a bunch of Matrix-related tools were developed and released as free-software by the etke.cc team over the past year, among which:
- Postmoogle email bridge, which superseded the much more basic email2matrix bridge
- Scheduler - a bot that handles Matrix server maintenance
- Buscarron - a web form to matrix bot
In addition, the etke.cc team has grown and many other service improvements were made.
To learn more about last year's progress, see the full news article.
Dept of Bots 🤖
The biggest change to the bot has been the tweaking of event reminders sent in
#flip:flip.earth. We now send a lightweight event notification 24 hours before the scheduled time of the event, and don't send one if the event takes place in 19 minutes or less.
Outside of these tweaks, there is a minimally-working branch that can send updates to Mastodon! See the Mastodon issue for details. Before this is completed, several things need to be done, including creating events on our website.
Dept of Guides 🧭
Matrix Wiki / Matrix Live Shownotes and Transcriptions
It has been a while since I last wrote about my Matrix Wiki. Mostly because not much happened.
As a Result, I am trying to better/faster build small pages with Shownotes and a Text Transcription of Matrix Live episodes each week.
The first one can be found at https://en.miki.community/wiki/Matrix_Live_S08E17 for the last episode.
Feel free to raise critique, wishes and other ideas in #matrix-live-transcriptions:midnightthoughts.space :)
Dept of Ping
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!