Matrix Live

Dept of Spec ๐Ÿ“œ

Andrew Morgan (anoa) announces

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:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

Spec Updates

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!

Random MSC of the Week

The random MSC of the week is... MSC3959: Sliding Sync Extension: Account Data!

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.

Dept of Servers ๐Ÿข

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

dmr says

Last week's Synapse update was missing. In a nutshell, we released Synapse 1.93, which included two low severity security fixes:

Please see the advisories for more details, or contact [email protected] 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 performance improvements; plus documentation and internal improvements.

On develop, Patrick has been working to land further minor performance improvements 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.

Dept of Bridges ๐ŸŒ‰

Hookshot 4.5.1 & security fixes (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Andrew F reports

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 medium severity 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

The release is available at https://github.com/matrix-org/matrix-hookshot/releases/tag/4.5.1, or by doing docker pull halfshot/matrix-hookshot:4.5.1. And as usual, feel free to direct any questions about Hookshot in our Matrix room: #hookshot:half-shot.uk

Dept of Clients ๐Ÿ“ฑ

Neochat (website)

A client for matrix, the decentralized communication protocol

Carl Schwan announces

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 (website)

Matrix client for Emacs

alphapapa announces

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.

Feel free to join us in the chat room: #ement.el:matrix.org!

Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

ศ˜tefan says

Ahoy, me hearties, from the Element X rocket ship to planet awesomeness ๐Ÿš€โœจ. This week we had ourselves a little shanty and came up with:

Fair winds and following seas! ๐Ÿ‘‹๐ŸŒŠ

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit says

  • 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.

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Johannes Marbach announces

  • 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.

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit reports

Dept of SDKs and Frameworks ๐Ÿงฐ

matrix-nio

Paarth Shah says

It's been a hot minute since the latest release back in July, but we've now just released matrix-nio 0.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!

Emma [it/its] announces

Rory&::LibMatrix

New features

  • 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:
await foreach (var sync in _syncHelper.EnumerateSyncAsync(cancellationToken)) {
    // Use sync response here
}

Do note that this does not call sync callbacks!

Changes

  • 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!

And, as always:

  • The code is available at my git domain
    • If anyone wants to contribute a page to put there instead of a plain dumb git directory, please feel free to!
    • All other contributions are more than welcome, be it documentation, code, anything!
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay

Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Rumaโ€™s approach to Matrix emphasizes correctness, security, stability and performance.

Kรฉvin Commaille announces

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.

Dept of Ops ๐Ÿ› 

synadm (website)

Command line admin tool for Synapse (Matrix reference homeserver)

jacksonchen666 announces

Hi! No releases, just a progress update.

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).

I have some ideas, but it's probably good to ask users too...

So, if you have some command name ideas, please do send them in the new thread in the synadm room.

Dept of Services ๐Ÿš€

Aine announces

Matrix Rooms Search Update!

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.

Try MatrixRooms.info, check the source code and say hi in #mrs:etke.cc room

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
1matrix.im437
2damaj.tech467
3waifuhunter.club526
4tcpip.uk606
5nitro.chat660
6wcore.org681
7casavant.org795
8matrix.hdhog.ru817.5
9ilmari.org843.5
10nerdhouse.io982

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1spqr2gang.com154
2skladka.net171
3l1qu1d.net189.5
4dendrite.kootstra.frl312
5inu.is326
6littlevortex.net359
7herkinf.de518
8matrix.its-tps.fr553
9kanp.ai619
10matrix.fryer.net.au740

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.

Support us