Matrix Live 🎙

Dept of Spec 📜

TravisR announces

Hello everyone! It's me, not-anoa, here with your weekly spec update. I finally got the scripts to run which means you get a proper update once again (yay).

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.

MSC Status

MSCs in Final Comment Period:

New MSCs:

Closed MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've been looking at unblocking MSC3440: Threads so it can make a smooth journey into acceptance. This involves quite a lot of work to ensure that the features we're concerned about are addressed, but so far the FCP progress on it is looking good.

We're also spending a bunch of time working out what room version 10 looks like to try and fix some usability issues with join rules and general maintenance of things like power levels. The hope is that in time for Matrix 1.3 we'll have v10 out (but not made default) for folks to experiment with.

Random MSC of the week

Your random MSC is MSC2974: Widgets: Capabilities re-exchange. I swear it was actually random and only after running the script exactly once. The MSC is interesting because it allows widgets (a feature working its way into the general spec, slowly) to ask for more permissions when they need them. This ensures the widget doesn't need to ask for everything at startup (which is more likely to mean that it gets rejected), and that it can maintain a clean security state during normal operation.

One day it'll probably make it into the spec as part of the larger widget movement, but first we need to get widgets into the spec properly.

The Graph

Numbers only mean so much, and graphs show progress. Here's the breakdown of MSCs over time:

Of note

If you look carefully at the OpenAPI viewer, you might notice a dropdown for not-client-server APIs 👀. There's still work to be done to bring on the missing APIs, but this is in a place where it can be experimented with. Thanks to Alexandre Franke for getting this over the line :)

Dept of Servers 🏢

Synapse (website)

Synapse is the reference homeserver for Matrix

Brendan Abolivier reports

This week we've released Synapse 1.53.0rc1, which includes a bunch of new features, improvements, and other niceties... But more on that next week when we release Synapse 1.53.0 🙂 As usual, we're super grateful for anyone that helps us test release candidates by running them with their homeservers! Please report any breakage or feedback in #synapse:matrix.org

Apart from this we have been continuing our experimentations with Poetry to better manage our dependencies in our Python projects after we switched Sydent to it last week. We're already starting to see improvements off the back of this work, such as automated security PRs and an opportunity to centralise our automated workflows to better reuse them in our projects (see https://github.com/matrix-org/backend-meta). We look forward to bringing all this goodness to Synapse soon!

See you next week! 😀

Homeserver Deployment 📥️

Helm Chart (website)

Matrix Kubernetes applications packaged into helm charts

Ananace says

And my Helm Chart updates are still happening, also now listed on Artifact Hub for easier discovery. This week saw several element-web updates, finally ending on 1.10.4

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico says

Is using Nheko a bit of a pain on your PinePhone? Do you just want bubbles in your chat app, not raw lines of text? Does Nheko waste too much space on timestamps and other metadata for messages?

Well, I am assuming Malte was annoyed by that or similar reasons. But in the end, they did spend a lot of effort reorganizing the way Nheko layouts messages so that people can have bubbles. This should make Nheko feel much more at home on the PinePhone and it seems like they are doing even more to make Nheko a great experience on mobile devices! But just look at it yourself:

If you are scared now and you think: "This is not the Nheko I came to love!", don't worry, all of this is optional. You can play around with the different avatar sizes as well as the bubbles themselves. You can even make Nheko look like it always looked!

There will be some regressions though. If you want to contribute, it would help a lot if you test those changes and report issues that you find! <3

Apart from that, there were also a lot of other bugfixes and cleanups by various contributors. You can also hide events by type now. If you don't want to see stickers or when someone joins a room, just disable that in the room settings! Tastytea implemented that. Long usernames should now also no longer overflow the profile pages and you can reset the state for a single room using the /reset-state /command. This is helpful when updating Nheko to use widgets, but Nheko just threw those events away (or pinned messages or other state events).

That's all, have a wonderful bubbly day!

Element (website)

Everything related to Element but not strictly bound to a client

kittykat reports

Hello and welcome back to another week at Element!

Location Sharing

  • As of this week, Location Sharing is now available by default for users on all platforms, except desktop where you can receive but not send locations.
  • We’re starting work on the next stage, which is to enable live location sharing, and ‘pin dropping’ where you can pick any location on a map to share.

Threads

  • Threads are now live in Labs on all Element platforms!
    • Please remember this feature is experimental; let us know your feedback and report any bugs as we continue to improve.
  • The teams on all platforms are working hard on improving the stability and performance of Threads.

Element Web/Desktop (website)

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

kittykat says

  • The new search experience came out this week, you can enable it in Beta to try it out! We are collecting feedback from users to inform upcoming improvements.
  • We’re working hard on smashing bugs and reducing the number of defects.

Element iOS (website)

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

kittykat announces

  • Along with closing bugs, we’re working hard on adding finesse to our app and removing some of those “papercut” issues that users experience.
    • Keep your eyes peeled for updates and let us know what you think!
  • Our first time user experience is being updated also. We’ve introduced new splash screens to help introduce Element. Don’t panic! You can skip straight to “sign-in” if this isn’t for you.
  • A new spinner is here… While we work on the speed and performance of the app we’ve introduced a new spinner that does not get in your way while you work.

Element Android (website)

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

kittykat says

  • Bugs and Papercuts… Our app is getting some love from our developer team as we try to reduce confusion and simplify flows throughout the app.
    • Keep an eye out for any small changes and let us know what you think!
  • Creating a new account in Element can be intimidating for new users, especially those who aren’t familiar with Matrix. We’re introducing new screens and simplifying our questions so that users can sign up with confidence!
    • If you have any feedback, or want to share your thoughts on our first time user experience, get in touch.
  • A new layout option hit our app this week: Message Bubbles! If you’re used to seeing inbound messages on the right, and outgoing messages on the left this might be for you. You can access the new appearance option from Settings.

Dept of Non Chat Clients 🎛️

Beeper media viewer

tulir says

I wrote a small web app thing that can download, decrypt and display Matrix media in a browser. The goal is to use it in the Android SMS bridge for sending attachments that are too big for MMS, but it might be useful for other things too.

Currently it consists of the web frontend, a maubot plugin to generate links, and a small server that stores file metadata (so the URLs just contain the decryption key and a short ID to find the metadata on the server). I'll probably continue working on the exact URL format to make it shorter and to encrypt the metadata, and maybe also add an alternative mode where all info is included in the URL to make the server component optional.

You can try it out by sending files in an encrypted room with @media:maunium.net. It'll reply with a link like https://media.mau.chat/AGIPyjtJQAU#KHBwuZFrv1ffCd4ZUylo8MV03P9N4sz2T75zLi1Urcw

The code can be found at https://gitlab.com/beeper/media-viewer

Cactus Comments (website)

Cactus Comments is a federated comment system for the web, based on the Matrix protocol.

Asbjørn says

Cactus Comments is a comment system for the open web, built on Matrix.

Another small-ish release for the client: v0.12.0

This update introduces a new UI for the login form.

Here's the changelog:

  • Re-structure login form to more clearly separate matrix.to links from direct login.
  • Require user id (e.g. @alice:example.com) instead of username. Only show homeserver url field if .well-known lookup fails.
  • Add top-right "X" button to close login modal.
  • Login modal now closes when you press outside it.
  • Fix some CSS bugs related to positioning the login form in viewport center.
  • Make LoginForm a stateful component.

/ipns/latest.cactus.chat is updated to point to the latest release, so sites linking there should already be using the new version.

Try out a live demo: cactus.chat/demo

Join our Matrix room: #cactus:cactus.chat

Dept of Ops 🛠

f0x says

I worked on adapting the NixOS module for Synapse to support worker deployments. It's a great reproducible deployment method, and super easy to configure. My module is perhaps less quality than the rest of the chain, but it's pretty neat to define your whole Matrix deployment like this: https://git.pixie.town/f0x/nixos/src/branch/synapse-workers/nodes/cosmos/containers/synapse-workers.nix#L60 and have Nix figure out all the systemd units and nginx routes that have to be added

Full Nix code for the module is at https://git.pixie.town/f0x/nixos/src/branch/synapse-workers/common/modules/synapse pictured is the ping stat for a little test deployment with 8 federation senders :P

Dandellion dares

do tell your about publishing my NixOS module for workers in a git repository as well then 👀? https://github.com/dali99/nixos-matrix-modules

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

matrix-docker-ansible-deploy now supports installing the matrix_encryption_disabler Synapse module (details here), which homeserver admins can use to prevent End-to-End-Encryption from being enabled by users on their homeserver. The popular opinion is that this is dangerous and shouldn't be done, but there are valid use cases for disabling encryption discussed in this Synapse issue.

Dept of Services 🚀

etke.cc (website)

Your matrix server on your conditions

Aine reports

🎉 Today marks 1 year of the etke.cc! 🎉

During that year, we did:

  • Pushed 234 updates and enhancements to the automation framework used as the service core
  • Integrated 17 additional components to the matrix stack
  • Developed 5 bots and tools to extend matrix capabilities
  • Installed 92 new matrix servers
  • Helped 172 people and organizations to achieve their goals in the matrix
  • Posted 74 updates in the announcements room

Some history:

  • the project (not service yet) started on February 12, 2021
  • the first installed server was etke.cc itself (yes, etke.cc homeserver is a customer of etke.cc service from the day 1)
  • the second installed server was a chatbot, that uses matrix as a platform to interact with users across different chat networks (Telegram, WhatsApp, Signal, etc.) - one API to rule them all.
  • In May 2021 the service was published globally

#news:etke.cc | #discussion:etke.cc

Dept of Bots 🤖

matrix-wordle (website)

An implementation of the popular Wordle game for the Matrix Protocol.

krazykirby99999 reports

An implementation of the popular Wordle game for the Matrix Protocol.

Source: Github Repository

Made with simplematrixbotlib

Setup

Install Python 3.8 or higher

Install python-poetry

python -m pip install poetry

Clone Repository

git clone https://github.com/KrazyKirby99999/matrix-wordle.git

Install Dependencies

cd matrix-wordle
python -m poetry install

Usage:

Set environment variables

HOMESERVER=https://matrix.org
USERNAME=wordle-bot
PASSWORD=password # or ACCESS_TOKEN=syt_...

Run main.py

python -m poetry run python main.py

Example:

Dept of Interesting Projects 🛰️

TravisR reports

After a few years, matrix-room-directory-server has finally gotten an upgrade to modern times. Intended to eventually be a standalone directory server (making vanity aliases possible, but otherwise not functional as a homeserver), it currently only supports overriding the federation /publicRooms endpoint.

The changes made today are to replace the old, broken, appservice-backed approach with a space-backed approach. You can see this in action on t2bot.io: querying the room directory over federation will hit the room directory server, which is watching #directory:t2bot.io in the background to determine which rooms to serve.

Dept of Guides 🧭

minecraftchest1 says

Hay y'all. I created a blog post about how to host element and matrix .well-known files using cloudflare pages that I thought might be worth sharing. Have a few kinks to work out regarding CORS (might need to clean my browsers cache) though. https://minecraftchest1.wordpress.com/2022/02/17/hosting-element-and-matrix-well-known-files-with-cloudflare-pages/ https://matrix.to/#/#minecraftchest1-blog-matrix-elemet-cloudflare:matrix.org

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
1workers2.pixie.town270.5
2matrix.org320
3neko.dev345
4magdeburg.jetzt427
5koyax.org491
6jae.fi565
7wuks.space664
8fachschaften.org703
9balsillie.net704
10matrix.sp-codes.de743.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
1nognu.de210
2rustybever.be262.5
3cry.is299
4matrix.org322.5
5conduit.grich.sk331
6dendrite.grin.hu568
7conduit.rs613.5
8matrix.sum7.eu635.5
9dendrite.s3cr3t.me896
10dendrite.matrix.org1430

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