Matrix Live

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:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

Steady progress across a range of MSCs this week. I'm particularly excited to see MSC2409 to reach FCP given its widespread use. Perhaps MSC4203: Sending to-device events to appservices is next?

Dept of Servers 🏒

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) {he/him} says

This week we released Synapse v1.118.0rc1. The major thing to be aware of is that Python 3.8 is now end-of-life. As per our Deprecation Policy for Platform Dependencies, Synapse will be dropping support for Python 3.8 in the next release; Synapse 1.119.0.

Otherwise, Synapse 1.118.0 is the first release to support Python 3.13! PostgreSQL 17 is also supported as of this release.

Other highlights in this release include an experimental implementation of MSC4210: Remove legacy mentions, and the ability to set one's display name upon registering via JWT. In addition, there's the usual round of bugfixes and internal changes. See the release changelog for the full details!

Dept of Clients πŸ“±

Extera

OfficialDakari says

Some improvements for Extera are made. Here is what I've changed:

  • Reaction styles. I've completely redesigned reactions in messages.
  • Perfect browser back button handler. Primarily it's made for mobile. Now you can close modal dialogs with back button, and it works.
  • Custom CSS themes! Now you can add Custom CSS Themes to Extera.

Also, here are upcoming things:

  • Custom JS plugins. You will be able to inject JavaScript into Extera, like themes.
  • Custom AI bots with persona (on extera.xyz homeserver). I will announce in Extera's chat when AI platform for Matrix will be out. Users will be able to create AI bots with GPT-4o + custom system prompt and more.

Best regards, Extera team developer

Element X iOS (website)

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

Doug reports

  • Element X iOS 1.9.3 is in TestFlight and will be available next week. It adds support for rendering media captions in the timeline, showing verification badges when looking at a room member’s details and fixes a bug with media upload where we sometimes included an incorrect image size.
  • Work on support for Knocking continues and we’re currently updating the Reaction Picker to include a Frequently Used section so you don’t have to hunt for your favourite emoji all the time.
  • Version 1.9.3 is the last version of Element X iOS that will support iOS 16. The next version we will release will require iOS 17 or 18 as we prepare the way to fix some longstanding bugs that should be addressed by using newer SwiftUI components.

Dept of Widgets 🧩

Matrix Widget Toolkit

Kim Brose (Nordeck) reports

It's been a bit over a month since we updated our Matrix Widget Toolkit to the newest MUI, React, Redux, and Matrix versions just before the Matrix Conference, so we are happy to share the newest update with you today.

While the list isn't long, it is quite significant. We migrated away from Facebook's Create React App (CRA) framework in favour of the new and actively maintained Vite framework (mind the French pronunciation πŸ˜‰). This allows us to update some dependencies with known issues that were kept back behind CRA. Along with that, we also swapped out our testing framework from Jest to the Vite-native Vitest. If you're consuming the toolkit, you might already be using our @matrix-widget-toolkit/testing package, which conveniently exposes a helper to mock the widget API. These breaking changes caused us to release a new major version of the testing package.

With that, up-to-date package versions of the toolkit components are now:

  • @matrix-widget-toolkit/testing@3.0.1, based on vitest
  • @matrix-widget-toolkit/api@3.4.2, @matrix-widget-toolkit/mui@2.0.6, @matrix-widget-toolkit/react@2.0.3, all now tested using vitest
  • @matrix-widget-toolkit/widget-server@1.0.6, with a slightly newer nginx as its base

All the packages can be found in the releases section of our repo.

You can see a demo of what the toolkit can do using our demo widget.

If you have any questions or feedback, please reach out to us using our public room #nordeck:matrix.org.

Dept of SDKs and Frameworks 🧰

Trixnity (website)

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

Benedict says

A new release of Trixnity is out. It supports files larger than 2.1GB now, has some API improvements and there are some new helpers regarding file handling. Additionally a few bugs has been fixed. Matrix 1.12 support is also implemented, but will be part of the next release.

matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

bnjbvr says

Hello everyone! Here's for the first Matrix Rust SDK update for a long time, for updates which happened this week, as generated by our new release process helper! More news about a new Matrix SDK release coming Soonβ„’.

SDK

  • Support for preallocated media content URI has been added in Media::create_content_uri(), and uploading the content for such a preallocated URI is possible with Media::upload_preallocated().
  • Uploaded medias can now be cached in multiple attachment-related methods like Room::send_attachment.
  • When SendAttachment::store_in_cache() is set, the thumbnail is also cached with a sensible default media request (not animated, scaled, same dimensions as the uploaded thumbnail).
  • RoomListService::subscribe_to_rooms no longer has a settings argument.
  • Room list service: Add m.room.topic and m.room.pinned_events in all_rooms.
  • Room list service: Add the m.call.member state event in the required state.
  • (internal) Event cache: Dropping a LinkedChunk UpdatesSubscriber release the reader token for the GC.

Crypto

  • We now persist the error that caused an event to fail to send. The error QueueWedgeError contains info that client can use to try to resolve the problem when the error is not automatically retry-able. Some breaking changes occurred in the FFI layer for timeline::EventSendState, SendingFailed now directly contains the wedge reason enum; use it in place of the removed variant of EventSendState.
  • Add more reason codes to UtdCause.
  • matrix_sdk_crypto::type::events::UtdCause::Membership has been renamed to ...::SentBeforeWeJoined.
  • Don't warn about verified users when subscribing to identity updates.

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

Matrix Dart SDK (website)

td says

meep quick major version release twim announcement -

v0.34.0

  • Powerlevel updates are no longer local echo'd, we wait for the update to come down sync.
  • Fix a ton of edgecases parsing message bodies
  • We also added v1.12 endpoints support.
  • Auto-generated objects now also have proper equality and hashcode overrides so you can just compare 2 objects now.

That's it for now, see you soon bye byee

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune announces

libQuotient 0.9.0

After a few release candidates, the new stable branch and the new version of libQuotient are officially released! Matrix 1.12 under the hood, cross-signing support (finally in stable), lots of refactoring and cleanup after transition to Qt6-only code and a flurry of smaller features and fixes. The release notes are where you would expect them.

Elm SDK (website)

A more consistent alternative to the matrix-js-sdk, written in Elm.

Bram says

Elm SDK beta 3.6.0

Despite being a minor update, the number of new features is major! The beta 3.6.0 Elm SDK update adds the following features:

  • Added Matrix.Room.getState to explore a room's state
  • Added Matrix.leave to leave rooms
  • Added Matrix.Invite module
  • Added Matrix.Event.redact and Matrix.Room.redact to redact events
  • Added Matrix.Room.name, Matrix.Room.topic & Matrix.Room.pinned_events to quickly access the most commonly used state events

Additionally, using backwards compatibility, the Elm SDK now supports ALL official spec versions! (Including historical ones.) This means that you can safely update the Elm SDK without needing to wait for your homeserver to update. You can now view the supported versions document for an in-depth table.

Dept of Ops πŸ› 

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi reports

matrix-docker-ansible-deploy now supports installing and configuring Matrix Authentication Service (MAS).

Huge thanks to Quentin Gliech from the Element / Matrix Authentication Service team for answering our numerous questions about MAS.

Our Setting up Matrix Authentication Service documentation page has more details about this new service, what you might expect from the switch and how you can migrate your existing (Synapse) homeserver setup to it.

Dept of Services πŸš€

Synapse-Admin

Aine [don't DM] reports

A while back, we at etke.cc announced our Synapse-Admin fork, and we're excited to share more QoL changes and a new feature

Apart from that, the #synapse-admin:etke.cc room has been created - do not hesitate to say hi!

Source code, admin.etke.cc (CDN version)

Dept of Bots πŸ€–

Draupnir (website)

Gnuxie πŸ’œπŸ reports

Draupnir, a moderation bot, has released v2.0.0-beta.8. This release includes improvements to safe mode, we now show which persistent configuration properties have caused Draupnir to enter safe mode. We also have made a few changes to Draupnir's logging to give system admins feedback on how Draupnir is configured. For all the details, check the release notes.

I've also written a blog update about what I have been working on over the last month or so and I also talk through an update to the Draupnir roadmap.

https://marewolf.me/posts/draupnir/2406.html

Please note that in this release the minimum node.js version required to run Draupnir has been updated from Node 18 to Node 20. If you are using Debian, please follow our documentation for using Debian and node source here, which was kindly contributed by Sky.

If you have any questions or need help with anything related to Draupnir, please find us in our support room at #draupnir:matrix.org.

Matrix Federation Stats

Aine [don't DM] reports

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

As of today, 10274 Matrix federateable servers have been discovered by matrixrooms.info, 3145 (30.6%) of them are publishing their rooms directory over federation. The published directories contain 22149 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
1conduwu.it151
2transgender.ing185
3envs.net192.5
4tomfos.tr197
5awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay203
6pissing.dev208
7constellatory.net233.5
8girlboss.ceo251.5
9nerdhouse.io256
10synapse.rntpts.de292.5

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