πŸ”—Matrix Live S10E23 – Making P2P Matrix more reliable with ReP2P Matrix

πŸ”—Dept of elections πŸ—³οΈ

Robin Riley (m.org) reports

It's Governing Board election season and nominations opened last weekend! This year we're electing representatives for Gold, Silver, Individual, and Associate Members. Learn more on the 2025 election page and consider nominating yourself! You can also drop by the Office of the Governing Board to talk to current representatives and community members.

πŸ”—Dept of Servers 🏒

πŸ”—Matrix Authentication Service (website)

Matrix Authentication Service (MAS) is an OAuth 2.0 and OpenID Provider server developed by Element.

Andrew Morgan (anoa) {he/him} says

MAS v0.16.0 was released this week with a new migration tool! It's still called syn2mas, but it's faster, more accurate and... written in Rust. πŸ¦€ Running it against matrix.org showed users being migrated at a rate of 60k/s!

More details around the new tool, and migrating your homeserver to next-generation auth, is available in the MAS documentation. Please give it a try and send feedback!

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) {he/him} says

Synapse 1.129.0 was released on Tuesday this week. After a rocky start with rc1 a few weeks ago, all regressions have now been fixed. After a successful rc2, v1.129.0 was deemed ready to be finalised.

The release contains some optimisations to token introspection caching when using MAS, as well as some other minor changes. As always, bugs should be reported on the Synapse issue tracker.

πŸ”—Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Matthias announces

Conduit v0.10.0 has now released!

I quickly want to note that in case you missed it, a few months ago, I became the lead maintainer of Conduit, replacing Timo, as he didn't have the time to commit to the role anymore. He is still a member of the project, but now mainly just handles infrastructure, rather than writing code.

This change should allow for more frequent & feature-full, as well as allowing us to accept more contributions faster.

Anyways, back onto the release.

The highlight of this release is the media refactor, which include many improvements to media handling, such as:

  • De-duplicating identical files
  • Retention policies, to configure how long media is stored for, as well as size limits for scopes of media
  • Commands for blocking and purging media, making it easy to remove media and/or prevent it from being downloaded

And more! See !740 for an exhaustive list

The other new features added are:

  • Support for simplified sliding sync !744
  • Appservice pinging !738
  • Knocking !728
  • Refactoring space handling, allowing remote servers to get space information over federation !598
  • Allowing remote servers to leave rooms over federation !728
  • Allowing remote servers to join restricted rooms over federation !618

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

Ivan πŸ¦€ reports

Oh. You're here? Well, you know, we were at the same time busy and in holidays. Anyway. The weekly report gently turns into a monthly report, but who doesn't like long news?

We've spend quite a lot of time doing underground work. Not really visible, but absolutely necessary in order to develop new features.

πŸ”—Event cache

We've fixed a UNIQUE constraint violation in the SQLite store for the event cache. The SQLite query planner was doing something we were not aware of: the execution order of some updates was happily working by accident sometimes, actually in all our tests, and in most real-life situations. But sometimes it was different, and kaboom. Well, this is now fixed in #5001, you can discover how creative we had to be. If someone has a better solution, we welcome it!

Another bug has been fixed where the SDK could believe the start of a timeline has been reached whilst it's wrong, see #4936.

πŸ”—Notification

Calls and notifications have always been tricky to implement. Hopefully, with #4991, we can now check whether a room still has an ongoing call before showing the ringing screen. Rest In Peace dear Bug.

πŸ”—Crypto

Sharing room keys for past messages on invite is making progress with #4988. If we already have cross-signing details for the owner of the device at the point we receive the to-device message, we now store that rather than just the device info.

The experimental-share-history-on-invite flag has been introduced in #4946 to share room history when we send an invite. Pretty convenient!

A racy situation has been fixed when collecting devices. When doing so, the pending to-device room key sharing requests are now taken into account. Read the details of the patch to get more details, #4975.

We also start using the stable identifier for the sender device keys in #4964; the sender_device_keys field has been introduced in the MSC4147.

A bug has been fixed where room keys would be rotated unnecessarily in the presence of blacklisted/withheld devices, with #4954.

πŸ”—Media

Many homeservers expect an encrypted media to be uploaded with the application/octet-stream MIME type. The SDK aligns with this behaviour in #4987.

πŸ”—Threads

We are doing progress about Threads too! The SDK gains new API to list all threads of a room, and the relation events within a thread, go check #4973.

We have also been able to open a thread, and paginate its history, inside ElementΒ XΒ iOS! The event cache had to be disabled for the moment though. Overall, that's a nice progress! The patches are not sent yet, but it shows we are progressing!

πŸ”—SDK maintenance

Refactoring the sync response flow is finished, see #4914, #4925, #4928, #4934. Unsurprisingly, it has created a new bug: state events were wrongly reset instead of updated, #4953. The good news is that things are now isolated and easier to spot and to fix.

With #4940, the room computed display name is now persisted and triggers a notable update. It fixes a long-standing issue where users may not be able to search for a room. Read the patch description to learn more if you are curious about this problem.

πŸ”—Conclusion

That's all folks. See you next… week?

πŸ”—Matrix Federation Stats

Aine [don't DM] says

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 11103 Matrix federateable servers have been discovered by matrixrooms.info, 3293 (29.7%) of them are publishing their rooms directory over federation. The published directories contain 17788 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

πŸ”—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.

RankHostnameMedian MS
1codestorm.net172
2bi-vibes.com217
3usbpc.xyz224
4saneke.eu231
5neko.dev232
6nerdhouse.io240
7nexy7574.uk276.5
8calitabby.net414.5
9catboyindustries.co419
10nadeko.net424

πŸ”—That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

To learn more about how to prepare an entry for TWIM check out the TWIM guide.

The Foundation needs you

The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.

It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.

Support us