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://matrix.org/docs/spec/proposals.
This week the Spec Core Team worked on MSC2858 (sso ID providers), MSC2403 (knocking) and MSC2746 (voip signalling), as well as held another retrospective of the past month. Discussion mainly focused on process and the new spec redesign. Speaking of whichā¦
New Spec Platform
The new spec has launched! š Check it out at https://spec.matrix.org/unstable! Release versions will be landing sometime soon. Bear with us as we finalise the new release process.
Huge thanks to wbamberg for working hard on bringing the idea to a reality. The Matrix.org foundation will continue maintenance of the platform and continue to make it even better for developers in the coming months.
Weāve already got a number of bug reports that need fixing. If you find anything thatās a bit off with the redesign, please file an issue at https://github.com/matrix-org/matrix-doc. Thanks!
v1.2.3 is out now with a highish priority fix if you have audio thumbnails enabled. Other goodies include an X-Robots-Tag header and some artifact repairs on gif and apng thumbnails. See https://github.com/turt2live/matrix-media-repo/releases/tag/v1.2.3 for the full changelog.
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
Earlier this week we released Dendrite 0.3.11, and since then we have merged a significant number of appservice fixes to master which will go into the next release. With these, bridges should stand a much better chance of working with Dendrite.
Changes include:
Events are now properly sent to interested appservices
Appservice namespace exclusivity is now respected properly
Users starting with _ can now be registered by appservices correctly
Room alias queries for appservices have been improved and should work now
Weāve heard some feedback that Synapseās release cadenceāan RC every other week, with releases in betweenācan feel a bit overwhelming. In response, Iām going to try to write a little less about each RC and instead simply refer to the 1.29.0rc1 Release Notes from yesterday.
Weāll shout a bit more when that matures into a formal release early next week. š
On non-release weeks Iāll try to spend a little more time focusing on the behind-the-scenes aspects of developing Synapse in our TWiM updates. If thereās anything in particular youād like hear about, let me know!
Speaking of, weāre experimenting with using GitHub Discussions for⦠discussions.
We donāt want to go full-on mailing list, but it might be nice to have a place to for slower, asynchronous conversations that donāt quite fit into the more rapid pace of a typical Matrix room.
Iām working on a GroupMe bridge I made based on tulirās mautrix-whatsapp and mautrix-go.
I aim to add features like double puppeting, end to bridge encryption, etc over time, but an alpha release is available now. I would love to get bug reports and testing info to fix them.
A PSA this time around. Please test this release and update as soon as you can when we go to release on Monday next week. Weāve included a change to correct how users are registered against the homeserver to comply with the spec (Synapse accepts a /register call without a type=m.login.application, and versions 2.5.0 and below of the matrix-appservice-bridge sent these invalid requests). Iām hoping to eventually retire this behaviour from Synapse, so the more people that upgrade the better!
Also this PR is the Synapse-side change to remove this behaviour. If your appservice implementation uses this behaviour, please chime in.
Hey folks, this release contains a bunch of tiny-but-useful bugfixes that youād hate to miss out on. The full release comes next week but if you want to help us test early, come and get it while itās hot! This release includes the all important fixes from matrix-appservice-bridge v2.6.0-rc1 which fix a spec compliance issue.
I mentioned a while back that Iāve put Element Web on IPFS.
Since then, I unfortunately had to change its DNSLink domain, so I decided to post about it again, with the new addresses and some minor updates. Here are the former:
ipns://k2k4r8mx8muu913j5oy3e4zvt77xtks8xgxuamlv0ltzwx95lcgk2glw (IPNS hash which the above address points to)
ipfs://bafybeievxs6qzzbfbn6xcbz3xwxhjzxkffjbpwbcc3gikrac6ytqkkutva (IPFS hash of the current snapshot of the above)
In other news, Iāve updated Element on IPFS to v1.7.22 and made a tiny script to easily update it in future. In case itās of use to anyone, itās right here:
#!/bin/bash
if [ "$#" -ne 2 ]; then
echo -e "Invalid number of arguments (got $# but 2 required)!\nUsage: $0 <element web folder> <release tag to download>" >&2
We are currently refactoring the NeoChat room page. Nothing merged yet but scrolling is now smoother, we added swipe gestures to reply on mobile, and more importantly chat bubbles are coming :) Here is a small video of the new timeline, feedback very much welcome.
Mirage
A fancy, customizable, keyboard-operable Matrix chat client for encrypted and decentralized communication. Written in Qt/QML and Python, currently in alpha. https://github.com/mirukana/mirage
Together with Anthony Rhode from Element we have published the room #matrix-admins-edu-german:matrix.org for Matrix Admins at German-speaking educational institutions. Here we want to discuss topics about Matrix in an academic context. The room is open to the public and everyone is very welcome.
How is it not #matrix-admins-edu-deutsche:matrix.org!? This is a welcome public room for the growing number of Matrix Admins in Germany!
I am very excited to launch Cactus Comments (https://cactus.chat) today together with @asbjorn:olli.ng!
Cactus Comments is a federated, web-embeddable comment system. And of course, we federate by building on Matrix!
On the frontend - your website - we embed a Matrix client written in Elm that renders Matrix rooms as comment sections. The client is designed to be especially easy to embed on static sites. Once you log in to the client, it will only communicate directly with your Matrix server of choice.
On the backend, an application service is used to create rooms on-demand and help with moderation. It is built with Python and is completely stateless. It does this by modelling all state in native Matrix objects without any custom events!
The entire thing is free and open source software and we would love it if you were to contribute. We really hope some of you will give it a try!
With things on the Internet vanishing, Iāve been wanting to start saving copies of interesting web pages and videos to my server-at-home.
This really doesnāt involve much more than just running youtube-dl or archivebox on the relevant URLs, but I needed a better way than having to e-mail myself reminders to download thingsā¦
You can run it occasionally (or set it up to run in a cron job!) and it will then read all outstanding messages and feed the text to a given command, such as youtube-dl.
You can choose for it to delete processed messages, or tick them off (ā ). If the command wasnāt successful, it will instead reply with the exit code.
Itās not particularly sophisticated but it might at least be a small starting point for anyone who wanted to make something similar, and it is end-to-end encryption capable because it uses the Python matrix-nio SDK.
See this example of use with youtube-dl; it fails on the second message because itās not a video page URL:
I like this a lot - there are so many uses for this project.
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
envs.net
387
2
maescool.be
464
3
neko.dev
494
4
voolik.pw
572.5
5
fosil.eu
577
6
thomcat.rocks
623
7
kif.rocks
702
8
dodsorf.as
722.5
9
aria-net.org
743
10
matrix.sp-codes.de
753
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.