This Week in Matrix 2022-04-01
01.04.2022 19:05 — This Week in Matrix — ThibMatrix Live 🎙
Dept of Spec 📜
Andrew Morgan (anoa) reports
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.
MSC Status
New MSCs:
- MSC3761: State event change control
- MSC3760: State sub-keys
- MSC3759: Leave event metadata for deactivated users
- MSC3758: Expand push rule conditions
- MSC3757: Restricting who can overwrite a state event
MSCs in Final Comment Period:
- No MSCs are in FCP.
MSCs with Proposed Final Comment Period:
- No MSCs had FCP proposed this week.
Merged MSCs:
Spec Updates
There's been lots of new MSCs this week! Three of them - those regarding state restrictions and subkeys - are related to the ongoing live location sharing work that Element is currently working on. See MSC3672 for the current state of the spec work for that feature.
Otherwise the spec core team has been reviewing a flurry of MSCs this week. This includes MSC3383 (Include destination in X-Matrix Auth Header), MSC3700 (Deprecate plaintext sender key) and MSC2246 (Asynchronous media uploads). Exciting things in the pipeline!
Random MSC of the Week
The random MSC of the week is... MSC2815: Proposal to allow room moderators to view redacted event content!
Another MSC in the sphere of moderation, and one that aims to put moderation control more in the hands of room admins rather than homeserver admins. A similar MSC in this realm is MSC3215 (Aristotle), which aims to send event reports to room admins, rather than homeserver admins that may not even have control over the malicious user.
Dept of Servers 🏢
Synapse (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Brendan Abolivier announces
Happy Friday everyone!
In case you missed it, we've released the first release candidate for Synapse 1.56 on Tuesday. This one includes a couple new module-related features, but also quite a few bugfixes and internal improvements. I'll talk about this in more details next week when Synapse 1.56 gets properly released, but the key points of this release is that Synapse will now refuse to start if it's configured with unsafe registration settings (i.e. open registration without any form of verification) as well as if it's running against a PostgreSQL database with the wrong locale values. Have a look at the upgrade notes for more information about this.
Apart from that, the team still continuing work on the two main topics I've been mentioning in previous weeks: fast room joins and integrating poetry. The latter is getting reeeally close to the finish line now, as the pull request has recently entered the review stage. So watch this space for more exciting news on this topic!
That's all for this week, catch you all next time 🙂
matrix-media-repo (website)
Matrix media repository with multi-domain in mind.
TravisR reports
MMR v1.2.12 is out now with a bunch of added features, removal of in-memory cache (per last release's deprecation notice), and some bug fixes.
Most notable are some added/improved support for JPEG XL, HEIF, and HEIC thumbnails, content ranges support (allowing the ability to skip to a part of a video), and a way to make the logs a bit quieter.
Give it a go and report issues to the issue tracker 🙂
Dept of Bridges 🌉
matrix-hookshot (website)
A multi purpose multi platform bridge, formerly known as matrix-github
Half-Shot announces
It feels like one of these comes out nearly every month, which probably means we're doing something right! This release takes a step back and fixes quite a few of our more longstanding bugs and fixes many nits here and there. Please read the change notes carefully as some APIs have moved around and your load balancers / config may need adjusting. One final note is that this release drops support for Node 12, making the minimum version Node 14.
Once again, thanks to the wider Matrix community for filing bugs and submitting PRs, it's very much appreciated!
matrix-appservice-bridge 4.0.0
Half-Shot says
More updates! This week the bridge library itself gets a major update. We've made a few breaking changes, notably we now expect target homeservers to at least be Matrix v1.2 compatible. Also, this release brings the new "Provisioning and Widgets API" which allows developers to start creating HTTP APIs for their bridges which work for both provisioning mode (shared secret tokens) and widget API style (authenticating via Matrix OpenID token sharing). This stuff is still a little experimental, but it's starting to power our new experiments in the bridge world.
You can check out the release here
matrix-appservice-kakaotalk (website)
A Matrix-KakaoTalk puppeting bridge.
Fair announces
Media messages, both from or to KakaoTalk, are now supported! The biggest exceptions are inbound files & stickers. The latter may be a hard sell to get working, due to how KT manages stickers, but I'll look into it some more before giving a concrete answer.
The bridge is also now responsive to disconnects, like when you log in from another KakaoTalk desktop client (since the bridge mimics the desktop client, and KT only allows one desktop client to be logged in at a time!). Luckily, not all KakaoTalk APIs rely on the same connection that chatting does, meaning that some functionality can continue to work even when "disconnected". The bridge now takes advantage of this, meaning that profile-management commands (currently just the
list-friends
command) will work even if you get disconnected from chats for whatever reason.The bridge is drawing ever closer to "good enough" status... Please give it a try if curious!
Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues
matrix-appservice-irc (website)
Node.js IRC bridge for Matrix
Half-Shot reports
Heyo, we released a hotfix release for the IRC bridge this week. This fixed a rather nasty regression where the bridge would kick everyone from the Matrix side when a Matrix ban list is updated. People who aren't using the new ban lists feature don't need to upgrade.
Please check out https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.33.1 for more details
Dept of Clients 📱
Michael says
The perthchat.org team has created their own Android client, a promotional fork of the popular Element Android client!
For more details checkout: https://news.perthchat.org/perthchats-new-android-app/ https://play.google.com/store/apps/details?id=im.perthchat.app
Nheko (website)
Desktop client for Matrix using Qt and C++17.
Nico announces
1.0 is a big number and a step not taken lightly. But Nheko has been in development for half a decade and we think it is time to take a step forward! As such we worked hard to fix readability issues in the app. Your messages should now be readable on any theme, because we send the first half as white text and the second half as black text (thank you, rrogalski for the contribution). For accessibility reasons this is enabled by default. We also added an improved typing indicator. Sometimes it is hard to notice when a message is too long, as such we gradually adjust the background color the longer the message gets. It also helps a lot, if you have a bad theme and can't read the text against the background color. Just enter a few characters and the background will change, so the messages should become readable. But that is not all! We all know some people have a harder time seeing colors than others. So for accessibility we also slowly rotate the screen, so that even if your display is monochrome, you don't miss out. Please see the attached video for a demo or check out our release candidates here and here.
Before this month we also rewrote the room creation dialogs to be less confusing. We now have separate dialogs for direct chats and group chats, which should cut down confusion between the options by a lot. You can also now edit the topic and name of a room inline and Malte added a jump to bottom button. On mobile you can also now drag to the sides to reply. Last but not least, you can now knock on rooms from Nheko using
/knock
or if an invite failed because you were not allowed to join a room and you can add a reason to room joins, leaves, invites, knocks and everything. Some of those features require the server to support Matrix v1.1, so make sure you update your servers to use them.
Nico announces
Excuse the blurry picture, but Bubu just sent me this and I just had to share it!
Neochat (website)
A client for matrix, the decentralized communication protocol
Tobias Fella says
NeoChat now has a KRunner plugin thanks to work done by Nico (not the one from Nheko 🙂). This allows plasma users to search for and open matrix rooms directly from their desktop. You will be able to enable it from the KRunner settings after the next release.
Snehit changed the room preview to no longer show markdown characters, fixing a few situations where this would be unexpected.
On the end-to-end encryption side, we're currently working on implementing device verification.
Fractal (website)
Matrix messaging app for GNOME written in Rust.
Julian Sparber reports
This week I have something really exciting to report. We moved Fractal-next to the main development branch. This means that we now have nightly flatpak builds[1], so users can already try out the new version of Fractal without having to build it from source. This will also give use much more feedback and many more bug reports, hopefully not too many :) Note that this isn't a release and the software should still be considered unstable.
[1] https://gitlab.gnome.org/GNOME/fractal#development-version
Element (website)
Everything related to Element but not strictly bound to a client
Danielle announces
It’s April Fool’s day but there will be no tricks here; We’re far too excited to share all our good work with you 😉
Message Threading
Exciting news for Threads; Next week we’re releasing a public beta!
- It’ll be opt-in, so don’t forget to head to Settings and join in if you haven’t already.
We’re still working on perfecting notifications, so none of your messages are missed.
The team is also working hard at improving the stability of Threads, ahead of the release next week.
As always, please let us know your thoughts and feedback!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Kegan says
Coming soon to an Element-Web near you...
Danielle announces
In labs (you can enable labs in settings on develop.element.io or on Nightly)
- Voice rooms are now known as video rooms! We’ve landed some new designs to help make the experience more coherent, and bring them out of ‘prototype’ status.
- Threads! From next week you’ll be able to turn on threads in all versions of Element but for a sneak preview you can head to Labs in Develop or Nightly and access Message Threading from there.
- We’re continuing to work on our updated search experience: we are going to be merging the people and room search dialogs into the new search experience and adding filtering. Expecting work to start early next week.
- Along with some feature work in Labs, the team is hard at work closing issues and clearing pesky bugs.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
Manu reports
- Our latest release is a hotfix (1.8.10) resolving a crash that occurred when uploading a photo via the camera in the timeline.
- Following a team discussion and input from all areas we’ve decided to change how we launch new languages in Element. We’ll soon be moving to an automatic rollout model meaning, if there’s any amount of a language available, and it’s set as your preference, you’ll see it in the app.
- Previously we’d wait until hitting the 80% mark and then manually push the translation. This leaves too much room for us to forget, or restricts access to those languages hanging around the 70% mark…
- Other things we’ve been working on this week include; improving the new user experience, and starting to prototype with the layout for the app.
- We released spaces on iOS this week! Where you could only view spaces before, you can now create and manage them from your phone. We have more improvements planned for the next release.
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
Danielle announces
- The Android team has been determined over the past weeks to improve our internal process, increasing efficiency and quality of building and deploying. With that in mind, we’ve recently published a guide for PRs on our Android Repo. It’s still a draft right now but if you want to know more about our approach, read it here.
- In terms of building we’re continuing on our path of improving the quality of the app by focussing on bugs and UI issues.
- We’re also working on improving our new user experience to make it easier for newbies to get up and running on Element Android!
Dept of Non Chat Clients 🎛️
matrix-streamchat (website)
Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.
f0x announces
matrix-streamchat got it's first proper release, after some battletesting by another streamer :D https://git.pixie.town/f0x/matrix-streamchat/releases/tag/0.0.2 hosted instance is also available at https://streamchat.pixie.town
Matrix Highlight (website)
A decentralized and federated way of annotating the web based on Matrix.
Daniel announces
Matrix Highlight got an update this week. I've switched the highlighting widget to use a shadow DOM, which means styles from the page don't affect styles from the extension itself. This used to affect quite a lot of pages, but shouldn't be much of a problem anymore!
Dept of SDKs and Frameworks 🧰
Ruma (website)
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Jonas Platte says
This week, we
matrix-rust-sdk (website)
Matrix Client-Server SDK for Rust
Jonas Platte announces
In the last two weeks,
- Support for vodozemac as an alternative to libolm has been merged, and enabled by default 🎉
- A bug around invitations to previously-left rooms was fixed
There was also a decent amount of internal cleanup / developer experience work, so if you previously tried to contribute but ran into weird IDE bugs or code inconsistencies, make sure to check back. The same goes for sliding sync, which has been making decent progress – stay tuned!
Dept of Events and Talks 🗣️
andybalaam reports
I'm doing a talk about Matrix at the ACCU Conference on Saturday 9th April. Recordings of talks will be available soon after the conference, and tickets are still available to be there live in person or online! Here's the talk summary:
The Matrix network provides messaging (like WhatsApp or Slack) that offers all the features you expect, but without centralised control: it's an open standard, and anyone can run a server. The servers link together, so you can talk to other people even if they use a different server (kind of like email).
In the first half of this session, we will explore the basics of the protocol: making simple HTTP requests to send and receive messages, and discuss some of the interesting distributed-systems issues that make writing a server exciting.
In the second half we will explore the fact that messaging is only one potential use of this network, and look into some examples of other real-time use cases that are in active development, taking note of how these use cases benefit from the real-time and distributed nature of the network.
Dept of Interesting Projects 🛰️
matrix-art (website)
An image gallery for Matrix
MTRNord (they/them) reports
There was some silence lately on this, but activity is picking back up.
Mainly, the project is getting rewritten. Why? Well, I learned from the issues and ran into issues with the framework used. There are going to be various changes to the architecture (like no more SSR, no nextjs, pwa support and more).
Feel free to follow https://github.com/MTRNord/matrix-art/pull/121 for progress.
Another big thing that's going to change is that I am working on a complete redesign. While I am still fairly early in the iterations, I wanted to share the first art direction Matrix Art is going to go. The main changes are that I try to have an art language which distinguishes it from the other proprietary players, as well as compensating for the fact that Matrix Art has a much lower volume of images on it's feed. Please be aware that this is way before the first round of polish. :)
If you want to connect with matrix-art please join the room: #matrix-art:nordgedanken.dev or follow/star the github project :)
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.
Rank | Hostname | Median MS |
---|---|---|
1 | envs.net | 449 |
2 | neko.dev | 455 |
3 | tchncs.de | 475.5 |
4 | aria-net.org | 484 |
5 | quyo.de | 535.5 |
6 | settgast.org | 737 |
7 | catgirl.cloud | 975 |
8 | alemann.dev | 1066 |
9 | jeroenhd.nl | 1228 |
10 | maescool.be | 1422 |
#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.
Rank | Hostname | Median MS |
---|---|---|
1 | cry.is | 215 |
2 | nognu.de | 368 |
3 | conduit.grich.sk | 417 |
4 | sspaeth.de | 616.5 |
5 | xethos.net | 798 |
6 | dendrite.s3cr3t.me | 1256.5 |
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!