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.
Lots of discussion surrounding MSC2702 this week, spread across a few threads.
Otherwise, the SCT are planning to add a general āMSC Checklistā to the PR template for MSCās, which contain various doās and donāts for the contents of MSCs. Our hope is that this will eliminate a lot of repeating errors or gotchas that we find during review, as well as prevent them from slipping through unnoticed. More to follow soon!
This is an additive MSC to MSC3575; the core Sliding Sync MSC. As the title suggests, it adds an extension to Sliding Sync which allows clients to pull down changes to both user and room Account Data.
Clients can activate this extension when making a request to the sliding sync endpoint. See the Extensions section of MSC3575 for details.
Please see the advisories for more details, or contact security@matrix.org with any questions.
This week we released Synapse 1.94.0 rc1, ahead of its release proper on the coming Tuesday. It is a lighter release, but it includes: changes to the way media is served, which should be particularly helpful for bridged users; a few minor performanceimprovements; plus documentation and internal improvements.
On develop, Patrick has been working to land further minorperformanceimprovements which should help to make memory consumption less spikey. Erik has begun to work supporting more than one receipts writer worker, which should help improve Synapseās horizontal scaling. These should both land in Synapse 1.95, expected two weeks from the coming Tuesday.
Lastly, let me express our continued thanks to our contributors, users, and especially the #synapse:matrix.org support community.
Last week brought a Hookshot release which wasnāt posted to TWIM, so hereās your post now!
The release adds a fix to a mediumseverity security issue, thus upgrading to it is highly recommended. The GitHub issue page also provides a workaround for the vulnerability as an alternative to upgrading.
Other than that, there are many new features since the last release posted to TWIM (4.0.0). Highlights include:
Support for Sentry tracing
Support for uploading bot avatar images
Concurrent polling of feeds (defaulting to 4 feeds at a time)
Bridging of GitLab comment replies as Matrix threads
This week in NeoChat, we fixed various regressions from the port to Qt6, which should results in a less glitchy timeline and a key verification and report dialog that works again. In term of new features, James implemented the ability to manage parent and child spaces.
Ement.el, a Matrix client for the GNU Emacs text editor and Lisp environment, has been released at version 0.13. Changes since the last release include:
Additions
Group joined direct rooms in directory buffers.
Command end-of-buffer is bound to N in room buffers.
Changes
Command ement-room-image-show use frame parameters to maximize the frame, making it easier for users to override. (#223. Thanks to Nicholas Vollmer.)
Fixes
Name for direct rooms in directory buffers.
Editing a message from the compose buffer would be sent as a reply to the edited message. (Fixes #189. Thanks to Phil Sainty for reporting.)
Editing an already-edited message. (#226. Thanks to Phil Sainty for reporting.)
Replying to an already-edited message. (#227. Thanks to Phil Sainty for reporting.)
Rendering redactions of edited messages. (#228. Thanks to Phil Sainty for reporting.)
Redacting an edited message. (#228. Thanks to Phil Sainty for reporting.)
Command ement-room-flush-colors maintains point position.
Element X Android 0.3.2 is finally out! It fixes the crash when the user wants to access the Camera to update profile picture, room avatar, or even take a photo to send to a room.
This week we started to work on key backup configuration and unlocking the app using PIN and biometric
Polls epic is done. Later we will add screen to list all the polls of a room, as per the existing Element client.
Emote are now properly rendered in room list/timeline/notification.
We are also adding test to improve the test coverage.
Weāre still stabilising our stuck notification test suite. It looks like some of the flakes might actually represent legitimate bugs. So we are one step in already in terms of starting to actually fix things.
Work on the redesigned right panel has progressed and weāre getting close to landing the initial change to update the visual language.
Weāve finally had time to return to native OIDC in Element Web and started dusting off our earlier POC for refresh tokens to turn it into pull requests.
The migration from Weblate to Localazy on Element Web is complete and translations have been opened up for contributors again. Thanks for bearing with us and please get in touch via https://matrix.to/#/#element-translations:matrix.org if you need an invite to Localazy.
Itās been a hot minute since the latest release back in July, but weāve now just released matrix-nio0.22.0, with some exciting new features, setup for even more features, and code cleanup!
The full changelog can be found here, but some highlights:
Retrieval of Space hierarchies
Support for Token-Authenticated Registration
Allow the creation of custom room_type from the client
Add support for m.reaction events (Closes a very longstanding missing feature)
Add a simple streamed response to download to files
Cleaning up various deprecations
Replacing ALL type comments with type hints
Add ruff for linting, mass-refactor of the whole codebase
We were able to merge a lot of important PRs from the community, including several long-standing ones! Itās my sincere hope that with the following release, weāll be able to have easier, native support for relationships (including threading).
Contributions to make that happen, and much more, are always welcome!
Experimental incremental sync support (resuming sync across sessions)
You are responsible for storing state yourself (the SyncStateResolver class is serialisable, and holds relevant information about syncing, such as the resolved state, sync configuration such as timeout and filter, and what the next batch is)
Sync helper is now decoupled from AuthenticatedHomeServer, this means that you have to construct it yourself rather than calling hs.SyncHelper
This allows running multiple sync loops with different filters
Helper function to merge state lists
This is used by the incremental sync helper, if 2 states match by type and state_key, it gets replaced with the new one
Extension function to format exceptions as matrix messages (ex.ToMatrixMessage("Something went wrong")
SyncHelper now has a EnumerateSyncAsync function, which allows you to run the sync loop as an enumerator rather than a forever-running function:
Moved some event model classes around to further clarify structure
Some have been renamed in order to clarify that they represent room state events
Moved the unused json schema validation API call to the matrix error handling middleware
Moved SyncHelperās sync arguments to properties instead of function arguments
This allows changing eg. filter or timeout without having to implement the sync loop yourself
Refactored Homeserver classes in order to prevent a deadlock due to synchronously trying to call APIs, which depending on the environment succeeds, indefinitely hangs or throws an exception
Further clarified what functions are async
Extended unit tests
Unit tests now clean up their state
We now have 40% test coverage of the base library!
A set of Rust library crates for working with the Matrix protocol. Rumaās approach to Matrix emphasizes correctness, security, stability and performance.
How time flies! It has already been 8 months since our last update, which was also our last release⦠But it doesnāt mean nothing has been going on, quite the opposite.
We have just released Ruma 0.9.0, which has full support for Matrix 1.7 and 1.8, including:
Intentional mentions
event_property_is and event_property_contains push rule conditions along with escaped dotted-paths
Asynchronous media uploads
Improvements to VoIP signalling
Room version 11
And these are not the only changes, here is a small selection of other improvements:
ruma-events, which was merged inside ruma-common a few versions ago, is now its own crate again
The methods to create messages with relations were improved and also support intentional mentions
New convenience methods to manipulate a push ruleset were added
It is now easier to check whether a user is allowed certain actions according to the current power levels of a room
The HTML sanitizing code that was part of ruma-events was split in its own crate, ruma-html, with new features coming soon
The full set of changes can be viewed in the corresponding cratesā changelog.
We still have a bunch of issues opened and always welcome implementations for ongoing MSCs, so donāt hesitate to contribute.
The Rewriting the user modify command PR has made progress. Well, at least in the placeholders part. No real code has been written yet.
However, we are still kind of stuck on command names. Basically, some are a bit too long (e.g. set-profile-picture) and some weāre not sure about (e.g. admin-grant and admin-revoke).
We at etke.cc are thrilled to unveil the latest enhancements to the Matrix Rooms Search, aimed at enhancing your search engine management experience. These updates introduce a range of new features and improvements to enhance optimization and moderation and you can see them in action on MatrixRooms.info - the MRS demo instance managed by etke.cc
1. Banned Room Listing by Server
We have introduced a new endpoint, /mod/list/{server_name}, allowing you to easily view and manage banned rooms from a specific Matrix server. This feature provides a comprehensive list of all banned rooms on the specified server, simplifying the process of identifying and handling problematic rooms.
2. Automatic Room Avatar Resizing and Conversion
The Matrix Rooms Search now includes an automatic room avatar resizing and conversion feature. The avatars of the Matrix rooms will be automatically adjusted to the 40x40px and WebP format, ensuring consistency and dramatically decreasing egress traffic.
3. Banned and Reported Room Counts
To keep you informed about the status of the matrix rooms your MRS instance indexes, we have incorporated a count of banned and reported rooms in the /-/status admin endpoint. This allows you to quickly get an overview of your MRS instance.
4. Prevention of Duplicate Reports
To enhance the reporting system, weāve implemented a mechanism that prevents duplicate reports for the same room. This ensures that moderators can efficiently address issues without being inundated with redundant reports.
5. Automatic Forwarding of Reports
In an effort to improve transparency and communication, the Matrix Rooms Search now supports the automatic forwarding of reports for specific rooms to the administrators of the Matrix server to which the room belongs. If your Matrix server supports MSC1929 and has email address(-es) listed, reports will be seamlessly directed to the relevant administrators.
These updates are designed to enhance the functionality and usability of the Matrix Rooms Search, making it an even more valuable and safer tool for discovering interesting rooms and communities. We hope that these improvements will contribute to a better overall Matrix experience for both users and homeservers administrators.
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
spqr2gang.com
154
2
skladka.net
171
3
l1qu1d.net
189.5
4
dendrite.kootstra.frl
312
5
inu.is
326
6
littlevortex.net
359
7
herkinf.de
518
8
matrix.its-tps.fr
553
9
kanp.ai
619
10
matrix.fryer.net.au
740
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.