Matrix Live 🎙
This week we have demos from andybalaam, showcasing high contrast in Element Web/Desktop, Bruno walking us through device dehydration in Hydrogen and Kegan giving us a glimpse of Sync v3! A lot of exciting work going on here!
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://spec.matrix.org/unstable/proposals.
- MSC3469: HTTP Range on Content Repository
- MSC3468: MXC to Hashes
- MSC3464: Allow Users to Post on Behalf of Other Users
MSCs with proposed Final Comment Period:
- No MSCs entered proposed FCP state this week.
MSCs in Final Comment Period:
- No MSCs are in FCP.
The spec release mentioned last week is happening on Tuesday - look out for a long blog post explaining all the changes, and check out the new platform (as it stands in its current, unstable state) before it goes live. Exciting stuff!
Random Spec of the Week
The random spec of the week is... MSC3217: Soft kicks!
Other than this sounding like something out of a workout routine, soft kicks are proposed as a hint to clients that the user has been kicked from the room, but that it was not out of moderation, but for a technical reason (the example given disconnection from an IRC network). The client can then present a different UX as opposed to a normal, "hard" kick.
Give it a read and provide feedback if the topic interests you!
Dept of Servers 🏢
Synapse is the reference homeserver for Matrix
Synapse 1.46 also includes experimental support for MSC3440: Threading via
m.threadrelation, a big step toward threaded messaging in Matrix. It's otherwise mainly a bugfix release, as we've spent much of our time reviewing infrastructure and making plans to improve our resilience should we experience hardware failures similar to what took out matrix.org two weeks ago.
We continue working toward a prototype implementation of MSC2775: Lazy loading over federation, starting with setting up automated infrastructure to repeatedly measure the join speeds of assorted large, public rooms. Our goal is to have a rough proof of concept for lazy room joins by the end of the year.
We also released Sydent 2.5.0! In addition to fixing bugs, this release passes
mypy --strict, uses Jinja2 for templates, and supports the
room_typefield from MSC3288 to better differentiate between invitations to rooms and invitations to Spaces.
Threads! Awesome! And lazy loading over the federation looks really promising, I can't wait for it.
Homeserver Deployment 📥️
Helm Chart ↗
Matrix Kubernetes applications packaged into helm charts
As is routine at this point; My Helm Charts have seen updates, with matrix-synapse bumping to 1.46.0
Keep your infra up to date, folks!
Dept of Bridges 🌉
Sorunome [m] announces
Soru has not found any time to work on the mx-puppet-* project in very long. At this point, it makes sense to look for someone / multiple people to inherit the project to. So, if you are willing to pick it up, or part of it (like a single bridge, only the library, etc.), then please look by #mx-puppet-bridge:sorunome.de. Thanks!
It's always sad when maintainers don't have time for former projects, but you can take over!
A Matrix-WhatsApp puppeting bridge
mautrix-whatsapp v0.2.0 was released. The main change is switching to the new WhatsApp multidevice API, which means the phone doesn't need to be connected 24/7 anymore. The release also includes a new backfilling system using MSC2716, and making the relaybot mode less special-cased and more like what mautrix-signal does.
Heisenbridge is a bouncer-style Matrix IRC bridge.
Release v1.5.0 🥳
- Allow opening multiple simultaneous connections to the same network
- New STOP/STAHP ROOM command to end a long paste flood
- Clear channel send queue if the user gets kicked to prevent continuing flood on rejoin
- New KB ROOM command to do a proper kick & ban (contributed by GitHub user @blastrock, thanks!)
The most useful feature this week is having the ability to open multiple connections to the same network. This can be used to plumb channels with a secondary connection while using the bridge as yourself with the main one. You can also STAHP long pastes from being actually sent out completely to a channel if you weren't careful enough on Matrix side.
Upgrading from previous version to v1.5.0 will cause a small migration for every channel/pm that is open so it might take a little longer for the first startup to complete. If no multiple network connections are opened it is safe to downgrade but if someone uses the feature it will cause shenanigans for the duplicate networks in the older version.
As always, Heisenbridge being thoughtful towards our IRC peers.
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
We are preparing for a release! That means, if you are translator, we could use your help to get our translations updated and if you want to have a bug fixed before release, now is the time to report it or complain about it! Please come and see us in #nheko:nheko.im for complaints and questions!
We saw a lot of translation updates by Linerly, Priit and Thulinma already. The click ghosting issue in the room list should be fixed as well as the crash when accepting an invite from your browser. You can now register on matrix.org again, after fighting with some... reality deforming wording in the spec. Notifications on macOS now use the "modern" API for notifications, including grouping notifications by room. (Expect more fancy improvements there in the future!) The warning about mentioning the whole room now vanishes properly, hiding space children from the roomlist now doesn't hide them from the space itself anymore, the loading spinner shouldn't show in a fully loaded room again, the room directory search bar is now focused by default and a few smaller fixes.
We also completed the bootstrapping UI now. This means you get prompted for unverified devices, when your device isn't verified or when cross-signing isn't configured for your account yet and you are given ways to remedy that.
We have a few more bug fixes we want to land before the release, so don't expect it tomorrow, but we have the featureset down now. And if you thought the changes listed in this snippet are long, wait for the full release changelog. It will probably take a few days for me to tidy that up and I think this will be our biggest release yet! Happy testing, everyone!
Hydrogen is a lightweight matrix client with legacy and mobile browser support
Device dehydration support got released this week in 0.2.20 (see matrix live demo!), allowing you to decrypt messages sent to you while not logged in on any device. Expect another release this evening (0.2.21) with support for multiple lines in the composer and some other bug fixes.
Matrix messaging app for GNOME written in Rust.
Alexandre Franke says
To adapt to changes in libadwaita, Marco Melorio removed a deprecated class. In the meantime, enterprisey fixed the build by updating the Matrix Rust SDK dependency and improved Secret Service error handling.
After being away for a few month, Kévin Commaille came back with a blast. No less than three MR already, and I have a feeling he’s only getting started:
As usual, Julian reviewed and merged all the above work, and did some of his own:
We'll refrain from asking when Fractal-Next is due! It's starting to take shape!
Everything related to Element but not strictly bound to a client
- We’re continuing to flesh out space creation screens on iOS, improving the invite flows post creation for private and public spaces.
- We’re continuing to iterate on the overall app layout on Web, to fix fundamental usability issues.
- Expect to see some changes on develop soon, rearranging the top left corner of the app (user avatar, space names, context menu).
- Expect to see larger experiments landing on develop soon too. We’ll share more info on these when they’re live, and everything will be opt out to not break existing workflows while we’re testing and experimenting.
Element Web/Desktop ↗
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- Released Element Web 1.9.4RC
- Community testing session ran successfully on RC with a focus on voice messages and VoIP calls. We found significantly fewer issues and regressions than in the previous sessions. It was great to see 9 newcomers - thank you to all of our testers who helped out!
- Improved our sentry analytics data to provide more useful detail.
- Redesigned the device management section in the user settings. The new view makes it clearer how to rename devices and lets you verify them.
- This week in labs (features in labs can be accessed at develop.element.io and nightly desktop builds):
- Threads now has a more polished UI and users can now link to events in a thread. Notifications for threads messages are being worked on and should land very soon.
Element iOS ↗
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- We worked on stabilization in order to fix a couple of bugs and crashes found in last releases.
- We started to work on poll feature.
- We started to work on threading feature.
Element Android ↗
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Release 1.3.6 is finally live on the PlayStore! Release 1.3.7 is expected for the beginning of next week.
- We have started to implement threading of messages.
- Draft for voice message has been delayed, we want to ensure that it’s working well before releasing it.
- We are doing lots of internal migrations: Dagger to Hild, MvRx to Mavericks2, Rx to coroutines Flow.
- And as always, we are trying to keep the app as stable as possible, and as reliable as possible
- It’s also worth noting that the SDK 1.3.6 has some improvements in the login API, not needed for Element Android, but requested by other users of the SDK.
Dept of SDKs and Frameworks 🧰
Godot-Matrix is a C++ module for connecting to Matrix from the Godot Game Engine. I refurbished it and the changes made it upstream now ^_^, thx vurpo! :
- Fixed compilation for 3.x Godot branch
- Support plain http too for local tests with Conduit
- Respect port numbers (as per Matrix spec)
- Substantial rewrite of the example so it works
Refurbishment made with love for the participants of FediJam 4, a weeklong gamedev competition with the focus on fediverse and federated multiplayer (via Matrix or any other means ^_^). It starts this Sunday at 18:00 UTC. Chat
A toolkit for writing commandbots more efficient in rust for matrix.
MRSBFH is now available on crates.io.
Unlike other "overlay" style crates it does not follow the sdk versions using its own version number or using features. So please make sure you use the right version of the SDK with it.
Also it now has support for rusttls, the ! at the start of a command now gets correctly checked and is updated to the latest sdk.
You can check it out at https://crates.io/crates/mrsbfh and https://github.com/MTRNord/mrsbfh
Halcyon is an easy to use matrix library inspired by discord.py
This release brings some new non-breaking features and a small fix:
- on_ready, called once the bot has logged in and online
- send_typing, allowing the bot to signal it has received your message with the client typing event
- improved documentation (including how to set the poll interval)
- A sync failure when Homeservers sometimes reject or return a non json response
More info at on the project at https://github.com/WesR/Halcyon . Come by and chat with us over in https://matrix.to/#/#halcyon:blackline.xyz
Dept of Ops 🛠
Mother Miounne ↗
The backoffice of etke.cc service
Mother Miounne v2.1.0
New release of the Commander of etke.cc backoffice is
cominghere! New version brings new neat features and extends arsenal of the antispam tricks:
- buymeacoffee listings integration - pretty basic, but that's just a first step! So now you can list subscribers, supporters and extras purchases directly in matrix room (spolier: next releases will bring notifications about new subscribers, supporters and purchases)
- rate limiter for http forms - no one can bother you if you don't want that! So now you can configure specific rate limits per form
- enhanced email validation (mostly used in the forms module) - you had spam hosts and emails list before, but now you have MX records checks, regular expressions check and some other useful tricks to
hold the doorstop spammers
- ... and some small changes, like doc updates and auto-shrink of long messages to fit into matrix payload limits
Dept of Bots 🤖
Sumner Evans says
I created a Vacation Responder for Matrix. While running, it responds to any DMs that come in to your account with a preset message. It can be configured to only respond once in a given period of time (defaults to 24 hours) so that the person contacting you can queue up questions for you when you return. Other ways to use the bot include responding to DMs to previously active accounts (for example if you move homeservers). Join the discussion about this bot at #matrix-vacation-responder:nevarro.space.
Dept of Events and Talks 🗣️
SeaGL (the Seattle GNU/Linux Conference)
SeaGL (the Seattle GNU/Linux Conference) is being held on Matrix Friday and Saturday, November 5th and 6th, from 9am-5pm Pacific Time. The conference is running on a customized version of element-web and a regional Matrix homeserver, found at https://attend.seagl.org
Founded in 2013, this is the conference's ninth year overall and second virtual event. Last year, the all-volunteer team built their portal on-top of KiwiIRC and Jitsi for attendees, and BigBlueButton for speakers. This year they have been relying heavily on Spaces, Subspaces, and the built-in features that have been rapidly developing within the Matrix protocol.
From their website:
SeaGL (the Seattle GNU/Linux Conference) is a free—as in freedom and tea—grassroots technical summit dedicated to spreading awareness and knowledge about free / libre / open source software, hardware, and culture.
SeaGL strives to be welcoming, enjoyable, and informative for professional technologists, newcomers, enthusiasts, and all other users of free software, regardless of their background knowledge; providing a space to bridge these experiences and strengthen the free software movement through mentorship, collaboration, and community.
The recording of the talk at the FrOSCon this year (in 🇩🇪) about Opsdroid with AI/ML (Rasa NLU) 😉
Dept of Guides 🧭
Following a question from someone about getting started with Matrix bots, I wrote a super quick getting started guide to writing a simple bot with opsdroid. I will probably integrate this into the opsdroid docs, or somewhere more accessible in the future, but for now here it is: https://gist.github.com/Cadair/2c64cb46fdce7499ff1c0bbb116ce29e
Being an innocent child, I asked:
are you aware of projects relying on opsdroid to make a Matrix bot? Other than half of the very famous TWIM bot 😇
I have written a few (https://github.com/Cadair/skill-motw, https://github.com/Cadair/skill-intersphinx, https://github.com/Cadair/skill-jitsi) I know that Oleg has also written a number, including many which interact with homeassistant.
I can also go and ask for examples in #opsdroid-general:matrix.org if you like?
I didn't know what I had started! We almost became This Week in Opsdroid! Fortunately the Matrix community is very active and helped us keeping sovereignty over the blog. Phew!
There are too many to list here, but I strongly encourage you to blend in with the opsdroid community. Not only are these kind people, they are also very active and develop fancy and useful bots!
Matrix in the News 📰
Dept of Ping 🏓
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse: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!