18 KiB
+++ date = "2024-09-22" title = "This Week in Matrix 2024-09-22" path = "/blog/2024/09/22/this-week-in-matrix-2024-09-22"
[taxonomies] author = ["MTRNord"] category = ["This Week in Matrix"] +++
Dept of Status of Matrix 🌡️
Josh Simmons (m.org) announces
We had our first Governing Board gathering today at the Matrix Conference in Berlin, with 17 of the 20 members present (4 of which joined remotely)! We got to know each other a little better and discussed many things including Trust & Safety and how we communicate with each other and with the community.
Since this wasn't an official meeting, no votes were taken. The first official meeting of the Governing Board will be taking place soon!
{{figure(img="/blog/img/governing_board.png", caption="The Governing Board")}}
Matrix Conference 2024
The Matrix Conference 2024 is over, the videos are being cooked and the slides are being uploaded. We'll be sharing the recordings with you as soon as they're ready.
In the meantime, a big thanks to everyone who attended, spoke, and helped make it happen. We hope you had a great time and learned a lot about Matrix and the community. We hope to see as many or more of you next year!
{{figure(img="/blog/img/IMG_1747.jpg", caption="The Matrix Conference 2024")}} {{figure(img="/blog/img/IMG_1993-2.jpg", caption="Thank you to everyone!")}}
Dept of Spec 📜
MSC3861: Next-gen auth for Matrix, base on OAuth 2.0/OpenID Connect
Quentin Gliech announces
During the conference I hacked together an interactive client implementation guide for MSC3861: Next-gen auth for Matrix, base on OAuth 2.0/OpenID Connect
https://areweoidcyet.com/client-implementation-guide/
This MSC has been greatly improved over the last few weeks, so I highly recommend checking it out!
The weekly spec update
Andrew Morgan (anoa) {he/him} announces
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.
MSC Status
New MSCs:
- MSC4194: Batch redaction of events by sender within a room (including soft failed events)
- This MSC adds a new endpoint to allow room mods/admins to redact the last N messages from another user in the room.
- MSC4193: Spoilers on Media
- This MSC extends the existing text spoiler support in Matrix to images.
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
Hello from the Matrix Conference 2024!richvdh
,matthew
,tulir
,travisr
,kitsune
and I (anoa
) are around - come find us at the conference if you want to talk spec!
And a final call to developers, protocol designers, and future MSC writers to attend the "Authenticated media & how to ship spec features" and "MSC Process Guidance" talks in LAB 4 at this year's Matrix Conference! We'll be discussing the spec process itself, as well as how large features (and breaking changes in the spec) get designed, developed, and deployed with support from the MSC process.
If you're thinking about how to get your idea for a feature out in the hands of users, these talks are for you!Editors Note: It already was Matrix Conference! The talks about "Authenticated media & how to ship spec features" and "MSC Process Guidance" already happened and you can find the MSC written during the conference as MSC4197. Thanks to Matthew there even has been an implementation. {{figure(img="/blog/img/IMG_2452-2.jpg", caption="An MSC being written live at the Matrix Conference 2024")}}
Dept of Bridges 🌉
Parsee - the jealous XMPP-Matrix bridge (website)
LDA reports
Haven't worked that much compared to the last three months(kinda am at a somewhat important year with school), but I've fixed up some issues and started adding PEP avatars this week, with VCard-based ones coming right up later, and got up static CI builds with some experimental MbedTLS to replace the previous OpenSSL/LibreSSL in that regard(bringing in binaries in the ~2MBs compared to the previous 5(!)). Will probably be working on more important user concerns, mostly involving the syntax for bridged users/MUCs and actual documentation for regular users, though except slightly less time allocated to the project, as I said, I got school, and a slightly more interesting project I have to contribute to that has already gone pretty far!
Megabridge
tulir announces
This month's mautrix releases include the first megabridge releases of the Meta and Google Messages bridges, as well as a new Google Voice bridge. On the non-bridge side, I started a new project for some reason: Meowlnir. Read the full post at https://mau.fi/blog/2024-09-mautrix-release/.
Dept of Clients 📱
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
Mauro Romito says
- has now officially launched with 1.8.3
- we finally have a registration flow for matrix.org, and a way to deactivate your account
- Simplified Sliding Sync is now fully supported, and we allow users to migrate to it if their homeserver supports it.
- Message pinning is not released yet, but will be soon, since its now in its testing state!
- Check out more about EL-X at the matrix conference: https://cfp.matrix.org/matrixconf2024/talk/H3MCSB/
Dept of Non Chat Clients 🎛️
WorkAdventure is now a Matrix client
David Négrier says
We are thrilled to announce that WorkAdventure — the open, decentralized platform for building 2D virtual offices and events — is now also a Matrix client! Every WorkAdventure user will now have a Matrix account automatically created.
{{ youtube_player(video_id="UGHK63mQTz8") }}
This is a huge win for WorkAdventure users. Even when someone is not connected to WorkAdventure, they can still be contacted through a Matrix client like Element X on a mobile phone, directly from WorkAdventure.
We believe this will also be a significant benefit for the Matrix community, as it opens a new use case for Matrix that makes it stand out from other messaging apps.
Technical details
From a technical point of view:
- The client is developed in Svelte JS.
- Provides an OIDC-aware connection to the Matrix server.
- Supports end-to-end encryption.
I will present the new client —including insights on how we developed it— at Matrix Conf 2024 on Saturday, September 21st.
Read our blog article for the release.
Test it yourself!
Source code on GitHub
Matrix Wrench v0.14.3 (website)
Matrix Wrench is a web client to tweak Matrix rooms.
Christian Paul (jaller94) reports
Tweak your Matrix rooms in style. You can now choose your own UI colors in Matrix Wrench.
If you're working with Live Location Sharing (MSC3488, MSC3672), you may want to debug it using Matrix Wrench. It supports a static string, the browser's Geolocation API, and GPX files as input. When selecting a GPX file, it replays the recorded track in real time."
{{figure(img="/blog/img/WyTtlIKmJFJzBpCAfyugeBDh.png", caption="The new interface for locations in Matrix Wrench")}}
Dept of SDKs and Frameworks 🧰
Trixnity (website)
Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers
Benedict says
I'm thrilled to announce the release of Trixnity 4.7. It basically adds support for Matrix 1.11, ensuring that Trixnity stays up-to-date with the latest protocol standards. Additionally, users now have the ability to cancel message sending while the media of a message is being sent. There are several internal improvements and some bugs have been fixed in this release as well.
Matrix Dart SDK (website)
Matrix SDK written in pure Dart.
td reports
meep moop!, breaking change update! We released v0.33.0 and here's a quick rundown from 0.32.0:
- v1.11 matrix spec has now landed via out autogen!
- authenticated media support
- cache well known for better offline support
- database, race conditions and other fixes!
If you are at the matrix conf do join the matrix dart sdk talk for more technical details about the sdk.
That's it for now, until next time! bye byee 👋
Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
Emma [it/its] reports
It's been a few weeks since I've last posted an update, hasn't it?
Changes
- Support for authenticated media has been implemented. You should be able to load images again!
- Single HTTP client implementation has been merged, network connections should now be more responsive!
- Unit tests have been fixed, this should help catch bugs more reliably to ensure stability
- JSON canonicalisation code has been merged, which passes all tests from spec. If you find an incorrect case, please do submit patches to add them to the unit tests!
- Fixed a bug where joining a room that allows viewing history without joining would fail.
- Fixed a bug with sending state events that contain special characters in state keys (eg.
/
). Bots & clients no longer need to work around this.- Added a function to the base Policy content class to calculate a Draupnir-compatible state key, this allows moderation bot authors to easily be in line with Draupnir's state keys :)
Pending changes
- Add some more utility functions to make developer UX more friendly.
- Reduced log output so you can follow what's actually going on.
- Fixed a bug that causes sync to break completely due to trusting event schemas too much.
Changes on ModerationClient's LibMatrix branch
- Support for storing sync data offline, allowing users to not do an initial sync every time the app is reloaded
- Fixed some bugs with how sync changes are processed. Messages should no longer disappear
- Optimised sync processing, didn't benchmark but it's noticeably faster for most users. Maybe by a factor of 20x?
- Added support for a whole load of Synapse admin API's. Client authors can now include support for deactivating users, managing the media repository, and so much more!
- Partial support for Custom profile properties (MSC4133), though this will land in main branch independently!
Project interests
- Licensing: Have you been put off by our choice of AGPL v3? We'd love to hear about it! Is there a better license we could use? Do you have suggestions on how we could maybe implement exemptions?
- Packaging & testing: We would like to get a CI pipeline and packaging going. Are you experienced with Git? We'd love to have you on board to ensure that our packages are as easy to install & use as possible!
- Public code browsing accessibility: Would it help to set up read-only GitHub/GitLab/Codeberg/Forgejo mirrors? Would you be interested in contributing if these existed?
- E2EE: Do you have experience with Matrix' E2EE? We'd love to hear from you in terms of implementing it in LibMatrix!
If you want to help out on these topics, please feel free to reach out at #libmatrix:rory.gay! (N.B. Sorry, matrix.org users, the room is currently inaccessible. We hope to have this resolved soon!)
RE: RE: Funding
Liberapay has been fixed! Donations help me pay my bills, and help me justify working on LibMatrix!
And, as always:
- The code is available at cgit.rory.gay!
- All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
- Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
- Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let us know, we'd love to hear all about it!
Dept of Ops 🛠
Rory&::MatrixUtils - General utility suite for Matrix
Emma [it/its] reports
Lots of tools have been added, updated or reworked since the original post back in May!
A short list of major changes:
- A general tool list has been added, as well as a Labs section! Visit your nearest RMU instance to learn all about them!
- Policy list editor can create new policies (even in bulk!, though beware, bulk addition is still very much in beta, "works but no guarantees")
- Bulk writing of bans via Policy List Editor has deprecated the "Mass CME Ban" tool, which had been written to cover a very specific use case. This opens up the tooling for a lot more users, especially when dealing with spam waves!
- Partial support for the concept of authenticated media, though I'd like to raise a severe epilepsy warning!
- Lots of stability and improvements due to upstream Rory&::LibMatrix changes and improvements
- Some tools have seen a 60%+ performance improvement! (Policy List Editor mainly)
- Membership history viewer is now more informative about what actually changed, enabling more uses for the tool
- Joining a space's children is now recursive
The "first party" instance is available at https://mru.rory.gay, and is a clientside-only web app! If RMU has provided value in your daily routines or as a one time thing, please do consider donating over at Liberapay!
And, as with all of the other projects:
- The code is available at cgit.rory.gay!
- All contributions are more than welcome, be it documentation, code, layout/UI/UX improvements, anything!
- Discussion, suggestions and ideas are welcome in #mru:rory.gay
{{figureVideo(vid="/blog/img/matrix_utils_22_09_24.webm",caption="A demo of the new policy editor features")}}
Dept of Events and Talks 🗣️
Talk about Cryptographic Key Infrastructure in Matrix
Sumner Evans says
I gave a talk about Cryptographic Key Infrastructure in Matrix at the Matrix Conference on Saturday.
I wrote a companion article, which you can read on my blog.
Matrix Federation Stats
Aine [don't DM] announces
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
9926
Matrix federateable servers have been discovered by matrixrooms.info,3064
(30.9%
) of them are publishing their rooms directory over federation. The published directories contain22153
rooms.Stats timeline is available on MatrixRooms.info/stats
Dept of Ping 🏓
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
#ping:maunium.net
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | fost.re | 170 |
2 | conduwu.it | 235 |
3 | nerdhouse.io | 268 |
4 | saneke.eu | 296 |
5 | bi-vibes.com | 311 |
6 | catboyindustries.co | 337 |
7 | puppygock.gay | 379 |
8 | rory.gay | 401.5 |
9 | doctoruwu.uk | 403 |
10 | codestorm.net | 409 |
#ping-no-synapse:maunium.net
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | fost.re | 86 |
2 | conduwu.it | 92 |
3 | transgender.ing | 164 |
4 | bi-vibes.com | 164.5 |
5 | saneke.eu | 178.5 |
6 | nerdhouse.io | 181 |
7 | uwu.sulian.eu | 216.5 |
8 | codestorm.net | 223.5 |
9 | inu.is | 254 |
10 | vengeful.eu | 258.5 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!