Matrix Live 🎙
Dept of Spec 📜
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.
- No MSCs were merged this week.
MSCs in Final Comment Period:
- No MSCs are in FCP.
Dept of GSoC 🎓️
Handle SAS verification by adding an endpoint where the decimal SAS code generated by another device can be sent. If this code matches with go-neb's generated code, the verification succeeds and the device is marked as trusted.
Add a cryptotest service which can be used for other clients to test their functionalities related to e2ee. This currently includes a challenge / response, key forwarding functions (key request / key forward) and SAS verification. SSSS and cross-signing are planned for the future. (PR is under review)
Dept of P2P 👥
iOS P2P Demo
Dendrite is a next-generation homeserver written in Go
Neil Alexander said:
The Element P2P demo on iOS has seen a number of updates in the last week - now at build 31 - which contains a number of fixes:
QUIC session setup is now far more reliable
QUIC sessions are now reset when the node's network coordinates change
The federation sender now wakes up properly on incoming QUIC sessions
Network coordinates are now cached for remote federated nodes, reducing the number of DHT searches and speeding up resuming federation
HTTP pools are disabled, which reduces head-of-line blocking problems on stalled sessions
A number of timeouts have been lowered
Dendrite has been updated to the latest version
If you have an iPhone or iPad and want to play with the demo, grab the public TestFlight!
Dept of Servers 🏢
matrix-media-repo is a highly customizable multi-domain media repository for Matrix
TravisR told us:
v1.2.0 is out now, with a bunch of bug fixes and some added features:
Thumbnail support for apng and webp images (thanks Sorunome!)
Experimental (but pretty stable) support for Redis as a cache - instructions here
Optional oEmbed support for things like previewing tweets - turn it on here
Dynamic thumbnail support
v1.2.0 is also much faster at file uploads, however some areas of matrix-media-repo can still be improved - general performance work is planned for the next release.
Dendrite / gomatrixserverlib
Dendrite is a next-generation homeserver written in Go
Neil Alexander announced:
We are happy to announce the beta milestone for our first versioned release of Dendrite, which we anticipate to land in the next few weeks. Once these issues are cleared, we'll have made the big breaking changes that we want to make and will have a migration mechanism in place for database schema upgrades.
This will make life significantly easier for anyone who wants to start experimenting with and running their own Dendrite homeservers without unexpected breakages. More updates to follow soon - join us in #dendrite:matrix.org for the latest!
This week, Dendrite's end-to-end encryption support has also been mostly rounded off with the exception of a few minor bugs and edge-cases.
Changes this week include:
TLS certificate verification is now enabled by default
federation_disable_tls_validationconfig option has been added to override the above
Added support for processing inbound device lists from federation
Local device list changes are now sent outbound over federation
One-time key counts are now sent in
Direct server signing key fetches are now limited to 15 seconds
State events that fail signature checks on federated room joins are now properly ignored
A number of SQLite database lock bugs have been fixed using
A bug when finding joined hosts in the federation sender in SQLite mode has been fixed
Logging levels have been adjusted in a number of areas
Client-Server APIs: 51%, same as last week
Server-Server APIs: 54%, up from 53% last week
Asked whether this progress means that matrix.org would be running on Dendrite next year, Neil said he was certain that it would definitely be ready:
Anything is possible
Conduit is a Matrix homeserver written in Rust https://conduit.rs
Improve long polling when user is invited (thanks @gnieto)
Documentation and code cleanup
Getting initial server_server code back into shape
Thanks to everyone who supports me on Liberapay or Bitcoin!
Oh and btw look at Matrix Live this week!
This week in Synapse land we continued with our performance push making further progress on the async/await-athon. We will move into the storage layer this coming week which will leave the caching layer and a few other bits outstanding. Separate work continued to get the event persister into a shardable state. The first step being to replace the event stream token with its own type and then threading that through the code base.
We have also continued to improve on our push capabilities and released a new version of Sygnal (0.8.2) with support for pushing to iOS devices via Firebase.
We are also very close to getting a workable version of the new push rules. The idea is to test it out in the wild before getting it enshrined in the spec.
Next week will see a continued focus on sharding and async/awaiting, more notifications work, logging improvements, and a host of bug fixes!
Dept of Bridges 🌉
maubot rss plugin
Other changes since v0.1.0:
- Per-feed toggle to send posts as
- Automatically moving subscriptions across room upgrades
- Some fixes for handling weird feeds
maubot/rss is a maubot plugin that posts feed updates to Matrix rooms. It supports RSS/Atom/JSON feeds, customizing message templates per-feed/room, and more.
All my bridges now have options for automatic e2ee key sharing in portal rooms. Currently they don't have verification support (other than manually marking as verified in the database), so enabling key sharing isn't entirely secure yet. I'll probably invent some sort of web verification interface after nikofil adds cross-signing to mautrix-go.
This also means mautrix-python now supports sending and responding to key requests. I'll port the interactive verification and future cross-signing code from mautrix-go to mautrix-python at some point too.
Dept of Clients 📱
Alexandre Franke offered:
4.4.0 is out as promised last week! Get it off Flathub now.
After we announced our intention to release, we discovered a regression that prevented joining new rooms because there was a mixup between room aliases and room id during a switch from internal structures to ruma-identifiers. Luckily we managed to fix it in time and make the release as intended.
Full changelog since 4.2.2
Videos now have a preview directly in history
New videos player: click on a preview to open it
Improved audio file support, with a nicer presentation and seeking
Redacted messages are removed from history
Edited messages are replaced with their new content and show a small icon
Translations have been updated
Spellcheck language is saved per room
New swipe-back gesture to go back from room to room list in narrow view
New swipe left and right gesture to navigate through media in media view
SOCKS proxy are now also supported
Thumbnail for pasted images have been fixed
File type detection for uploads is more reliable
Typing notifications are now only sent when text is actually typed in the message input
Under the hood
Code refactor is still going
Some improvements to logging, including access token removal for privacy
valere told us:
Sorry we missed last week TWIM!
- Element Android 1.0.4 🚀 has been released to the store, it contains several bug fixes, and is adding back some moderators functionality (see list of banned users for a room + actions)
The team has been mainly working on stabilisation + refactoring of the current code base.
We are also trying to give more visibility on what is coming next:
Pin code protection 🔓 (merged on develop)
Improvement of big media upload
Cancelling send, retries, better upload progress...
Call fixes and improvement
Improve fdroid polling for notification
The team is partially off, expect some delays in handling of issues and PR reviews
SchildiChat is a new fork of Element for Android (previously RiotX), which features some UI changes, to make it more comfortable to use for people who are used to other common instant messengers.
The most important changes are the following:
The overview screen lists all chats in one list instead of the tabbed layout in Element
Message bubbles (optional)
Theme choice based on the system-wide dark/light theme on recent Android versions
It is now available on Google Play, it might appear on F-Droid too in the future.
#schildichat-android:matrix.org is the place to find out more.
New AppImage for the Element Desktop Matrix Client
srevinsaju told us:
As per this issue comment, I was asked to inform this channel of the new AppImage for the Element Desktop Matrix Client. 🎉. Interested users may get them on appimage.github.io or on my releases page, offering Continuous builds (refreshed every day) for stable and beta builds 😃
Hello, World! [IndieChat], a new Android matrix client is in Play Store: https://play.google.com/store/apps/details?id=chat.indie.cam
This is forked from FluffyChat:
I have changed the archive feature. Added a splash screen. Further simplified settings. Login times work faster compared to FC. I am connecting it to my Jitsi instance. which operates p2p and is completely analytics free. Message notifications are analytics free. It will eventually be an extension to a videocall app developed by myself. It adds variety to the ecosystem. It strictly follows license rules, credits the developers and links to their wonderful work. And it is a great thing to do in my spare time ☺️
This week, we started a new sprint to finalise remaining rebranding and iOS13 SDK issues. Note that have a plan to make CallKit and PushKit back!
In parallel, we have finished to setup the CI for the 3 iOS projects.
Dept of Encryption 🔐
uhoreg told us:
I missed out on demo day last week because my demo wasn't ready yet. But I recorded a video, so here is what you would have seen if I had managed to finish on time: https://scitech.video/videos/watch/4aad91c3-30bb-479f-8437-a517354594db
Dept of SDKs and Frameworks 🧰
simple matrix bots with matrix-nio
Hey all! I built yet another bot library. matrixbz was built with the intention of making it easy to draft matrix bots. Check out the github - I've added some examples where you can build a bot in ~10 lines of python code. matrixbz features:
Auth - you can specify user(s) who are authorized to call commands. bot only accepts invites from those users.
Cache - you can cache results for particular command invocations.
Check out the package.
We have released version 0.0.1 of the
rumacrate! Thanks to all of our contributors!
Besides that and continuing to refine
ruma-events, here are some other highlights over the past couple weeks:
Implemented a few more endpoints implemented on
Added helper macros for creating identifier types
Dept of Bots 🤖
Cos told us:
Hemppa the bot is a general use bot that has lot of modules for various uses and super easy API to create more. Hemppa received support for Mastodon. Now you can login to your Mastodon account and send toots via Matrix. Next major feature would be to subscribe to hashtags and users and get notifications to Matrix rooms. https://github.com/vranki/hemppa#mastodon
HOPEless, the HOPE conference bot
The Hackers on Planet Earth conference went almost entirely self-hosted this year due to not being able to hold an in-person event, and used Matrix to go virtual! hopeless was the robot-heart of the conference, providing community+room ACLs for attendees. The bot also has a bunch of other features including:
configured admins sending notices to rooms
ability to manually and programmatically schedule announcements for scheduled events happening, like workshops or talks
the ability for users to re-join rooms and generate invites for themselves as necessary
admin commands for inviting attendees and presenters without tickets
an attempt to be friendly and solve people's common problems without a real person having to assist (surprisingly effective!)
Many thanks to the nio-template for existing, otherwise this wouldn't have been possible!
anoa (nio-template) creator responded:
Wonderful! I plan to give it some more love soon, including some docker magic to make it easier to run.
If you ever have any feedback about improving it, feel free to post it in #nio-template:amorgan.xyz :)
This is just a stupid simple bot based on T r a v i s R's matrix-bot-sdk-bot-template that forwards alerts from a Synology DiskStation NAS to Matrix room(s).
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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!