Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) reports

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 merged this week.

Closed MSCs:

Spec Updates

The Spec Core Team has started to publish their weekly list of MSCs to focus on reviewing in the Office of the Spec Core Team room. The list consists of the MSCs that are ready for immediate review, and would most help advance the Matrix protocol on any given week. This used to happen internally (they started out as weekly ping by a bot, and then slowly became curated by our resident human, Travis). But the idea to publish the list both allows people to easily follow along with what they're doing on a weekly basis (much like these posts, but in real time!), as well as helps push subsequent discussion to public channels.

Otherwise, Travis continues to be hard at work integrating Matrix into the IETF process. MSC3923 - initially published in November 2022 - was proposed for FCP this week (and has nearly passed!). Additionally, MSC3977 was published this week and talks about how Matrix is a great fit for the goals of the IETF's MIMI working group.

This is all ahead of the IETF 116 event which starts on March 26th. The Matrix.org Foundation will be attending remotely.

Random MSC of the Week

The random MSC of the week is... MSC3735: Add device information to m.room_key.withheld message!

This MSC proposes adding a new field, from_device, to m.room_key.withheld messages. This to-device message type is used to inform devices why a megolm session was not sent to them after they requested it.

Devices can request megolm sessions from multiple devices at once, but upon receiving a m.room_key.withheld message from one of them is currently unable to tell which of the devices responded with that message.

The proposed from_device field should not be added to m.room_key.withheld messages that are sent outside of key request flows.

Dept of Servers 🏢

Synapse (website)

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

Shay reports

Friday, Friday, Friday, also known as TWIM day. We here at Synapse have another release for you: Synapse v1.79.0. As always it is packed with features and bugfixes. Some notable highlights include:

  • Added media information to the command line user data export tool.
  • Added an admin API to delete a specific event report
  • Added support for knocking to workers
  • Fixed a bug introduced in Synapse 1.79.0rc1 where attempting to register a on_remove_user_third_party_identifier module API callback would be a no-op
  • Fixed a long-standing bug where a URL preview would break if the discovered oEmbed failed to download

and much more. Feel free to take a deep dive in the release notes and have a happy Friday!

Dendrite (website)

Second generation Matrix homeserver

Till says

This week we released Dendrite 0.12.0, which marks the end of polylith/HTTP API mode.

Features

  • The userapi and keyserver have been merged (no actions needed regarding the database)
  • The internal NATS JetStream server is now using logrus for logging (contributed by dvob)
  • The roomserver database has been refactored to have separate interfaces when working with rooms and events. Also includes increased usage of the cache to avoid database round trips. (database is unchanged)
  • The pinecone demo now shuts down more cleanly
  • The Helm chart now has the ability to deploy a Grafana chart as well (contributed by genofire)
  • Support for listening on unix sockets has been added (contributed by cyberb)
  • The internal NATS server was updated to v2.9.15
  • Initial support for runtime/trace has been added to further track down long-running tasks

Fixes

  • The session_id is now correctly set when using SQLite
  • An issue where device keys could be removed if a device ID is reused has been fixed
  • A possible DoS issue related to relations has been fixed (reported by sleroq)
  • When backfilling events, errors are now ignored if we still could fetch events

Other

  • ⚠️ DEPRECATION: Polylith/HTTP API mode has been removed
  • The default endpoint to report usages stats to has been updated

If you have a Dendrite homeserver, staying up-to-date is highly recommended so please upgrade when you can. Otherwise, if you want to play with Dendrite without having to set up your own infrastructure, the dendrite.matrix.org homeserver is open for registration (upon completion of a CAPTCHA, so you may need to register using Element Web).

As always, please feel free to join us in #dendrite:matrix.org for related discussion.

Construct (website)

A performance-oriented homeserver with minimal dependencies.

Jason Volk says

Construct is inching closer toward public-registration safety for its upcoming 1.0 release. This week I'd like to thank tiix for helping me fix a bug in the registration availability checker, and @dynfox for dropping some documentation for how to launch Construct dockers with certbot.

I'd like to thank @qg:schildi.chat and @bgiovanni for helping me hunt down an elusive auth-rules divergence between Synapse and Construct. This bug affects Synapse users who have been kicked from a room before the summer of 2022 by an admin who runs Construct. After Synapse 1.62, those users are not able to rejoin that room -- ever. This was due to a bug which added unnecessary m.room.join_rules to the auth_events which is no longer accepted by Synapse after that version. This is now fixed on our end going forward, but fixing this retroactively is something I'll be working on over the weekend. I'd like to send my regards to Philantrop 🏳️‍🌈 who first brought this to my attention and is still trying to get back into #construct:zemos.net even at this very moment. Don't worry, we haven't forgotten you! 😁

Construct has over five years of battle-tested experience federating at scale from the very first days of Matrix. If you're looking for an alternative to Synapse to run on a cheap host: less than or equal to 100% CPU usage is our guarantee or your money back. I use it every day at

#construct:zemos.net

Homeserver Deployment 📥️

Helm Chart (website)

Matrix Kubernetes applications packaged into helm charts

Ananace says

My Helm Charts continue to be updated regularly, now offering an improved first-install experience for Synapse through running the original signing key generation as an install hook. The sliding sync proxy is now also packaged as a Chart for those wanting to spin one up to test with.

Dept of Bridges 🌉

Vermicularis (Website)

mijutu says

Vermicularis, the unidirectional Päikky to Matrix bridge, now forwards pictures too.

matrix-hookshot (website)

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

Half-Shot says

Hookshot 3.0.0 storms in and demands attention

Howdy folks, another big release for you coming up. So you remember how last week Justin and Myself came onto Matrix Live to talk about the new bridge widgets and show off how sleek and snappy they are? Well, Hookshot is also getting some updates of a similar flavor. The more observant of you may be starting to notice a pattern of us tarting up our public integrations. Something might well be on the horizon very, very soon :)

In the meantime, here are the latest changes for Hookshot 3.0.0:

  • Add support from migrating go-neb services to Hookshot (#647)
  • Implement grant system to internally record all approved connections in hookshot. (#655)
  • Add support for logging into GitHub via OAuth from bridge widgets. (#661)

and a bunch of other changes too!

You'll notice we're migrating to a grant system for approving connections, which is why this is considered a breaking major release. Please check the notes before updating and give us a quick message if you have any issues or concerns.

And with that, I wish you all a great weekend!

Dept of Clients 📱

Chooj (website)

Farooq reports

In the chooj repository we haven't got any new commit. However, in KaiUIng's which is an important dependency of chooj(not the fattest one, however!) we had several new commits. Mainly, I am trying to use Typescript instead of Javascript for better productivity and catching bugs before production.

Fractal (website)

Matrix messaging app for GNOME written in Rust.

Kévin Commaille reports

As predicted 3 weeks ago, Fractal 4.4.2 has been released and is available on Flathub.

As a reminder, there are no new features, but it makes Fractal compatible with newer versions of our dependencies. Big thanks to everyone who tested the beta version and feel free to uninstall it.

In another news, let's talk a bit about Fractal 5…

We have finally implemented one of the most annoying missing features: sending read receipts and updating the fully-read marker. What is doubly great about this, is that we are now only one feature away from being regression-free compared to our stable release (and a merge request is opened for the last one)!

This means that a beta release is around the corner, but we also have serious performance issues to resolve first. We hope that switching to the new store backend currently developed in the Matrix Rust SDK will fix some of it, but we still need to investigate properly how we can improve the situation.

That's all for this week, don't hesitate to come say hi in #fractal:gnome.org. If you would like to help us, take a look at our newcomers issues (and don't forget to read our CONTRIBUTING.md first).

Element Web/Desktop (website)

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

Danielle 🪖 announces

  • We’re working on the remaining pieces related to sunsetting Gitter.
  • Investigations on Stuck Notifications also are continuing and we think we’ve cracked part of the nut - an MSC coming soon!
  • Our general work on Notifications is also still progressing with some critical MSCs starting to complete their final comment period

Element iOS (website)

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

Manu reports

  • On Element X this week we’ve been focussed on creating the UI for new chat, and other improvements to the DM flow.
  • We’ve also be adding mentions and slash commands to the new text editor and making improvements to permalinks, so tagging people in the timeline should be even easier!

Element Android (website)

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

benoit announces

  • This week the Element X team for Android have been setting up the foundations for push notification, the room list, and translations
  • We’ve also been adding support for mentions and slash commands in the new text editor
  • Permalinks and pillifying MXIDs have also been getting improvements too.

Dept of Non Chat Clients 🎛️

mnotify (website)

stefan announces

mnotify got a few updates:

  • there is now a matrix channel: https://matrix.to/#/#mnotify:hackbrettl.de
  • it can now also send emote mn send --emote (in element: /me command) and notice mn send --notice (e.g. someone left a room or anything else changed) messages
  • information about the current login (e.g. the homeserver url or the token) can be printed with mn homeserver or short mn hs, to ease the development of scripts which use curl for special requests
  • typing notifications can be send with mn typing
  • currently I am working on joining rooms

Circles (website)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright reports

We just published a new Android beta of Circles, the E2E encrypted social network app.

Updates in the v1.0.10 release include:

  • New feature: User profiles as Spaces, with an updated "People" tab showing the people who you're connected with
  • New feature: Scan a friend's QR code to connect with them (ie to knock on their profile Space room)
  • New feature: Notifications using Sygnal or ntfy
  • Bugfix: Better detection of .well-known server information

Interested users can get this latest beta from all the usual sources:

  • Our F-Droid beta repo: https://circu.li/fdroid/repo/
  • Google Play: https://play.google.com/store/apps/details?id=org.futo.circles
  • Source code: https://gitlab.futo.org/circles/circles-android/-/tags/v1.0.10

Dept of SDKs and Frameworks 🧰

Elm SDK (website)

Bram says

The Elm SDK has reached an unofficial alpha version! It can be downloaded and used for testing purposes. Now that the core has been finished, the exposed modules Matrix, Matrix.Room and Matrix.RoomInvite are available with the following features:

  • Automated login & sync
  • Joining / leaving rooms
  • Accepting / rejecting invites
  • Receiving the latest events of a room

Before publishing a version 1.0.0, I aim to implement the following features:

  • Automated login & sync for spec version v1.1 and legacy versions r.0.0.0 - r0.6.1 using sync v1
  • Room membership manipulation (invite, kick, ban, knock users/rooms)
  • A few QOL functions to explore a room's state

You may expect these in the next few weeks. On to a version 1.0.0!

Repo: https://github.com/noordstar/elm-matrix-sdk Public room: #elm-sdk:matrix.org

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

Jonas Platte reports

Shout-out to Kévin Commaille for contributing many of these improvements in his free time!

Dept of Ops 🛠

GitHub Action (website)

Cadair says

I have pushed a small update to my GitHub Action to send matrix notifications about builds. It now correctly backs off if it's rate limited by the matrix server, and has a new option to combine all successful statuses into a single reaction, which is useful if you have a lot of builds.

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi reports

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy can now set up rust-synapse-compress-state's synapse_auto_compressor tool to run periodically.

Learn more from our changelog entry.

Dept of Bots 🤖

flip-matrix-bot (website)

A Matrix bot for the Friendly Linux Players community.

HER0 says

flip-matrix-bot (website)

In the past two weeks, there have been a bunch of small improvements. The events page of the community website now lists upcoming events, and the event pages themselves have received some polish. As a result, links to event web pages are now included in the output of several commands. This makes it easier to see the event time in your local time and to share the event with people who are not in the Matrix room.

Looking to the future, improving these web pages brings us a step closer to integrating with Steam and Mastodon. I've started to investigate these further, but there isn't much to report yet.

Besides website-related improvements, I took some time to add unit tests for the lowest-hanging fruit parts of the code. There are more tests to be added, and further testing improvements may be possible in the future after some refactoring, but this is not a high priority for me right now.

Dept of Interesting Projects 🛰️

bridged.to project idea handing over

Alexey Murz Korepov reports

Searching for people to hand over a business idea of paid bridges for Matrix users to other messengers, for free!

I have a business idea to make a paid service for bridging Matrix (matrix.org) with other messengers using the Bridges feature (https://matrix.org/bridges/). It's like beeper.com, but which works with any MXID on any homeserver. And like t2bot.io, but commercial one and with more bridges available. Yes, t2bot.io is a great project, but free services usually got occupied by a lot of accounts, especially by spammers, and managing all of them for free sounds not so perspective to me. But bridged.to could also provide some free services for the community.

For that purposes I’ve bought a bridged.to domain several years ago, to make cool identifiers of bridges like @telegram:bridged.to, @whatsapp:bridged.to, etc.

But I still can’t find time to implement this idea at all. So, I’ve decided to stop paying for this domain and want to hand over this domain and the whole idea to someone else, who has the time and energy to implement this project.

The idea was to make the payments flexible, per-bridge, for example, $1 per month for each bridge. So, if a user will use bridges to Telegram + FaceBook + Instagram + WhatsApp, they will pay $4 per month, if they stop using some bridges - they pay less. And give a free trial period of 2 weeks for new users, to give it a try.

From the technical point of view, this should look like a standard Synapse server with a custom python module that just block-unblocks sending of messages by the user’s account balance, and also can gather some usage statistics (number of bridged messages per user, etc), and bridges instances, connected via appservices. And some admin panel with UI to manage and administrate this.

All this sounds easy to implement, but I have a lot of tasks at my main job, so have no time to accomplish this, and have decided to hand over this idea to someone else, who might be interested in it, for free.

So, if you’re interested in this idea or want to know more, or even just want to grab the cool bridged.to domain for free - please feel free to contact me via Matrix - @murz:ru-matrix.org.

The domain annual cost is $41.98, it's on namecheap.com, expires at Mar 28, 2023.

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
1jauriarts.org420
2pvv.ntnu.no472
3maescool.be472.5
4casavant.org520.5
5almum.de606
6wcore.org696.5
7shortestpath.dev823.5
8joeth.uk870
9devhonk.tk985
10huddlehaus.com1006.5

#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
1dendrite.s3cr3t.me199.5
2frai.se305.5
3herkulessi.de491.5
4dendrite.kootstra.frl1149.5
5zemos.net1328
6matrix.org1411.5
7075-141-169-120.res.spectrum.com:84462704.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