An episode with the maintainers of Threematrix, the 100% Rust bridge between Matrix and Threema!
In addition to that, Open Tech Will Save Us will be back on Wednesday 27 at 16:00 UTC! The topic will be “what makes a platform”, or more specifically: “are Linux or the web platforms”. There are many fascinating topics to discuss, such as “is it possible to create an app for Linux” (it’s not as simple as it sounds), “why are some people against theming?”, or “why do developers want to use platforms”.
And to answer that, who other than the Linux desktop most advanced projects GNOME and KDE, and people working on Matrix, the protocol that wants to become as unmissable as the web itself, and more specifically on a deeper integration of widgets with Matrix clients?
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.
Lots of MSCs moving through the pipeline in the last couple weeks! As always, be sure to take a look at those in Final Comment Period above - only a few days left to comment on them before they merge/close!
Otherwise the Spec Core Team is looking to try and get a handle on the current MSC backlog - this means taking a look at all of the open MSCs, triaging them and organising them into a loose priority queue. This is likely to take quite a while to do and may not ever be complete - but should give us and everyone else an idea of what’s expected to land in upcoming Matrix spec versions.
The idea this MSC proposes is to add a possible m.softkick field to room membership events of type “leave”, which if present will inform clients that the user has only been kicked temporarily, and they are welcome to rejoin.
This helps with the IRC bridging use case laid out in the MSC.
I use Zeal – an offline documentation browser using the same docsets as Dash for MacOS.
It allows me to browse MDN, ExpressJS docs, NodeJS docs and other languages and formats while not relying on the Internet when traveling.
They have “208 awesome docsets”, and I guess you know which one I’m missing – or used to miss, until I packaged it myself.
If you use Dash or Zeal, give it a try. Let me know, if you find pages that are not working.
I hope that Matrix will be included in their list of user-contributed docsets.
Note, this is not an official release distribution of the Matrix Spec. Enjoy at your own risk of this breaking or not getting updated.
Construct server has been refurbished to support the Ubuntu 22.04+ platform. I am happy to
report that Construct performs faster and more reliably than ever before. It’s been
a long time since the last update due to COVID-related health problems, but development
has picked up again. I’d like to thank @manu_kamath:matrix.org and @uis246 for their
contributions, and of course Yan Minari for keeping things together over the past year.
Additional work implementing the latest MSC’s will continue in the coming weeks so I
encourage everyone to show support in #construct:zemos.net and contribute if possible.
Several enhancements have taken place this release, so I’d just like to highlight one
here: The media database has been eliminated and has been integrated into the main
events database. Construct did always store media in rooms by splitting files
into blocks, but it offloaded the content block to separate storage leaving just a
hash of the content in the matrix event. Construct now stores blocks directly in event
content via hardware-accelerated base64 encoding. The result performs better because
there’s only one database query instead of two, and the room can be shared between
servers in a Construct Cluster.
Construct is a performant and robust Matrix Server and Natural Language Processor.
Please be mindful of any laws in your country which require registering your instance
for commercial use.
This week we’ve released Synapse 1.63! This release includes a few features such as better rate limiting for invites, as well as experimental support for MSC3827 which allows filtering public room search results by room type. The latter will, once stabilised, allow for better discoverability of public spaces since it will allow clients to specifically look for them. Read all about this new release on the matrix.org blog: https://matrix.org/blog/2022/07/20/synapse-1-63-released
We’ve also spent some time clarifying documentation and prompts about the usage statistics Synapse automatically reports if configured with report_stats set to true. The new documentation page lists exactly what is reported and how this reporting works. This clarification work included removing the use of “anonymised” when referring to this feature to make it clearer that, even though Synapse does not report identifiable information about users and rooms, it does report the homeserver’s name (i.e. the value of the server_name configuration setting).
Since people seemed to like seeing updates on my Helm Charts; matrix-synapse got bumped to 1.63.0 and then 1.63.1, as well as receiving some expanded handling of workers - all worker instances now come with both startup- and liveness probes attached by default.
Say hello to a new bridge in Matrix universe (or rather fediverse): Threematrix. As you might’ve guessed from the name: It’s a bridge between the Threema messenger and Matrix. Threema is a very popular messenger in europe, especially in German speaking countries (it’s a swiss company). We’ve just released our very first alpha version – it’s a very simple bot bridge for now, but we have quite a lot of improvements on our todo list. Currently, it only works with the (paid) Threema Gateway API product, but we’re trying to talk to Threema to come up with a more affordable hobbyist pricing model for bridge use. Feel free to follow our releases in the GitHub repo, follow our Mastodon account and join our Matrix room to stay up to date or ask any questions.
P.S.: We’re two freelance developers and we’re being funded by the German Prototype Fund program. If you’re an OSS developer in Germany, check them out!
Hello all — since our last TWIM announcement, Hookshot has been updated from 1.7.2 to 1.8.1. Aside from usability fixes and documentation improvements, there have been some notable changes to generic webhook support:
XML webhook payloads are now decoded instead of being treated as blobs of text. This means they render more nicely as room messages, and more importantly, it allows them to work with custom JavaScript transformations. (#410)
GET requests for generic webhooks are no longer supported by default. For details, refer to the documentation. (#397)
I got a fantastic release for you to day and it won’t fit inside a normal sized update so without further ado, here are the highlights:
Notification counts 💯 (LorenDB, d42)
You can now see notification counts in more spaces, like your task bar or in
the community sidebar.
For better work-life balance you can hide the notification counts on a per
space basis.
For notification counts in the task bar your desktop environment needs to
support the Unity protocol.
Notifications are also preserved across restarts now.
Moderation 👮♀️
You can now change the permissions and aliases of a room.
Permissions are shown in the Memberlist
A new /redact command to redact an event or all messages by a user.
You can now provide a reason when inviting, knocking, kicking and banning
users.
Faster startup ⚡
On at least some systems startup should now be instant even with thousands
of rooms.
Encryption improvements 🛡️
Support for the most recent changes to Matrix E2EE including fallback keys,
no longer relying on the sender_key.
Compatibility and stability improvements when dealing with different base64
encodings and when verifying users and devices.
Fetch the whole online key backup at the click of a button.
Integration with external apps 🗺️ (LorenDB)
Nheko now has a D-Bus API, which you can enable in the settings menu.
This allows applications like KRunner or Rofi to list and switch between
rooms.
If you are reading this a bit early, the release builds might still be cooking, but they should be available in the next few hours. There about 40 more features and at least 30 bugfixes waiting for you, so checkout the release here: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.10.0 . I’d like to thank as always everyone who contributed to this release, it has been a pleasure to work with you folks and I hope I will see a few of you in the next release as well.
As you might be able to tell, moderation features were a big topic this release. But they are clearly not done yet and I expect more of those to land in the future now that Nheko is fairly mature. There are also a few other cool features planned, so while this release is exciting, there will always be more! Same bad client, same bad… wait, this is not my outro!
Please give this release a whirl and tell us how you like it in #nheko:nheko.im!
Release 1.4.28 has been dropped, to give us time to fix the regression and performance issue added when key share history was worked on. The next RC 1.4.30 will be done next week as usual.
We have started to work on using the new Realm Kotlin SDK (we are using the legacy Java SDK at the moment): it should improve the stability of the app (and so the crash free session) and improve devX. Nearly all the possible blocking points have been handled. This will force us to use suspend methods, which will be useful for ElementX.
Latest tweaks on FTUE have been merged on develop. We will iterate on a few things, but we are close to releasing the feature! New wordings for FTUE are waiting for translations on Weblate. Thanks to all the contributors!
We have set up a nightly build using Firebase app distribution. We keep it internal for the moment, we will see in the future if we want to open it to the community.
New project! open-super-dapp-android is a fully open source, open standard, decentralized “super app” including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet. Our mission is to foster, and provide access to, a decentralized and secure digital commons for all. Github repo: https://github.com/2gatherproject/open-super-dapp-android
OSD is a downstream project of Element, aiming to provide the functionalities of a “super app” like WeChat, just as an open, distributed and not-for-profit app instead of a proprietary, closed and for-profit one.
This software is pre-alpha, actively seeking contributors, donors and maintainers/leaders. Get in on the ground floor and help build something amazing!
Currently, Open Super dApp builds and runs with full functionality of the Element messenger and Alpha Wallet in the same Android app, with all existing tests passing. Efforts to further integrate their functionalities are just beginning.
Next steps include:
Demonstrate easy to use person to person Ethereum payment functionality between Matrix users.
Provide a powerful and easy to use messaging and payment javascript API for use by web3 applications accessed through the Open Super dApp. Produce sample web dApps using this API.
Centralize cryptographic secrets between the wallet and the messenger.
Build a parallel iOS version for iPhones using Element iOS and Alpha Wallet iOS.
This week has seen an merges of many minor, partially longer-pending PRs into the mainline code base: among them a fix for a longer pending CI problem with Apply builds, an update to latest ruma and many minor fixes and style improvements. We’ve also gotten the Crypto-bindings for the JS in web using WASM a lot further, the only thing remaining for a release are some last minute PRs and fixes in the release infrastructure. But the most changes to the code base this week have been coming from the appservice department, who’ve submitted, reviewed and merged a whopping seven PRs this week, fixing various problems and adding a bunch of appservice specific features.
Beyond purely code changes this week has seen a lot of project starts, too: For ones, with the help of the rust team, the iOS Team has started integrating the Sliding-Sync/Sync V3 into the upcoming Element-X-Series; the team has put up the first PR to add integration tests against an actual synapse server (some issues pending); a workshop set out the first ideas for the new upcoming timeline API; and a very interesting draft PR was brought in from community member docweirdo proposing a new API on top of the existing SDK to have futures wait for actual completion - no more sending a message and observing sync for the appropriate response yourself.
Synapse Maintenance Container – Docker container with tools for synapse & postgres database maintenance
A lot of things added and changed, and I’m sure I missed something, so I will go with a release candidate this time
New in v0.4.1-RC1
enable PGPASSFILE support for better database password handling
add tools to detect and maybe fix synapse issue 12507 and 13026 (No state group for unknown or outlier event)
internal: added an extension for mautrix-go to serve synapse admin api requests
lots of internal changes
stui is a typical golang binary, it’s also available as stand alone version from the release page
Tools for No state group for unknown or outlier event
[docker run -it --rm registry.gitlab.com/mb-saces/synatainer:0.4.1-RC1] stui 12507 --help
[docker run -it --rm registry.gitlab.com/mb-saces/synatainer:0.4.1-RC1] stui 13026 --help
The tools scan the database for the issues and tells you which rooms are affected. Adding the --fix option, it destroys your databasedeletes the bogus extremities. Use at your own risc. And make a backup.
The doc have still a lot of space for improvements…
Start the container without command and let do its magic :)
What it does by default:
daily:
purge all rooms without local members
run the state autocompressor (500/100)
weekly:
delete old remote media (>90 days)
delete old message history from public joinable rooms (>180 days)
Because I don’t like having to change my display name to tell coworkers when I’m away, I’ve written a maubot plugin for an auto-responder bot.
It allows me to signal when I’m away, at which point anyone who sends a message in an existing DM will be sent an automated reply so they know that I’m away, when I’ll be back, and how to reach out to me in case of emergencies (it does this once per DM until I come back). When I’m back, I just need to tell the bot and it will automatically turn off the auto-responder and give me a summary of the DMs in which I’ve missed messages while I was away.
I just created a simple bot that generates a MSC url from the specified MSC id.
The source code for the project can be found at https://mau.dev/minecraftchest1/mscbot/. And example instance can be found at @maubottest1:synapse1.arsrobotics.org Demo and use the bot in #msc-bot:synapse1.arsrobotics.org
My release tracking bot received a bunch more work since the last update. It now supports tracking repos, groups, and user stars on GitHub, GitLab (both .com and self-hosted), as well as Gitea (though Gitea requires a token for reading stars). And also tracking “releases” - a.k.a. tags - on bare Git repos, at least as long as they don’t require SSH key authorization. Things are getting ever closer to a 1.0 release, with only really some missing bang commands and error reporting being the remaining pieces.
The Matrix Summit 2022 is a community event taking place Thu, 25th to Sun, 28th Aug
at c-base in Berlin. Today’s the last day to propose presentations and workshop. The exact deadline is 22:22 (Europe/Berlin).
Will you be in Berlin and have a Matrix project to talk about? Can you organise a workshop about how to use Matrix? How does your community or workplace use Matrix?
Submit your proposal now!
FrOSCon is a conference that takes place in Siegburg/Bonn, Germany on 21st and 22nd August. Most presentations will be German, but there are some in English as well. It’s all about free, open source software.
And, best of all, we’ll have an entire DevRoom track for a day – full of Matrix. Furthermore, you can come by the Matrix stand for that famous hallway track. ✨ I know I’ll be there. 👋
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
babel.sh
172.5
2
dendrite.matrix.org
275
3
joeth.uk
294
4
babel1.eu
302
5
dendrite.babel.sh
509.5
6
rustybever.be
708
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.