๐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:
- MSC4276: Soft unfailure for self redactions
- Closed in favour of alternative approaches to the problem.
๐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. TheLatestEvents
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 contain18249
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 | tuwunel.love | 140 |
2 | continuwuity.codestorm.net | 168 |
3 | codestorm.net | 218 |
4 | nerdhouse.io | 266 |
5 | emzee.me | 272 |
6 | ncat.cafe | 272.5 |
7 | thesilentlink.org | 310 |
8 | wolfspyre.io | 345 |
9 | laincorp.tech | 371 |
10 | ellis.link | 375.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