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://matrix.org/docs/spec/proposals.
Ever noticed how when you forward an event in Matrix today, it simply looks like you’ve just copy/pasted the message and sent it yourself? Other messengers will often include some metadata with the forwarded message to inform the room that it’s a message originally from another room and/or user, rather than being originally authored by yourself.
This MSC attempts to optionally add that metadata to messages, with the crucial goal of preventing that metadata from being faked (which could be dangerous). Check if out if that’s something that interests you!
This week the team released Synapse 1.67.0rc1! This first release candidate includes a few features, a bunch of notable performance improvements and bugfixes, and also removes the long-deprecated TCP replication. We thank everyone who help us test this RC by running it ahead of the release next week, and reporting any bug or feedback on the Synapse repo or in #synapse:matrix.org, respectively.
Another very exciting thing that happened this week is the merge of the base code infrastructure to support running Rust code in Synapse! You can find more about this in the pull request, but what this means is we can now replace some bits of Synapse written in Python with code written in Rust to make it more efficient. This is not a rewrite of Synapse in Rust, but rather a way for us to optimise some specific hot paths. Currently there’s some more work going on with implementing push rules support in Rust, as well as converting some caching code. Watch this space for more info!
This week we released Dendrite 0.9.7 with quite a few bug fixes and performance improvements. It’s a recommended upgrade, so if you have a Dendrite installation, please upgrade! Changes include:
Initial supporting code to enable full-text search has been merged (although not ready for use yet)
Newly created rooms now have higher default power levels for enabling encryption, setting server ACLs or sending tombstone events
Incoming signing key updates over federation are now queued in JetStream for processing, so that they cannot be dropped accidentally
A race condition between the roomserver output events being generated, forward extremities being updated and room info being updated has been fixed
Appservices will no longer receive invite events which they are not interested in, which caused heavy load in some cases or excessive request sizes in others
A bug in state resolution v2 where events could incorrectly be classified as control events has been fixed
A bug in state resolution v2 where some specific events with unexpected non-empty state keys are dropped has been fixed
A bug in state resolution v2 when fetching auth events vs partial state has been fixed
Stale device lists should now be handled correctly for all user IDs, which may help with E2EE reliability
A number of database writer issues have been fixed in the user API and sync API, which should help to reduce database is locked errors with SQLite databases
Database migrations should now be detected more reliably to prevent unexpected errors at startup
A number of minor database transaction issues have been fixed, particularly for assigning NIDs in the roomserver, cleaning up device keys and cleaning up notifications
The database query for finding shared users in the sync API has been optimised, using significantly less CPU time as a result
As always, please feel free to join us in #dendrite:matrix.org for more Dendrite-related discussion.
FluffyChat 1.6.4 has been released. 🥳 This time it is only a minor bugfix release which also updates translations and some dependencies. The app now tries to automatically request keys for undecryptable messages and displays a detailed explanation why a message is unable to decrypt, when clicking on it.
Full changelog:
Translated using Weblate (Chinese (Simplified)) (Eric)
Translated using Weblate (Estonian) (Priit Jõerüüt)
Translated using Weblate (Galician) (Xosé M)
Translated using Weblate (Indonesian) (Linerly)
Translated using Weblate (Slovak) (Marek Ľach)
Translated using Weblate (Turkish) (Oğuz Ersen)
Translated using Weblate (Ukrainian) (Ihor Hordiichuk)
chore: Adjust bubble color in dark mode (Christian Pauly)
🔒 We had a security release: please update to v1.11.4 ASAP.
The DM flow has seen a rework: when you start a DM with someone for the first time, they will only see the room after you send your first message (in any form) rather than when you first open the room
In labs (you can enable labs features in settings on develop.element.io or on Nightly):
We are getting closer to Element Call being ready for release. We will be running testing next week if you’d like to help out!
We have a new release candidate out and this time around the New App Layout is enabled by default! 🥳 And, as if that wasn’t enough, we have also fixed all the iOS16 issues, just in time for the big release on Monday.
Also starting with this release, Direct Message rooms will only be created when the first message is sent
In ElementX land we fixed the last issues on sliding sync, the timeline can now handle edits, redactions and reactions, we’re implementing proper signing out and started adding more timeline actions like copying permalinks and replies.
Next release 1.4.36 will include the new App Layout, behind a lab flag. To the application settings, then Labs, then Enable new layout. This release will also include a fix for the Push not received and so missing notification.
In the meantime, we are making progress on the WYSIWYG editor, and on creating Direct Message on the first message.
We are also working to improve our test coverage. Currently we are evaluating several options to add screenshot tests to the project.
We’ve just released element call v0.2.11 which we hope should fix any remaining problems with multiple calls (aka split-brain) in a room: please rageshake if you see further problems 🙂
Additionally, we are really excited about embedding Element Call into Element Web and we need your help: It’s time for Community testing.
🕓 12th of Sept (16:00 BST / 17:00 CEST / 11:00 EDT)
❓ Please help us test our new integration of Element Call into Element Web.
I externalized the building of libolm binaries into a separate git repository. As a result, opening the Trixnity project does not need any C-Library-Building-Tools, because the binaries are just downloaded. On the one hand this speeds up building Trixnity significantly and on the other hand contributing to Trixnity is much easier (especially on Windows machines). Just do ./gradlew build.
This week saw the merge of PR/Issue #1000, a milestone, that, though random, marks the continuous progress and pace this project has taken up. 🥂 to the next 1000!
Further more we saw the merge of make create_dm_room public, allowing any developer using the SDK to use it as well saw the first review of the sliding sync PR, which now also has a tracking issue explaining what remains to be done (and when) once the PR has landed. Other than that we had several refactorings, clean ups and minor fixes merged, in anticipation of the upcoming release of 0.6, which we expect to land before the end of the month. If all goes will that release will contain both sliding sync and the new timeline API behind feature flags to use and play with. 🫰 Fingers crossed.
👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.
Matrix CRDT enables you to build collaborative applications (like Google Docs) by using Matrix as backend for sharing application updates.
In this release we’ve updated matrix-js-sdk to the latest version 19.4.0, which was a big jump. This opens up the path to adding support for End-to-end Encryption and Sliding Sync - and are looking for people excited to work on this.
I’ve also rolled it out to the preview version of TypeCell; which is a multiplayer document / programming environment that runs on top of Matrix (more soon!)
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
conduit.rs
109
2
babel.sh
112
3
conduit.hazmat.jacksonchen666.com
208
4
dendrite.babel.sh
253.5
5
matrix.org
272
6
dendrite.matrix.org
313.5
7
babel1.eu
371
8
kernel-error.com
399
9
foxo.me
410
10
cutema.re
558
That’s all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!
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.