๐Ÿ”—Dept of Spec ๐Ÿ“œ

Andrew Morgan (anoa) {he/him} 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.

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

Not too much to say this week other than some small progress on existing MSCs.

A PR for defining the process for placeholder MSCs is close to merging, for those that are interested in process!

๐Ÿ”—Dept of Clients ๐Ÿ“ฑ

๐Ÿ”—Element X Android (website)

Android Matrix messenger application using the Matrix Rust SDK and Jetpack Compose.

Benoit reports

We're working on several features at the moment:

  • improving accessibility of the application, by fixing issues regarding content description and accessibility navigation;
  • preparatory work for implementing Spaces;
  • implement latest item around user privacy: the setting for displaying image and invitation avatar is now synced between the clients using the account data;
  • investigating issues around notifications;
  • as usual fixing other issue and keeping the code up to date (dependencies, etc.)

๐Ÿ”—Tammy (website)

Multiplatform messengers build on top of Trixnity Messenger

Benedict announces

Over the past few weeks, Tammy has received several updates packed with improvements. Hereโ€™s a quick roundup of the journey from version 1.1.15 to 1.1.20 (or, in dev-speak, from Trixnity Messenger 3.6.0 to 3.6.10 under the hood). These are the most important changes:

  • โš ๏ธ Fixed decryption issues: A rather silly bug caused a number of problems - most notably, messages couldnโ€™t be decrypted. To resolve this, you should log in again โš ๏ธ
  • ๐Ÿ™‹๐Ÿฟ Reliable presence: Tammy now persists user presence in the database to prevent incorrect presence indicators.
  • ๐Ÿž๏ธ In-memory media cache: The new in-memory media cache from Trixnity reduces RAM usage.
  • ๐Ÿž A lot of bug fixes: We've done a good deal of polishing and resolved many smaller issues.

๐Ÿ”—Dept of SDKs and Frameworks ๐Ÿงฐ

๐Ÿ”—Trixnity (website)

Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers

Benedict reports

Over the past few weeks, Trixnity has received a series of updates packed with improvements. Hereโ€™s a concise summary from version 4.16.0 to 4.16.8 โ€“ just the essentials:

  • โš ๏ธ Fixed decryption issues: A rather silly bug led to several problems โ€“ most notably, messages couldnโ€™t be decrypted. To resolve this, users need to log in again.
  • ๐Ÿ” Vodozemac preparation: Open merge requests are in place for Vodozemac integration.
  • ๐Ÿ™‹๐Ÿฟ Reliable presence: Trixnity now persists user presence in the database to prevent inaccurate presence information.
  • ๐Ÿž๏ธ In-memory media cache: The new in-memory media cache reduces RAM usage when the same image (e.g. avatars) is loaded multiple times.
  • ๐Ÿ”„ Matrix 1.13 support: Now fully compliant with the specification. More spec updates are on the way.
  • ๐Ÿ“‰ Sync stability & cache rollback: Race conditions have been mitigated and consistency between in-memory cache and storage ensured.
  • ๐Ÿž Logout fixes: Improved refresh token handling should prevent random logouts.
  • ๐Ÿ’ง Experimental dehydrated devices: Initial support for dehydrated devices has been added, though it is not yet fully MSC-compliant.

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

poljar reports

The Rust team waves
Okay, there is something new. We are collaboratively writing the TWiM reports now!

๐Ÿ”—Event Cache

  • #5258 and #5225 make it possible for events cached by the SDK to be ordered relative to each other (as long as theyโ€™ve been fetched via sync or paginations; if they were bundled or retrieved with e.g. /event we canโ€™t order them!). This works even if the events arenโ€™t yet loaded into the lazy in-memory representation of a timeline. This will be quite handy for simplifying the unread counts computation, and figuring out whatโ€™s the latest edit of a threaded event, among other things. Unfortunately, this isnโ€™t quite ready yet, since this was causing bugs in production we had to revert it at the moment.
  • #5279 contains the minimal work required to have threaded timelines to be memoized in a linked chunk, and used in the timeline. This should prevent a few network requests, when accessing a thread thatโ€™s already been paginated previously.

๐Ÿ”—Latest Events

The Latest Events is a new API that will help to displayโ€ฆ wellโ€ฆ the latest events, either from the room list for a single room, and from the thread summaries for threads.

  • #5298 The first PR containing all the structural work for the new matrix_sdk::latest_events module has landed. The LatestEvents type is not yet ready for prime time, but at least it's here!
  • More work to prepare the next parts has landed too (#5320, #5330). This is an active topic. More to come next week probably!

๐Ÿ”—Room List

The Room List is a high-level, UI-oriented API used to display the list of rooms.

  • #5311 Do you remember last week when we said that the sliding sync session (used by the room list to sync the data) is now stored persistently? It works great! However, the sync indicator โ€”the small spinner that pops at the top of your screen indicating the room list/the app is syncingโ€” behaves a bit differently. It is displayed when the sync starts, i.e. for the first roundtrip, if and only if this roundtrip is slow. Well, now that we restore the sliding sync session, this first roundtrip never happens again. So we have extended that. Check the patch, it's pretty simple and you will discover how the state machine of the room list works!

๐Ÿ”—Notification client

  • #5327 Add a new log pack for the NotificationClient. This is helpful to debug problems with notifications. A log pack is an option that will automatically enable a set of logs and configure them as expected to get all the required logs; in ElementX, itโ€™s accessible in the hidden developer menu.
  • #5338 makes it possible to distinguish between a notification thatโ€™s been filtered out (because of push rules, for instance) and a notification that couldnโ€™t be resolved.

๐Ÿ”—Dept of Bots ๐Ÿค–

๐Ÿ”—Draupnir (website)

A moderation bot for open Matrix communities

Gnuxie ๐Ÿ’œ๐Ÿ reports

Draupnir v2.4.1 has been released. This update allows the room takedown protection to find rooms on your synapse homeserver without the need for synapse-http-antispam. We have also added support for synapse-http-antispam's new ping functionality and a troubleshooting guide to Draupnir's interop documentation for the module.

๐Ÿ”—Matrix in the News ๐Ÿ“ฐ

Matthew announces

Netzpolitik covers FITKO and ZaPuK converging on Matrix as the standard for public sector communications in Germany: https://netzpolitik.org/2025/verwaltungsdigitalisierung-arbeitsgruppe-empfiehlt-matrix-protokoll-fuer-behoerdenkommunikation/

hagen says

In an acticle published in the Norwegian Digitalisation Agency's blog (in Norwegian), Terje Sylvarnes highlights a couple of talks from this year's FOSS North conference. In Terje's own talk, held together with Hagen Echzell and accompanied by a paper, they present several technical and semantic "interoperability solutions", following vocabulary from the new "Interoperable Europe Act" (EU). By the example use-case of a university alliance, they show how standards like OpenCloudMesh, Matrix, and JSON-LD/RDF can enable file exchange, E2E-encrypted messaging, as well as sharing semantically annotated data and APIs. All of that across organzational boundaries while avoiding vendor-lockin.

๐Ÿ”—Matrix Federation Stats

Aine [away] announces

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

As of today, 13062 Matrix federateable servers have been discovered by matrixrooms.info, 3759 (28.8%) of them are publishing their rooms directory over federation. The published directories contain 18249 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
1tuwunel.love140
2continuwuity.codestorm.net168
3codestorm.net218
4nerdhouse.io266
5emzee.me272
6ncat.cafe272.5
7thesilentlink.org310
8wolfspyre.io345
9laincorp.tech371
10ellis.link375.5

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