πŸ”—Matrix Live

πŸ”—Dept of Status of Matrix 🌑️

HarHarLinks reports

πŸ”—matrix.org Website

2 weeks after the last update at the Website & Content Working Group we have some new updates worth mentioning:

The new ecosystem page listing distributions has landed! We consider a Matrix distribution a collection of software related to Matrix that is deployed and automatically configured so the different pieces integrate with one another. Click the link to find some examples!

In organisational news, you may have noticed the Working Group is not just called "Website", but "Website & Content". This is because the WG is not only responsible for making sure the website works on a technical level, but also maintaining its content. Of course this also includes making sure that any contributions to the website are as good as they can reasonably be. One of our first big topics behind the scenes was thus the creation of the Review & Publishing Policy to try and set a bar we think we can meet, and as well as expectations that Working Group and contributors may assume of each other. The Governing Board has recommended to the Foundation to approve this policy, and it is now added to our repository's CONTRIBUTING.md alongside the already existing guidelines! Next step: set up GitHub to support as much of this as possible with automation.

Of course that's only the big news. For the rest, check our commitlog or follow the Hookshot announcements in our public room #matrix.org-website:matrix.org!

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) {he/him} reports

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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

πŸ”—Spec Updates

Following the release of Matrix 1.16 last week, the SCT have continued to iterate on the MSC labelled Matrix 2.0. It will be exciting to start seeing these proposals land as they cover very exciting features for the protocol (sliding sync, MatrixRTC, OAuth, etc.).

Keep an eye out as the authors and the SCT continue to drive them to conclusion.

πŸ”—Dept of Trust & Safety βš–οΈ

tulir says

πŸ”—Asgard.chat

The Draupnir and Meowlnir hosting service pre-announced 3 weeks ago is now accepting applications. If you need a moderation bot for your rooms, you can find some docs on our website https://asgard.chat/ and join the room at #general:asgard.chat

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element.

Andrew Morgan (anoa) {he/him} announces

πŸ”—Element Synapse

It's been quite the week of releases in Synapse land. Synapse 1.139.0rc2 and 1.139.0rc3 were put out ahead of the planned 1.139.0 release next week. Please try 1.139.0rc3 out (if you're able to) and file any bugs or regressions you find on our issue tracker.

In parallel, Synapse 1.138.2 was released with a performance fix for the delayed events feature. Performance could suffer even if the feature was not used, so be sure to update if you're having performance issues on 1.138.0 (which was when the regression was introduced). The 1.139.0 release candidates also include the fix.

Please note that all of the above releases have dropped support for Ubuntu 24.10 Oracular Oriole as it is end-of-life. Support for Ubuntu 25.04 Plucky Puffin was added in its place.

πŸ”—continuwuity (website)

Continuwuity is a community-driven Matrix homeserver in Rust.

nex (it/she) πŸ³οΈβ€βš§οΈ announces

πŸ”—Continuwuity v0.5.0-rc.8

Author's note: Since the release of this version, several bugs in the new state resolution have been found; it is advised you wait for the full 0.5.0 release for v12 rooms unless you need them today.

Nobody told me I'd need a durable keyboard when we forked 😟 Hey everyone! And everytwo, I see you. Regardless of the number of every you are, there's a continuwuity 0.5.0 rc8 release near you! All of you!

In the past month or so, we've merged 86 pull requests, closed 12 issues, and across 142 commits, modified 180 files with a net 9,650 changes! And the best part is, this isn't even an on-schedule release. In order to get room v12 support ready in anticipation of several prominent communities upgrading their communal spaces, we've ended up pulling this release out of the oven a little earlier than we had hoped. As such, there's not as many new things as we usually add, but that's okay, because sometimes, less is more. Plus the things we did fit in are pretty kickass.

There's an awful lot to go through, so I'll just summarise the eye-catchy things. You can see everything via the rc8 milestone.

  • ✨ Room v12 support! (#943)
  • πŸ” LDAP login (#921)
  • πŸ“΅ MSC4155 invite filtering (#1013)
  • πŸ“€ Leaving a room now reliably tells clients it happened (#959)
  • πŸ”Ž You have greater control over your join vias! (#956)

Huge thank you to the >10 individual contributors who have gone out of their way to directly help with the project, including huge changes to our CI system and amazing packaging fixes and changes, as well as everyone else who beta test changes before they make a release. The project quite literally would not be the same without you 🫢

πŸ”—Where?!

You can download the latest release on our forge. Docker images are also available using forgejo.ellis.link/continuwuation/continuwuity:latest. If you're daring, we also now have maxperf builds, which take advantage of some optimisations in modern CPUs (generally, anything newer than haswell). Use the conduwuit-haswell-linux-amd64-maxperf binary, or docker tag forgejo.ellis.link/continuwuation/continuwuity:sha-b70470f-maxperf. You probably won't notice a difference since continuwuity is super fast anyway, but hey, numbers!

We also mirror our release OCI images to GitLab: https://gitlab.com/continuwuity/continuwuity/container_registry/8871720

We don't currently mirror our releases anywhere yet, however, our source code is also available on GitHub, GitLab, and Codeberg. A few members of the community also mirror, some include releases, so if you have issues with any/all of the forges above, don't hesitate to join our community (below) and ask!

πŸ”—What's next ✨

You can also #main:continuwuity.org, and explore our #space:continuwuity.org, where we have a room for important announcements, a rich offtopic room, and our dev room where we discuss features and bugs. If you run your own continuwuity server, you should also #announcements:continuwuity.org, as important announcements are sent there (and may not be mirrored to the main room).

Anyway, as per usual, most things we're planning to tackle are on our issue tracker, or in a pull request.

πŸ”—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 1.3.0 was released this week!

This release makes a few changes to the Admin API to make MAS easier to administrate from third-party tooling, as well as adds some more commands to mas-cli. Check the link for the full changelog.

πŸ”—Dept of Clients πŸ“±

πŸ”—Fractal (website)

Matrix messaging app for GNOME written in Rust.

KΓ©vin Commaille reports

What is better for celebrating the season change than to test what is going to be in the next version of Fractal? Fractal 13.beta was released just for that, and it brings:

  • A brand new audio player that loads files lazily and displays the audio stream as a seekable waveform.
  • Only a single file with an audio stream can be played at a time, which means that clicking on a "Play" button stops the previous media player that was playing.
  • Clicking on the avatar of the sender of a message now opens directly the user profile instead of a context menu. The actions that were in the context menu could already be performed from that dialog, so UX is more straightforward now.
  • The GNOME document and monospace fonts are used for messages.
  • Most of our UI definitions got ported to Blueprint.

As usual, this release includes other improvements, fixes and new translations thanks to all our contributors, and our upstream projects.

It is available to install via Flathub Beta, see the instructions in our README.

As the version implies, there might be a slight risk of regressions, but it should be mostly stable. If all goes well the next step is the release candidate!

If you have a little bit of time on your hands, you can try to fix one of our newcomers issues. Anyone can make Fractal better!

πŸ”—Dept of SDKs and Frameworks 🧰

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

Your all-in-one toolkit for creating Matrix clients with Rust, from simple bots to full-featured apps, with bindings to Swift, Kotlin, WebAssembly, Go and more, sponsored by Element.

Ivan πŸ¦€ announces

Bonjour everyone! The fog is trying to demoralise the team, but it doesn't affect the pace of bug fixes, performance improvements, and new features! Let's help ourselves with our best tea, sit comfortably, and see what happened recently.

πŸ”—Space

Rooms can be organised in Spaces. It's a nice way for group of people with many rooms to create a hierarchy of rooms. The Matrix Rust SDK is implementing a new Space API.

  • #5717 The FFI bindings were exposing the NonSpace filter for the Room List. Now it also exposes the Space filter, allowing to display the top-level spaces.
  • #5712 The Space List now receives live updates.
  • #5663 It is much easier to navigate from the parent to the children, and vice versa, and get a Space List at each step.

πŸ”—Thread

Threads help to have discussions attached to messages. The Matrix Rust SDK is implementing a new Thread API. The work this week has been around supporting permalinks to a thread or to a threaded message.

  • #5709 Remove an undesired behaviour in the Timeline: when it was focused on a threaded event, the Timeline was receiving live updates.
  • #5678 It is now possible to paginate around a specific event inside a thread with the Timeline.

πŸ”—Crypto

The matrix-sdk-crypto crate is receiving a couple of bug fixes.

  • #5699 Add the new has_devices_to_verify_against function to check if the user has another device to verify against in order to cross-sign their new device. The device must be signed by the user's cross-signing key, must have an identity, and must not be a dehydrated device.
  • #5666 Report inner-outer state key differences as invalid.

πŸ”—Latest Event

The Latest Event API allows to find and display the latest event of a room or a thread. It's used in the Room List for the moment. Last week, we've spent quite a lot of time digging a complex bug around the Room List recency sorter and the Latest Event.

  • #5698 The recency sorter of the Room List is now using the Latest Event's timestamp, with a fallback to the room recency stamp (the old behaviour, which could be wrong because computed by sliding sync server-side β€”the bump_stamp valueβ€”, with sometimes unexpected values).
  • #5673 The LatestEvents is lazy. It computes LatestEvent only for rooms that are listened. One can listen to rooms manually. However, after the Room List that was registering Latest Event listeners automatically, it's now time for the Sync to do the same, making the whole Latest Event API almost a no-op. It should be very rare for someone to listen to a room manually now.

πŸ”—Room List

The Room List is an API helping to display a list of rooms.

  • While trying to fix a bug where 3 CPU cores were fanning at 100% (usually, the sign something bad is happening right?), we have improved the performance and fixed a bug in eyeball, happy collateral damages:
    • #5684 Improve performance of the RoomList by +765%.
    • eyeball#80 Fix an infinite loop when SortBy<Stream<Item = T>> handles a VectorDiff::Set where T is a shallow clone type.
  • #5618 Enable the thread subscriptions extension based on server support, otherwise, when running against a server that doesn't support thread subscriptions, the client may falsely think that its thread subscriptions are not outdated (when receiving an empty, defaulted ThreadSubscriptions section in the SSS response). As a result, it would always use the store, not find most thread subscriptions, and conclude β€œnope, you haven't subscribed to any thread”, which is wrong.

matrix-sdk-search is a new crate implementing a search engine for all the events received by your favorite client.

  • #5694 This crate now has a nice README.md!
  • #5691 The search index file is now encrypted! Security, safety and privacy are not just fancy words.

πŸ”—Media in IndexedDB

  • #5682 It is now possible to get, add, replace and remove media from the MediaStore in IndexedDB.

πŸ”—RTC

Real-Time Communication. The base for video and audio calls via Matrix.

  • #5668 Remove the deprecated CallNotify event in favour of the RtcNotification event.

πŸ”—Timeline

The Timeline is what arranges all the events of a room nicely.

  • #5640 The Timeline can now handle custom events. That's a long-time requested feature. Welcome here!

πŸ”—General

For contributions that fit in no category but are important.

  • #5683 Recently, we've introduced a way to fetch the β€œmost recent used emojis” when reacting to a message. Now the number of emojis are limited to 100 to avoid growing the list indefinitely.
  • #5621 The room notification modes will only change when the push rules change; otherwise, recomputing them is a no-op, and only wastes time. And it was a waste a time. With this patch, room notification is 4000% faster.

πŸ”—libQuotient (website)

A Qt6 library to write cross-platform clients for Matrix

kitsune says

The new version in the stable branch is out; release notes are in the usual place. This release fixes a crash; unfortunately, it's not enough to just sneak in the new library version to fix it though, you actually have to recompile (no code changes needed) your client. Which is why packagers are strongly encouraged to build not just this version of libQuotient but also rebuild the clients depending on it (Quaternion and NeoChat, in particular).

πŸ”—Dept of Ops πŸ› 

πŸ”—Matrix Connectivity Tester

MTRNord (they/them) announces

This week we have 2 new updates:

First of all I resolved an issue which prevented users to subscribe to more than one Homeserver using a single email address. This now should work correctly.

Second of all, there is now a visual representation under the Pipeline tab which is somewhat similar to a GitLab pipeline. This is a goal to make it more approachable to non-technical users. Please note that this is the first iteration of this feature. Therefore, there are some known bugs like the arrows taking a very long time to appear. Help to fix this would be appreciated since with React 19 + react compiler it seems to have gotten quite hard to get this working as the arrows rely on the cards to be laid out in the DOM for calculations.

A schema showing the server discovery pipeline used by the connectivity tester. A first box contains "Input validation", then points to a second called "Well-Known results", that itself points to a third called "SRV Results", that in turn points to a final fourth "Federation Result."

You can as usual check out the code at https://github.com/MTRNord/rust-federation-tester/ and https://github.com/MTRNord/matrix-connection-tester-ui/ Or use it at https://connectivity-tester.mtrnord.blog/

If you want to opt in into the development versions you can use https://stage.connectivity-tester.mtrnord.blog/ instead which features the main branch.

πŸ”—Dept of Bots πŸ€–

HarHarLinks reports

matrix-reminder-bot v0.4.0!

This release has been simmering for a while. Rather than features, it brings some quality of life improvements to existing features.

Creating reminders is now more sane; you can't set a reminder for a few minutes ago any more and daylight saving time zone handling was improved to calculate the right offset year-round. When inviting the bot to an existing room with recent messages, the bot will not anymore try to read and react to them, which would previously fail especially in encrypted rooms.

From the technical side, all dependencies have been updated, and Python 3.12 is now supported. We have also added the GitHub container registry to our release CI, making releases available from both Docker Hub and GHCR at your choice.

Thanks to all who contributed to this release: @svierne, @th0mcat, @cyb3rko!

πŸ”—Dept of Events and Talks πŸ—£οΈ

mcnesium reports

I gave a talk (in German) on Matrix at the annual Chaos event Datenspuren. It is designed for beginners and focuses on overcoming entry hurdles, but also brings up talking points on why we want it, more than for example Signal. Spoiler: Decentralization is the only key against tech authoritarianism.

https://media.ccc.de/v/ds25-506-enter-the-matrix-oder-warum-signal-auch-doof-ist

πŸ”—Matrix Federation Stats

Aine [etke.cc] announces

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

As of today, 10799 Matrix federateable servers have been discovered by matrixrooms.info, 3097 (28.7%) of them are publishing their rooms directory over federation. The published directories contain 17040 rooms.

The most popular server software among the online servers is:

  • synapse: 9348 (86.6%)
  • conduit: 428 (4.0%)
  • dendrite: 386 (3.6%)
  • continuwuity: 244 (2.3%)
  • tuwunel: 221 (2.0%)

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
1tuwunel.love146.5
2codestorm.net217
3tomfos.tr254.5
4nerdhouse.io273
5nyxt.dev296
6matrix.hks-projekt.at299
7vibb.me352
8wolfspyre.io369.5
9calitabby.net383
10gingershaped.computer405

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