This Week in Matrix 2021-08-20

20.08.2021 20:19 — This Week in Matrix Ben Parsons
Last update: 20.08.2021 18:52

Matrix Live 🎙

Half-Shot's bridge notes this week

  • GSOC! abbyck/Abhinav's email bridge
  • Bridge team has been busy, on the EMS side we've released Signal/WA for early bird testing.
  • Landmark changes in bridge libraries: we've released 3.0.0-rc1 of matrix-appservice-bridge. Both the IRC bridge and the Gitter bridge have tested it with great results.
  • Tadzik has been making massive gains on the IRC bridge, formatting tweaks and bugs being nailed.
  • Finally, I have a car!

Dept of Spec 📜

Spec

anoa reported:

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.

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

Don't be mistaken by the rather empty list above, there were many PRs to the contents of the spec flying around this week! These include some further contributions from lukaslihotzki, some clarifications from dkasak and some spec contributions and tooling documentation additions from richvdh. Also a clarification from uhoreg.

Thank you to everyone for your PRs!

Otherwise, there has been a small amount of activity across the spectrum of MSCs this week. One MSC to call out is https://github.com/matrix-org/matrix-doc/pull/3283, which could do with some more input from the wider community.

Random MSC of the week

And finally, something fun. I've written a small script to pick a random MSC that people may or may not want to have a look at.

And this week we've got 🥁...

MSC2437: Store tagged events in Room Account Data!

Have a look if you haven't already, or take another look again if you have 😀

2021-08-20-yaCbk-stacked_area_chart.png

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Neil Alexander said:

This week, we tagged the v0.5.0 release candidate, which contains two major advancements on the encryption front: support for server-side key backups and support for cross-signing. The addition of these features makes Dendrite significantly more user-friendly, as it is now possible to log out or share keys across devices without losing your conversations.

We'll be aiming to finalise this release next week. Stay tuned in #dendrite:matrix.org for more details.

Sytest compliance currently sits at:

  • Client-server APIs: 65%, up from 61% last time

  • Server-server APIs: 92%, same as last time

Those sytest numbers!! Might be time to start playing with dendrite?

Synapse

callahad said:

We are on track to release Synapse 1.41 next week. This version will use an unstable property proposed by MSC3244: Room version capabilities to advertise to clients that they may create restricted rooms using Room Version 8, despite the default room version remaining at 6 for the time being.

This strikes a balance between the broad compatibility of an older default room version, while still making newer features available when requested at room creation time. However, from next week you are more likely to encounter v8 rooms, so please do ensure your homeserver is running at least 1.40.

I'd also like to tip my hat to Element employee Olivier, who has put in the work to ensure that tagged Sygnal releases are automatically built and uploaded to Docker Hub via GitHub Actions. Thanks, Olivier!

Homeserver Deployment 📥️

Kubernetes

Ananace offered:

This week too sees updates to my Helm Charts, with element-web being bumped to 1.8.0 - and then subsequently 1.8.1

Dept of Bridges 🌉

Heisenbridge roundup!

hifi said:

Heisenbridge is a bouncer-style Matrix IRC bridge.

  • Automatic queries (DM rooms) from IRC users can now be disabled and a query opened manually if needed (messages appear in network rooms)

  • Plumbs can now be set to not do disambiguation or ZWSP injection

  • Small cleanups and fixes

Heisenbridge is now considered stable and v1.0.0 has been released! 🍻 🥳

Focus is shifting to v2.0.0 which will be a major refactor. The 1.x series will at least receive bug fixes if not features. Do note that if you are using the master branch or latest tag for Docker it may cause a breaking change in the future when the work starts being merged. Highly suggest moving to version tags regardless of the deployment method. If you are using matrix-docker-ansible-deploy it has been updated to v1.0.0 as of writing so pulling the latest master there is advised.

Thanks!

matrix-appservice-irc

tadzik said:

This week brought the release of 0.30.0, which includes

  • Better formatting of long messages and code blocks – thanks 14mRh4X0r!

  • Quality of life improvements to admin room command handling

  • Numerous documentation improvements

  • And more!

More goodies coming Soon[tm], so watch this space :)

matrix-appservice-bridge 3.0.0 is now in RC

Half-Shot told us:

If the car wasn't enough, I bring more news! Our matrix.org bridge library, matrix-appservice-bridge has had a total shakeup. Version 3.0.0-rc1 is out and with it comes the migration from the matrix-js-sdk to the matrix-bot-sdk. This is a massive change underneath that should result in faster performance, better typings and hopefully lower memory footprints too.

I'd encourage everyone using this library to update and see how well it works for you! The IRC and Gitter bridges have already experimented with this change and have seen good results, so I look forward to hearing feedback :)

(See details about the referenced car below and in Matrix Live above)

Dept of Clients 📱

Fractal

Alexandre Franke reported:

Fractal updates three weeks in a row? 😱

Kai was on fire this week 🔥 with 5 (❗️) new merge requests that all landed! The highlights are that rooms are now sorted by activity and room members now have a power-level property. The other ones (!815, !816, !817) are maintenance and code quality related.

Julian Hofer also contributed a code quality change by making every subclass use Default.

Shout out to Julian Sparber, who’s still busy with his upstream work in the Rust SDK, and managed to review and merge all the above contributions.

Sailtrix

hengyedev said:

This week, I released Sailtrix v1.3 on OpenRepos.

New features:

  • Notification functionality

  • matrix: URI scheme support

  • Tab based layout

  • Sorting rooms by activity

  • Fixed a bug where editing in encrypted rooms did not appear correctly

  • Avatars and display names are displayed for direct message rooms.

Matrix: #sailtrix:matrix.org

OpenRepos: https://openrepos.net/content/hengyedev/sailtrix GitLab: https://gitlab.com/HengYeDev/harbour-sailtrix

2021-08-20-PieIo-screenshot-1.png

NeoChat

Carl Schwan reported:

This week Janet improved receiving files in NeoChat. Now downloading a file can be stopped, a file type icon is displayed and it looks better! Other than that Felipe Kinoshita made some small visual improvements to the day separator in the timeline and Tobias continued working on E2EE inside Quotient.

Tomorrow Tobias and I will be doing a small presentation/demo of NeoChat at frOSCon in German. It's online so you don't have any excuse to not watch it: https://programm.froscon.de/2021/events/2711.html

2021-08-20-in7Dg-image.png

Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

  • Nheko now shows you the verification status of all devices in a room as well as in the memberlist. This is important so you can tell, if an unverified device may get access to a message, if you send it. You can always disable sending messages to unverified devices for extra peace of mind.

  • callum's work on Token Authenticated Registration got merged! 🎉

  • manu's room directory (finally) got merged. This means you can now discover public rooms on your server and join them by clicking the room directory button, that Nheko had for 3 years but was disabled until now! Support for the room directories of other servers as well as filtering by network should come in the future.

  • There is now an "Allow them in" button on pending knocks in the timeline, joins via room membership in a different room now tell you, what user's server was used to sign off on the join and you can set a room to restricted or knock only. (You currently can't change the list of allowed servers though).

  • Dialogs should now have a close button again on Windows, the emoji search field now clears on closing the emoji picker and we added a workaround for stickers not showing on Element iOS, because iOS can't display stickers without a thumbnail, even if a thumbnail makes no sense for stickers. (We just copy the sticker url into the thumbnail url.)

  • Nheko can now download encryption keys from online key backup. Uploading to online key backup will come soon(tm).

  • If you are interested, I will talk about Nheko tomorrow (21.08. starting 16:10) at FrOSCon in the Matrix dev room. Make sure you check out the other talks too, if you speak German! https://programm.froscon.de/2021/events/2706.html

Phew, that was a mouthful.

2021-08-20-A0aW4-clipboard.png

Element Clients

Updates from the teams

Delight team

  • This week, our web, iOS and Android engineers are all enjoying some time off.
  • On backend, we’ve completed pagination of the Spaces Summary. This week, we’ve been looking at performance improvements to the Summary API.
  • We intend to mark room Version 8 as the preferred version for MSC3083 restricted rooms on matrix.org and in Synapse 1.41 (due for release next week) via MSC3244. Once this change is made, Element clients will show UI to create restricted rooms within a Space, and prompt users to upgrade rooms if necessary when making them restricted.
  • Our design team is exploring some tweaks on how to make Spaces a little bit clearer and easier to understand.

Web

  • We released 1.8.1 which fixed some regressions with calls - sorry for any failed calls!
  • Work on our threads prototype continues. We’re hoping to have something to look at internally next week.
  • Sentry submission support has been added to Rageshakes. We expect to enable this on https://app.element.io next week.
  • We’ve been fixing some bugs around cross-signing, Windows font rendering, and image blur hashing.
  • Our new triage process has been published on the wiki.

iOS

  • Element Alpha work is complete. This is a new app for internal testing. A QR code is available on every PR like this one to install the build on a device. Only devices registered in the Element Apple Developer account can install this app.
  • Improved notification content: No more “Message” notification.
  • Fixed some timeline layout issues.
  • Media upload sizing: We added a prompt when sending video to select the resolution of the sent video. Media size prompt can be disabled in settings.
  • URL preview work has started.
  • App Navigation improvement: Working on room navigation to prepare the ground for threading.
  • On the performance side, we are working on room messages lazy loading to improve application speed.

Android

  • Fix authenticated jitsi not working in release (proguard issue)
  • Handle call ended reasons (busy, invite timeout).
  • Working on Olm fallback key support
  • Work on call ui and call tiles is finished, waiting to be reviewed
  • Start working on extracting API client from the SDK

Dept of SDKs and Frameworks 🧰

Polyjuice Client 🧙

uhoreg said:

Polyjuice Client v0.4.2 has been released. This release features more functions for creating messages, including file and media messages (thanks to multi prise), replies, reactions, and edits. Polyjuice Client can also now be considered a serious Matrix library as it has a new function to generate rainbow-coloured messages! 🌈 Multi prise has also added support for registering a new user, redacting messages, and searching the user directory.

Polyjuice Util v0.2.1 (an Elixir library for Matrix features that can be used on both the client-side and server-side) was also recently released. The main feature for this release is support for handling Matrix URIs, and supports mxc:, matrix.to, and matrix:-style URIs.

Simple-Matrix-Bot-Lib

krazykirby99999 reported:

Version 2 of Simple-Matrix-Bot-Lib will release very soon. It is complete in all but the documentation. If you would like to try version 2 early, you can find it on a branch of the git repository here https://github.com/KrazyKirby99999/simple-matrix-bot-lib/tree/v2.

Some of the changes are shown below:

Version 1Version 2Summary
bot.add_message_listener(example_handler)@bot.listener.on_message_event
or
@bot.listener.on_custom_event
In version 1, each the bot.add_message_listener method was used on message handler functions for them to react to messages. In version 2, this has been replaced by a decorator, @bot.listener.on_message_event. A similar decorator, @bot.listener.on_custom_event(event) can be used to react to other events. For information on supported events, refer to the matrix-nio docs.
creds = botlib.Creds()creds = botlib.Creds(<br /> homeserver="https://example.org", <br /> username="username", <br /> password="password", <br /> session_stored_file="session.txt"<br /> )<br />
or
creds = botlib.Creds(<br /> homeserver="https://example.org", <br /> login_token="MDA..gZ2"<br /> session_stored_file="session.txt"<br /> )<br />
In version 1, the only way to login to a homeserver was to use a combination of a username and password. In version 2 it is also possible to login using a SSO login token as well. As before, the homeserver argument is required, and the session_stored_file argument is optional.
match.args #For message "one two three", returns "two three"match.args #For message "one two three", returns ["two", "three"]In version 1, match.args returned a string. In version 2, match.args returns a list of strings.

These changes are only some of the most important changes between versions 1 and 2, and there are more changes in addition to these. I apologize for the delays in releasing version 2.

Dept of Bots 🤖

Mjolnir

TravisR told us:

Mjolnir v0.1.19 is out now with a voice message protection built-in (ideal for public communities where voice messages can't be easily moderated) and updates to the shutdown room command to support modern Synapses. Check out !mjolnir protections after upgrading, and visit #mjolnir:matrix.org for help and support.

Audio/Voice Message Prevention Maubot Plugin

MTRNord told us:

Since element now landed voice message support I build a small maubot plugin which prevents audio and voice messages as those cannot yet get restricted by power level.

It starts by warning you via replies, after a configured amount of warnings goes over to kicking and after a certain amount of kicks it will ban you in the room the event was sent in.

The counter is global so if a user in room A runs out of warnings and the same user sents a voice message in room B where the bot is present the bot will ban the user also in room B without further warnings.

2021-08-20-r2wxc-image.png

Source at: https://github.com/MTRNord/maubot-audio-preventer

This plugin is already running on my maubot at @mjolnir:nordgedanken.dev

Middleman

jaywink reported:

New version of Middleman, the helpful relay bot in the middle. Version 0.2.0 in addition to various smaller changes and fixes, enables sending out messages from the command room to any room the bot is in, supports relaying notices (so you can command other bots using the Middleman bot 🤖) and adds support for flagging certain rooms as "mention only", in which case only mentions are relayed.

Find Middleman here: https://github.com/elokapina/middleman

Dept of Events and Talks 🗣️

Matrix-Dev Room @ FrOSCon (virtual) is already tomorrow!

Oleg said:

This weekend we are organising a Matrix Dev-Room at the FrOSCon with some quite interesting talks (in German 🇩🇪):

Take a look at the conference schedule and join us at #FrOSCon:fiksel.info!

FrOSCon will be a virtual event and it's free! See you tomorrow!

Dept of Interesting Projects 🛰️

Half-Shot's car

Half-Shot said:

Howdy folks, it's been aaaaages since I've done mad little project but I had some LEGO and was bored on a Sunday. I present to you matrix-poweredup! This is a little bot that connects to any LEGO PoweredUp devices (using the node-poweredup library). You can then start controlling the motors via Matrix, and have the sensors report back into the Matrix room. It's currently limited to a RC buggy I picked up over the weekend but it's very extendible. It also includes a web application to control things via a gamepad, if that's your bag.

There will be a little demo at the end of Matrix Live, so watch this space

2021-08-20-RNy6w-image.png

Server Stats

MTRNord reported:

Some updates on the serverstats project:

As a few of you noticed the pages are currently down due to some mess that happened (not going into detail on purpose here).

The pages however will soon come back. I am now using the time they are down to improve the code and some pages on it. So dont be worried it is not dead but it will come back as soon as I get those changes done 🙂

Circles

cvwright reported:

Circles is an iOS app for end-to-end encrypted secure social networking and sharing, built on top of Matrix. Its goal is to provide a safe and convenient way for close friends and families to share things that they wouldn't post publicly -- e.g. for parents to safely share pictures of their kids. You can also use it to share updates with your friends, without a creepy advertising company data mining every word.

Circles features include:

  • Social "wall"-like functionality and timeline of friends' posts for each of your social circles, e.g. Friends, Family, Neighbors, Coworkers, etc.

  • Private groups

  • Encrypted photo galleries

Recent updates to the Circles beta include:

  • Support for use with any Matrix homeserver, including a new encrypted recovery and key backup mechanism that should be compatible with other Matrix clients like Element. (Please note: For use with standard Matrix accounts, be sure to select "Advanced options" at login and enter your passphrase for key backup / recovery.)

  • Emoji reactions

  • Markdown formatting for text posts and image captions

  • Better support for larger screens (iPad)

The latest beta build of Circles (v0.91) is available from Apple on TestFlight

Dept of Guides 🧭

Digital Justice

Bram said:

As a hobby, I built a website called Digital Justice. It's a website that explains in layman's terms what certain digital topics are (like data sovereignty, software autonomy and abandonware continuity) and why those topics matter.

I'll also write several articles related to digital rights. For now, there's three articles: one that explains how to join Matrix, one that explains how and why the government should strive towards decentralization, and one that explains why users should consider using Matrix instead of Signal.

The website may be a bit too simple for privacy gurus who know their stuff, but it's meant as an accessible resource to help people understand why privacy matters. Feel free to use the website as a resource, share the RSS feed or use it as a FAQ to your colleague who doesn't understand why you're so adamant on using an open communication protocol.

If you'd like to see something corrected or would like to add something to the website, the source code's here and you can always contact me through the website.

Final Thoughts 💭

Room of the week

timokoesters told us:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #physics:matrix.org

"Friendly Physics Related Discussion Talking Point: LIGO & Hawking's area theorem https://tinyurl.com/nzuaaepv Book Club 22nd August 15:00 BST | Bishop & Goldberg (manifolds) | Book Club Site: https://tinyurl.com/2sn9upx2 +stardust:matrix.org"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

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.

RankHostnameMedian MS
1boba.best367
2envs.net501.5
3catvibers.me507.5
4neko.dev517
5trolla.us540.5
6eisfunke.com744
7mozilla.org991
8taboulisme.com1015.5
9imninja.net1016
10sumnerevans.com1137

#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.

RankHostnameMedian MS
1dendrite.nordgedanken.dev317
2musketeer-chat.ml514
3dendrite.kreatea.space1110.5
4weber.world2480
5dendrite.s3cr3t.me2933.5
6dendrite.matrix.org7872.5

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-08-13

13.08.2021 19:59 — This Week in Matrix Ben Parsons
Last update: 13.08.2021 19:33

Matrix Live 🎙

Dept of Spec 📜

Spec

anoa offered:

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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

Closed MSCs:

Spec Updates

Work on Spaces continues with MSC2946 (Space Summary API), specifically revolving around how to paginate the summary. This has called into question how pagination across Matrix works in general, which is a prime target for refactoring - perhaps an upcoming consistent pagination MSC? :)

Otherwise, as listed above, MSC3289 (room v8) has merged! It brings with it the ability to grant the ability to join a room based on one's membership in another room. While the was originally conceived for allowing users that are part of one Space to be allowed to join rooms, it has been built upon in other creative ways. Such as in MSC3325, where it could be used to make room upgrades more seamless!

And finally, a special thanks to Lukas Lihotzki for all of their spec PRs this week. They're been stellar!

2021-08-13-MVPF_-stacked_area_chart.png

Dept of Servers 🏢

Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

Big news! Synapse 1.40 is out and it comes with support for Room Version 8! Version 8 includes "restricted rooms" which are only visible and joinable by members of a specific Space (or via direct invitation). This finally makes it useful to use Spaces as containers for private rooms, like you might with a company, guild, or open source community. Once invited to the parent Space, members can join and discover the otherwise private rooms within. No more /invite spam every time you bring someone on board!

Also: If you've received any push notifications in Element Android or Element iOS this week, they've come via our shiny new stateless release of Sygnal! If you haven't received expected push notifications on those platforms this week... please alert us immediately. 😉

Lastly, Element is overjoyed to welcome David Robertson to the Synapse team. Welcome aboard, David!

Homeserver Deployment 📥️

Kubernetes

Ananace reported:

And this week too keeps on going with the regular Kubernetes Helm Chart updates, this time bumping matrix-synapse to 1.40.0.

Dept of Bridges 🌉

Gitter

Eric Eastwood reported:

Exciting update this week on the MSC2716 front for backfilling historical messages into existing rooms! All of the big pieces are now merged for full-fat federated historical messages in Synapse 💪

MSC2716 was also consolidated and updated to propose the /batch_send implementation we're using in Synapse. There is also a plan for how this can be backwards compatible with existing room versions so no need for those pesky room upgrades. This will help us be able to jump in early and use this for Gitter as soon as the new event types become stable. Go jump in on MSC2716 to give feedback and read up on the details 😀

Dept of Clients 📱

Cinny v1.1.0

ajbura said:

It has been almost two weeks since we have launched Cinny and here is what we have done in these days:

Features

  • You can now decrypt message history by importing encryption keys.

  • We now support few commands along with emoji autofill and our unique go-to commands.

  • You can send messages with markdown. (This message is sent from Cinny)

  • It now supports replying messages and message deletion.

  • It now shows MXID on hover over display name.

  • You can now see who reacted on message by hovering over reaction.

  • Channels/rooms can be joined by alias.

Bugs

  • Fixed login issue on servers that don't support delegation.

  • Fixed login issue related to non-compliant localpart. (Thanks to phildenhoff)

  • Fixed invalid password issue. (Thanks to Troplo)

You can find more about Cinny at https://cinny.in

Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny

Twitter: https://twitter.com/@cinnyapp

2021-08-13-9eps4-reply_preview_in_butter_theme.png

Ement.el

alphapapa offered:

Ement.el, a Matrix client for Emacs, continues to improve. Some of the changes in the past week:

Additions

  • Messages may now be written in Org-mode syntax (a format similar to but more powerful than Markdown). Internally, it's automatically converted to HTML and sent as the message's formatted body. This supports nearly any HTML feature that Org-mode can export to, including rich text, bulleted and numbered lists, and even tables (this message is being written directly in Org syntax; see a table of new bindings at the end of this list).

  • An optional pop-out compose buffer makes writing and editing long messages easier (also being used for this message).

  • Read/fully-read marker lines are now displayed after the last read message, and these are synced with the server and other clients. These lines can also be placed with a command, making it easy to return to a certain event later, even on other clients.

  • Usernames at the beginning of messages may optionally be colored to match the addressee's username. This especially helps following conversations in busy rooms.

  • Ement.el is confirmed to work with Pantalaimon, the E2EE-aware reverse proxy, making encrypted rooms work transparently. Once Pantalaimon is installed and configured, connecting through it with Ement.el is trivial, and this step is documented in the readme.

Improvements

  • Per-user displayname and message colors have improved (and configurable) contrast ratio with the background color.

  • Reactions are sorted by the number of users who have sent each one.

  • Unread rooms are displayed more prominently in the room list.

  • New default bindings make it quick to jump to the mentions and notifications buffers.

  • Sync timeouts are handled more gracefully and Ement.el re-syncs automatically.

  • Various minor fixes and enhancements.

And here's the new-bindings table, written directly in Org syntax and sent automatically as HTML:

BindingCommand
S-SPCScroll up
M-SPCMove to last-read marker
C-kDelete message
M-g M-lSwitch to room list buffer
M-g M-mSwitch to mentions buffer
M-g M-nSwitch to notifications buffer

Come join us in #ement.el:matrix.org!

2021-08-13-s-1xM-ement-for-twim.png

Fractal

Alexandre Franke announced:

Fractal updates two weeks in a row? 😱

In our fractal-next branch, Julian tweaked the style of the ugly “this is an early development version, here be dragons” warning, while GSoC intern Kai did a couple maintenance tasks: he updated some documentation and fixed clippy warnings.

The stable branch also saw some activity, with new contributor 🎉 Amanda fixing two bugs (#392, #803) with a single merge request, sorting out our handling of <p> tag trimming.

Element Clients

With updates from the teams!

Delight team

  • The tool for migrating communities to spaces in Element Web has been completed
  • Lots of accessibility support for Spaces in Element Web
  • Preparing Element Web to take Spaces out of Labs
  • Pagination of the spaces summary now works for local rooms, we're continuing work on fetching data over federation.
  • On iOS, we’re working on exploring rooms and browsing users in a space

Web

  • v1.8.0-rc1 is available on https://staging.element.io/
  • Work on threads continues - we are narrowing down on a first prototype based on treating chained replies as threads
  • We’ve spiked support for Sentry which will give us more insights into how the app is working in the wild
  • Support for hot module reloading for React components, following last week’s work on CSS hot reloading
  • Improved the look and feel of image blur hashing by adding some animations

iOS

  • The release candidate 1.5.1 is available for testing on TestFlight. Voice messages are enabled by default
  • Towncrier is now enabled on all of our 3 repositories
  • Reaction count got a fix. Please rageshake if you see unexpected count
  • Notifications content has been fixed or improved
  • Element alpha is almost finished. This is a new app that we will use for internal testing. There will be a QR code on every PR like this one to install the build on a device. This device must be part of our ad-hoc device list
  • On the performance side, the incremental sync has been improved and merged on develop. Next is lazy loading room messages

Android

  • We made 2 releases this week: 1.1.16 to fix a regression that prevented sending messages in e2ee rooms and 1.2.0 with voice messages enabled by default
  • Voice messages have been improved before the release
  • We continued to update the call UI with call tiles in the timeline

Sailtrix

hengyedev said:

Sailtrix is a matrix client for SailfishOS.

Here's a summary of Sailtrix development this week:

  • Added notifications support

  • Changed the layout to use tabs

  • Added display of timestamps to messages

  • Display names are shown for direct messages.

  • Messages sent by the same user in succession are grouped

Join us in #sailtrix:matrix.org . GitLab: https://gitlab.com/HengYeDev/harbour-sailtrix

Download at OpenRepos: https://openrepos.net/content/hengyedev/sailtrix

Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

You now get notified, if someone reuses a megolm session index, because that in theory could be used by an attacker to send seemingly verified messages. We also now render decryption errors more nicely and users can now explicitly request decryption keys (in addition to the automatic key requests in the background that already existed). We also fixed an issue, that could corrupt the database when using the flatpak and if you lost your network connection, Nheko should now reconnect faster instead of potentially waiting 17 minutes for a TCP timeout. The storage for cross-signing secrets should now be more reliable, you can close image popups with the "Escape" key, close the current room by double clicking it and a few more miscellaneous bugfixes.

You can track the remaining E2EE bits, before we declare our E2EE support as stable, in this comment now: https://github.com/Nheko-Reborn/nheko/issues/23#issuecomment-894689158

Dept of Bots 🤖

Hebbot

Felix reported:

I released Hebbot v2.0 (the matrix bot which generates the thisweek.gnome.org blog posts)

https://github.com/haecker-felix/hebbot/releases/tag/v2.0

It has learned how to handle images / videos, and can now insert them directly into the rendered markdown. Creating new posts has been significantly simplified and now makes even less work for the author. For example, Hebbot now automatically generates a command to quickly download all images/videos at once.

Maybe other communities are interested in creating a "This Week in X" blog as well👀?

2021-08-13-NQPFN-ima_f906312.jpeg

Maubot-Pocket

jaywink offered:

I find "read it later" services like Pocket extremely useful, but fail hard at actually keeping my read it later list at a sane level. For me it's hard to maintain the list and actually read through things as choosing which one to process feels overwhelming due to the amount of items.

Randomization to the rescue! I made a Pocket plugin for Maubot which gives me a random article from my list and allows me to easily archive it. Now I don't need to decide which article to pick, the computer does that for me!

Source code and info: https://github.com/jaywink/maubot-pocket

Ps. Maubot is truly awesome as a bot system, well documented and easy to develop on 😻

2021-08-13-1Tte3-maubot-pocket.gif

Dept of Events and Talks 🗣️

Matrix @ Bornhack 2021 ⛺

carl reported:

Bornhack is a 7 day outdoor tent camp where hackers, makers and people with an interest in technology or security come together to celebrate technology, socialise, learn and have fun.

This year, Asbjørn and I are hosting a couple of events related to Matrix:

If you attend Bornhack, please come by and say hi! If you are thinking about attending, don't hesitate to reach out and ask us anything 🌵⛺

Final Thoughts 💭

Room of the week

timokoesters reported:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #gamedev:matrix.org

"game development"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

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.

RankHostnameMedian MS
1envs.net452
2boba.best501
3trolla.us656
4mindlesstux.com947
5matrix.sp-codes.de1040
6cyberdi.sk1598
7shortestpath.dev1846
8ziroh.be1972.5
9catvibers.me2392
10casavant.org2617

#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.

RankHostnameMedian MS
1dendrite.nordgedanken.dev402
2dendrite.s3cr3t.me1333.5
3dendrite01.fiksel.info1577
4weber.world4128

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.40.0 released

10.08.2021 00:00 — Releases Dan Callahan

Synapse 1.40.0 is out now!

Support for Room Version 8

This release of Synapse includes stable support for Room Version 8! Version 8 codifies a concept of "restricted rooms" which are private rooms joinable only by direct invitation or by being a member of other, designated Spaces / rooms.

This means you can create a Matrix Space for your company, team, or guild, and instead of inviting people to the Space and directly to a bunch of private rooms, you can simply configure your private rooms such that membership in the Space automatically confers access to the private rooms.

This is a major improvement to access control in Matrix, and we can't wait to use it ourselves.

Note that client support for managing restricted rooms is still forthcoming, and you'll want to ensure that your users are on homeservers which support v8 before upgrading existing rooms. To ensure compatibility across federation, the default for newly created rooms remains at v6 for the time being.

Everything Else

A few other items worth calling out:

  • Synapse can now optionally recycle PostgreSQL connections after a specified number of transactions (#10440), which may mitigate slow memory leaks in the database. Thanks to GitHub user hifi.
  • We have a whole new documentation page explaining Room DAG Concepts like depth, stream ordering, extremities, outliers, and state groups.
  • The Admin API for listing accounts now returns a creation_ts property indicating when an account was created. Thanks to work by dklimpel.
  • Synapse should better detect character encodings in URL previews thanks to a contribution by srividyut.

In addition to further work towards implementing MSC2716: Incrementally Importing History into Existing Rooms, we've landed support for:

  • MSC2033: The /account/whoami endpoint now includes the device_id associated with the access token used to make the request.
  • (Experimental) MSC3244: The /_matrix/client/r0/capabilities endpoint may include metadata about which room versions support which capabilities (like knocking on restricted joins).
  • (Experimental) MSC2285: Clients may mark messages as read on the server without updating their externally visible read receipts, implemented by SimonBrandner.

These are just the highlights; please see the Release Notes for a complete list of changes in this release.

Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including dklimpel, hifi, SimonBrandner, and srividyut.

This Week in Matrix 2021-08-06

06.08.2021 00:00 — This Week in Matrix Brendan Abolivier

Hello TWIM!

I'm taking over hosting This Week In Matrix again to give Ben a well-deserved break. Your favourite TWIM host will of course be back next week, but in the mean time, let's see what Matrix goodness has happened this week!

Matrix Live 🎙

It's demo week again this week! We've got three great demos to share with you this month:

  • Robert, the latest addition to the Matrix VoIP team, gives us a sneak peek at his experiments with implementing native full mesh video calls in Matrix
  • Gil, from the Element iOS team, gives us an update on the implementation of Spaces in the app
  • and finally Ryan, who's been exploring ways to use Matrix beyond chat, shows us his shiny new full stack integration test solution for Matrix client and servers

And I hear there might also have been a bonus demo that managed to sneak its way lower down this post 😉

Dept of Status of Matrix 🌡️

Ansible community adopts Matrix

Gwmngilfen said:

The Ansible community has adopted Matrix as an official place to chat (alongside IRC). We'll be updating our documentation in the near future, but our rooms all have aliases already - add "ansible.im" to your directory search, or join #space:ansible.im if you're in the Spaces beta. See you there!

Super psyched to welcome the Ansible community to Matrix!

Dept of Spec 📜

Spec

anoa told us:

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.

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

Closed MSCs:

Spec Updates

Work on the new spec release continues, and the infrastructure side of it is making progress. Once its in place, there are a few more changes to the spec content, before it'll be ready. Watch this space!

Room version 8 is due to land soon - which will bring restricted rooms to the masses. This is most useful in the context of Spaces, which allows granting access to rooms in a space based on a user's membership of that space (or another space!).

2021-08-06-roEzt-stacked_area_chart.png

Dept of Servers 🏢

Synapse

callahad said:

Today in not-Synapse news, we're getting ready for a new release of Sygnal, our reference implementation of a Matrix push notification gateway, early next week. The most significant change is that Shay, one of our Outreachy interns, has determined that Sygnal can function completely statelessly, removing the need for a SQLite or PostgreSQL database. This clears the path for proper horizontal scaling and high availability deployments of Sygnal.

On the Synapse side of the world, MSC3289: Room version 8 entered Final Comment Period (FCP) and we expect it to be merged into the Matrix spec over the weekend. If that occurs, we'll be on track to include support for this room version in Synapse 1.40 next week. Tune in next week to find out how that went!

Conduit

Conduit is a Matrix homeserver written in Rust https://conduit.rs

timokoesters announced:

Hey everyone, I want to release the first major version of Conduit in a few weeks and I need your help!

Almost all features are on the master branch already, so please try to deploy your own Conduit now and try to find bugs. See https://gitlab.com/famedly/conduit

State res has been tested a lot, so it's okay to join any public rooms (room version 6 preferred).

The barebones DEPLOY.md is the easiest and most tested way to install Conduit. We also have docker images, but I think the documentation still needs to be improved (please contribute if you can!)

Please open a gitlab issue for any problem you run into.

Thanks!

Dept of Bridges 🌉

Microsoft Teams puppet bridge

neil told us:

mx-puppet-teams is a new Microsoft Teams (Chat) bridge built on the mx-puppet-bridge platform. The bridge does not require admin privileges on the MS Teams side, so can be used by any user with access to Teams. It's currently using the public Microsoft Graph API, which comes with some limitations, but feature support is being improved.

Focus is currently on Chats (one to one, group chats, etc) rather than the main Teams rooms.

Still a fair amount of work to do, but it would be great to get feedback and comments from anyone who is interested.

Thanks!

Dept of Messengers 📱

The list of Matrix clients is getting larger and larger! And it's not only chat clients anymore! So I thought I'd experiment a bit this week by splitting them in two categories: messengers and non-chat clients. Let us know how you like this format in #twim:matrix.org.

FluffyChat

FluffyChat is the cutest cross-platform matrix client. It is available for Android, iOS, Web and Desktop.

krille said:

FluffyChat 0.36.0 has been released.

This release only targets minor design improvements and bug fixes.

All changes:

  • design: Make unread rooms in the list more visible

  • design: Move pinned icon in title

  • feat: Rate limit streams so that large accounts have a smoother UI

  • feat: Display the room name in room pills

  • feat: Increase the amount of suggestions for the input bar

  • feat: Tapping on stickers shows the sticker body

  • fix: Windows CI builds

Sorunome also added:

Heya, we are very grateful for all the awesome translators helping us translate FluffyChat! Unfortunately, we aren't the best at managing such a huge effort as translating such a large app into so many different languages. As a result, suggestions went un-reviewed on weblate for long, people weren't able to submit translations, etc. We are very sorry for that, but want to work on fixing that! As, well, we are only really programmers with little time, we thought of asking for help from the community (you all!)! That is why we are looking for a translation manager for FluffyChat. No programming experience at all is required, it'd mostly be about managing our weblate and answering translation-related questions. If you are interested, please plop into our room #fluffychat:matrix.org and say so! (And ping Sorunome if you don't get answers). Looking forward to a where translations are managed better, and thank you again for everyone who did bite through all this and contributed translations so far!

So if you're into translations and want to help, feel free to let them know!

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico told us:

This week I added a sticker/emoji pack editor to Nheko. This means you now don't need to create packs manually in /devtools anymore, but you can create and edit packs much more conveniently. There are still some rough edges, but we expect to sort those out in the near future. Make sure you check out the demo video I recorded!

Furthermore LorenDB has been busy porting more of the remaining dialogs to Qml, dialogs should now float properly on Wayland and have a proper close button on KDE. We also fixed a few more encryption bugs, which means we should be able to mark E2EE as stable in Nheko soon and we cleaned up old cruft in the codebase.

And if that's not enough for you, since it's demo week, Nico's also showing off Nheko's brand new sticker goodness!

Ement.el

alphapapa announced:

Ement.el, a new Matrix client for Emacs, continues to gain new features: deleting messages, showing room avatars, adding to reactions by clicking them, and new "mentions" and "notifications" buffers that show messages from multiple rooms in a single window. You can even reply to messages from any room in the Notifications buffer, which makes it easy to follow multiple rooms at once, rather than having to switch between rooms. (Room: #ement.el:matrix.org)

NeoChat

NeoChat is a desktop chat client for Matrix. It uses Kirigami to provide a convergent user interface on desktops (KDE Plasma, GNOME, Windows, and other desktops) and phones (Plasma Mobile and Android).

Tobias Fella told us:

This week, we merged a few fixes related to login, logout and account switching making NeoChat crash less during those operations. Currently, we are working on a nice ways to show location events and adding the possibility of sending those events

2021-08-06-dGcwk-twim.png

Element clients

Updates from the teams

Delight team

  • MSC3289 has entered FCP, adding support for Room Version 8, which includes support for MSC3083 (Restricting room membership based on membership in other rooms).
  • We’ve been working on a tool for migrating communities to spaces, which will be available in Element Web
  • We’re adding pagination to the Spaces Summary API to improve support for spaces with large numbers of rooms when browsing Spaces room lists
  • On iOS, we’ve been working on suggesting Spaces in room lists

VoIP

  • Mute status signalling now landed on develop! Thanks again to Simon.

Web

  • Voice messages! They’re out on develop.element.io and planning to go out for release soon. Let us know if you run into any issues, or have suggestions on how to make it better.
  • Made Improvements to our changelog automation, which should lead to much more joyous changelogs
  • We merged initial client-side support for Posthog analytics, adhering to the user’s existing analytics opt-in preferences
  • Support for CSS hot reload, which has incrediblised working on Element’s styling for designers and engineers
  • Some iteration and bug fixing to image blur hashes and message bubbles
  • Full steam ahead on threading, we have a backend for it in js-sdk

iOS

  • Same thing for voice messages as web ^
  • We started discussions (and experimenting) about SwiftUI for new features. Minimal target version is 11 but some new features, like notifications for keywords, users and rooms completion, etc, will be available for devices running iOS 13 (maybe 14).
  • We have updated our contributing guide (https://github.com/matrix-org/matrix-ios-sdk/blob/develop/CONTRIBUTING.md)
  • We adopted Towncrier to manage our change logs. Check the contributing guide above for the rules we defined and how we use towncrier across our 3 iOS repositories
  • Blank notifications (“Message”) are being fixed and improved. There will still be a fallback notification content but it should happen less often. In this case, we will display “Notification”
  • In parallel, we are continuing working on performance improvements. We still target an instant start for XL accounts (with thousands of rooms)

Android

  • Same thing for voice messages as web ^ + fixed a rare crash
  • We fixed a regression that blocked message sending in an encrypted room. A new release is in progress
  • We fixed some notifications issues

Release of Sailtrix 1.2

HengYeDev said:

Sailtrix is a Matrix client for SailfishOS supporting basic end-to-end encryption. This week I've released its third iteration. Here's a list of features:

  • Logging in with username and password

  • Reading the past messages in a room (currently limited to loading 30 at a time)

  • Messages with basic formatting can be read (bold, italic, etc)

  • Sending messages

  • Sending messages in reply

  • Editing messages

  • Deleting messages

  • Starting direct messages

  • Ignoring and unignoring users

  • Viewing and downloading of images

  • Viewing of audio and video

  • Downloading files

  • Sending files

  • Accepting invites

  • Public room directory

  • Creating Rooms

  • Basic end-to-end encryption support (Late Alpha State)

  • All sensitive information including messages are encrypted at rest with Sailfish Secrets

You can download Sailtrix at https://openrepos.net/content/hengyedev/sailtrix

Discussion takes place at our matrix channel at #sailtrix:matrix.org

GitLab Repository: https://gitlab.com/HengYeDev/harbour-sailtrix

Fractal

Fractal is a GTK Matrix Client written in Rust.

Alexandre Franke announced:

Two weeks ago I told you about our interns presenting at GUADEC. A video recording is now available. They kept busy in the meantime, with Alejandro landing work on display names and avatars (!801 and !802), and Kai working on room sorting in the sidebar.

New contributor 🎉 enterprisey brought back unlocking of the secret service collection and fixed the use of RUST_BACKTRACE in our manifest.

Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/

Bruno told us:

In my absence, the rest of team Hydrogen has been hard at work to bring you the ability to send replies, thanks to Daniel, and to open the member panel when clicking through from the member list, thanks to Midhun. If all goes well, this should get released tonight. Next up, Midhun will start working on SSO login support, a feature a few people have asked about in the past 🎉

2021-08-06-QYP05-image.png

Mirage

Mirage is a fancy, customizable, keyboard-operable Matrix client written in Qt/QML and Python. Currently in alpha and available on Linux.

miruka announced:

0.7.2 release

Added

  • Navigation keybinds:

    • Keys.quit keybind to exit the application, unbound by default

    • Keys.earlier_page and Keys.later_page keybinds to navigate the pages/chats history, Ctrl+H/Left and Ctrl+L/Right by default

    • Mouse button 4/5 can now be used to navigate the history

    • General.wrap_history setting, affects the behavior of history navigation

    • Keys.Rooms.Direct section, allowing keybinds to jump to specific rooms

    • Keys.Rooms.oldest_unread/latest_unread to jump to the room with the oldest or newest unread message, by default Ctrl(+Shift)+U

    • Keys.Rooms.oldest_highlight/latest_highlight, same as above but only considers rooms where you've been mentioned/replied to/etc, by default Ctrl(+Shift)+H

  • Ignoring users:

    • Ignore option in the context menu for room members

    • Ignore option when rejecting invites

    • Editable ignored users list in account settings

    • Invites and messages from ignored users are silently discarded. Their display name, avatar and presence are removed. They will also always be placed at the bottom of the room member list.

  • Status messages history in the left pane account context menu, and auto-suggestion for the status field. The number of saved entries can be controlled with Presence.saved_status.

  • "Add another account" entry in the top left settings menu

  • Copiable room ID field in the room settings pane

  • Back button in account settings and server browser when the window is too narrow to show the side panes

  • Escape key handling in the account settings, server browser and add chat pages

  • Support for rendering HTML <hr> lines (markdown ---) in messages

Changed

  • Keybinds:

    • Keys.messages.clear_all default keybind is now Ctrl+Shift+L

    • Keys.Account.AtIndex keybinds will consistently move to the corresponding account settings, instead of skipping to the first room if the account is expanded in the left pane

    • Keys.messages.open_links_files(_externally): ignore matrix.to user and room mention links

  • Presence:

    • Allow using the invisible mode on servers not supporting presence, which will still prevent sending typing notifications and read marker updates

    • Restore any previously set status message when reconnecting after being offline, unless another one has been set from a different client

    • Render set status message striked out while invisible/offline to indicate that it isn't being broadcasted

  • Error popup:

    • Multiple unexpected errors will be combined into a single popup, instead of opening a new one for every error

    • Report button now links to Github issues

    • More details shown for matrix errors

  • Messages:

    • Require a space after the # for markdown titles

    • Render matrix.to URL in messages as shorter hyperlinks

  • Left pane rooms:

    • Last message display: shorten long "In reply to..." prefixes for the message to be shown as "↩ <name>: <reply>"

    • Show the inviter for invites where the room has an explicit name/alias set

  • Leave, decline invite and forget room options are merged into an unified popup

  • Raise default General.tooltips_delay from 0.5 to 0.7s

  • Updated headers UI navigation arrow icons

  • Misc UI text changes for shortness and consistency

Fixed

  • Fix error popup appearing when invalid room events appear in syncs

  • Fix parsing of URL in messages containing some special characters

  • Left pane rooms last message display: fix > quote right after another quote not getting colored

  • Fix the forgetting rooms feature

  • Fix rendering status messages containing HTML-unsafe characters

  • Fix chat bottom bar for invited/left rooms glitching at certain sizes or not properly updating when the room's state changes

  • Prevent theme animationDuration property from affecting the speed of loading spinners, progress bars, server ping indicators and image rotation button cooldown

  • Hopefully fix account presence stuck flickering between two states


The backend.errors.MatrixError: (200, None) error occurring on Synapse 1.38+ servers should be fixed by the latest matrix-nio commit, which is included in the new Mirage appimage and flatpak. For manual installs, make sure to run pip3 install --user -Ur requirements.txt again before rebuilding. For packagers, the commit will be present in nio 0.18.5, which will be officially released before tomorrow.

Dept of Non-Chat Clients 💻️

TheBoard

Timo K. announced:

A collaborative whiteboard based on the [matrix] protocol. github

A lot has happened this week. The biggest task was the switch to a proper build system (the project now is based on yarn and webpack). This gave the opportunity to do lots of refactoring and code cleanup. Additionally there is now a spec for the whiteboard events which got implemented this week. For the ones who are curious, here is the file: spec

There are also a couple of new features and fixes. Most notably:

  • The Text tool was added. Text in different colors and sizes can be added to the whiteboard.

  • The Image tool was added. Images are uploaded and than rendered on the canvas (not yet published but will be available in a couple of days)

  • The styling was improved. There are less gray areas which I did not like and the corners are less round.

  • And the repository got a lot of love with more details in the readme and better code/folder structure.

  • There is now also a matrix room for feedback, issues and ideas: #TheBoard:matrix.org

Feel free to try it at: https://toger5.github.io/TheBoard/ (preferable not with your main matrix account)

2021-08-06-VnEJJ-image.png

Circles

cvwright offered:

Circles is an iOS app for end-to-end encrypted secure social networking and sharing, built on top of Matrix. Its goal is to provide a safe and convenient way for close friends and families to share things that they wouldn't post publicly -- e.g. for parents to safely share pictures of their kids.

Recent updates to the Circles beta include:

  • Support for use with any Matrix homeserver

  • Emoji reactions

  • Markdown formatting for posts and photo captions

  • Better support for larger screens (iPad)

The latest beta build of Circles (v0.90) is available from Apple on TestFlight

They've also added:

NOTE 1 - If you're using an existing account, you'll need to tap the "Advanced Options" on the login screen so you can give it your password for SSSS / encrypted key backup / recovery / etc. Otherwise Circles will try to use a login password that it generates with MSC 3265 so it can do everything safely using just a single password.

NOTE 2 - Circles is NOT RECOMMENDED for use on an account that you're already using for Matrix chat, for the above reason and more. If you do this, prepare to see lots of extra, weird rooms in Element / Fluffy / Nheko / whatever chat client you're using. Also if you decide to try this anyway, please let me know how it goes. :-)

NOTE 3 - Circles is not available yet in France. Sorry. I gotta update my encryption compliance documentation with Apple.

If you want to know more about this project, feel free to join #circles:matrix.org!

Dept of SDKs and Frameworks 🧰

Version 1.6.0 of Simple-Matrix-Bot-Lib is released!

krazykirby99999 announced:

Changes:

  • Feature: Sending images is now possible via bot.api.send_image_message. An example and more information about this can be found here.

  • Fix: There was a bug in which the bot would print the join message twice. This is now patched.

Notes:

  • Version 2.0.0 of Simple-Matrix-Bot-Lib will be available on pypi soon with incompatible changes, so make sure to specify the version of Simple-Matrix-Bot-Lib in your dependencies to simplematrixbotlib >= 1.6.0, < 2.0.0 until your code is compatible with the new syntax. Check TWIM next week to learn more about the new changes.

mautrix-*

Tulir offered:

I moved all the mautrix bridges and libraries to a fancy new org: https://github.com/mautrix

GitLab and/or Docker haven't invented redirects yet, so docker registries are split: the old dock.mau.dev/tulir/mautrix-* paths will keep working for old versions, but new images will be at dock.mau.dev/mautrix/*.

Dept of Ops 🛠

Kubernetes

Ananace announced:

This week continues the regular K8s updates, with my Helm Charts seeing updates for element-web to 1.7.34 as well as a fix for handling IPv6 in the well-known listener for Synapse.

Dendrite Helm chart

And because Synapse started feeling a bit lonely being the only one with a Helm chart, s7evink offered:

Well, Hi there TWIMers :P

I've been working on a helm chart for Dendrite (polylith/monolith (untested)), since i was sick of creating a single deployment for each component. For now it's working as expected, but since I'm pretty new to creating helm charts, please let me know if there's something wrong/bad practice.

NOTE: Polylith is not yet supported by the developers!

Shout out to Ananace, for the awesome helm chart for Synapse, which was my inspiration! :)

Rejoice! Now Dendrite aficionados have even more ways to enjoy our next-generation homeserver!

mxadm

Jez (he/him) told us:

I've released mxadm, a small CLI tool for Matrix room admin that I've been working on for a few weeks; more details here: https://erambler.co.uk/blog/introducing-mxadm/

Dept of Interesting Projects 🛰️

Matrix (Server) Statistics

MTRNord announced:

This is part of the server_stats project

Part of the ServerStats Project is to use the data to build various charts. This project is currently still in progress to be written using RLang.

This week new is a World Map of IP based locations of Matrix Servers. Be ware that the coordinates are quite rough due to the quality of the free maxmind databases used. The map data gets updated every 12h.

Also the website for those statistics got fully overhauled to feel more modern.

Check it out at https://stats.serverstats.nordgedanken.dev or the Source at https://github.com/mx-serverstats/server_stats_web_statistics

2021-08-06-StyGT-image.png

Dept of Guides 🧭

Matrix/Element Help Documentation

~creme announced:

envs.net (@cblte:envs.net and @creme:envs.net) has forked the TU-Dresden matrix/element help documentation - https://doc.matrix.tu-dresden.de/en/ (used hugo ssg).

Our fresh help page can be found at: https://matrix-help.envs.net/ and now uses a simpler ssg called mkdocs.

We decided to fork the existing documentation of the TU-Dresden to make it easier to use. In addition, the project envs.net already uses mkdocs for its existing documentation.

The link to the Git repository can be found directly on the page. We look forward to improving it in the future and would also appreciate your help.

Feel free to use this documentation for yourself and create your own fork.

2021-08-06-3db1A-twim-matrix-help.png

Final Thoughts 💭

Room of the week

timokoesters offered:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #plaintextaccounting:matrix.org

"Doing accounting with plain text"


If you want to suggest a room for this section, tell me in #roomoftheweek

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.

RankHostnameMedian MS
1envs.net466
2maunium.net581
3aria-net.org647
4nheko.im845
5trolla.us906
6fairydust.space933.5
7finallycoffee.eu960
8kittenface.studio1027
9mindlesstux.com1412
10matrix.org2030

#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.

RankHostnameMedian MS
1construct.supercable.onl173
2conduit.supercable.onl246
3supercable.onl332
4dendrite.supercable.onl379
5conduit.rs498
6dendrite.s3cr3t.me1531.5
7weber.world2909

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2021-07-30

30.07.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Let's learn about PyQuotient with Vlad and Alexey.

Dept of Status of Matrix 🌡️

Element raises $30M as Matrix explodes!

At first when I read the headline I was scared - explodes? How can I protect myself from this explosion? After a moment of reading this huge news, however, I was relieved - Matrix has exploded in popularity, and Element have all new funding to keep driving the ecosystem forward. Let's go!

Dept of Spec 📜

Spec

anoa announced:

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.

MSC Status

New MSCs:

  • There were no new MSCs created this week.

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

Spec Updates

While a quiet week for MSC state changes (shown above), there's still plenty of work and collaboration happening!

Spaces work marches forward as MSC3083 has been merged - allowing for users to join a room in a space based on their membership in a space. We think this will really help with the management of Spaces that contain lots of rooms that are otherwise invite-only.

Otherwise MSC3291 (Muting in VoIP calls) has been receiving positive feedback this week!

Finally, MSC3289 (room v8) is ticking along as the implementation is tested in Synapse and Complement tests.

2021-07-30-7paYt-stacked_area_chart.png

Dept of Servers 🏢

Synapse

Synapse is a popular homeserver written in Python.

callahad told us:

Synapse 1.39.0 is out!

Of all the pull requests we landed, my hat is off to MadLittleMods and his Graphviz prowess in #10250, which moves us one step further down the path toward MSC2716: Incrementally importing history into existing rooms. Mmm. Graphs.

But back to Synapse! You should check out the release announcement, but the bulk of the work this cycle went into internal cleanups. Synapse should also be slightly more performant, reliable, and should log fewer spurious errors. Of note, ShadowJonathan did a lot of work with pyupgrade and com2ann to move the entire codebase to more modern Py3.6+ conventions and inline type annotations; thanks, ShadowJonathan!

Synapse 1.39 also continues our march toward unifying Synapse's interface for extension modules, and we've now exposed plugin hooks for the account_validity option, and experimentally implemented hooks for third party event rules.

Lastly, special thanks to kroeckx who has submitted 17 pull requests against our SyTest test suite in the past month, mainly arising from running SyTest against Conduit. Thank you!

Homeserver Deployment 📥️

matrix 1-click app

j3s (he/him) offered:

Hello! This week, I created a matrix 1-click app on the DigitalOcean marketplace. It's basically a pre-baked droplet image that is pre-configured with synapse, element-web, caddy, postgres, plus some setup and moderation tools. My intent was to make self-hosting a Matrix system as easy as pointing some DNS records and running a single script. It makes a lot of sense for smaller, more casual Matrix homeservers, and can serve as a good starting point! It also includes some small utility scripts - ./reset-password, ./new-user, etc.

Secrets like the postgres password and registration password are generated on first boot, there's no sensitive data baked into the image. Of course, it would be nice to be able to verify this - the source code used to build the image is being open sourced. I'm just waiting for some internal processes to finish. It will show up at https://github.com/digitalocean/marketplace-matrix somewhat soon!

Dept of Bridges 🌉

Heisenbridge

hifi announced:

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

  • Lazy joining of IRC users (see below)

  • Keep nick feature has been added

  • Bridge aliveness can be tracked from bridge bot presence

  • Ident replies can be customized by the admin for all users, default to mxid hash

  • Pillifying IRC nicks has been improved

The biggest impact feature this time around is configurable lazy joining IRC users which improves the experience of joining massive IRC channels by not flooding the homeserver with join events. This is now the default and can be changed globally by the bridge admin or overridden per room by users.

Many fixes here and there. Still a few issues left before 1.0 and a lot of testing.

Thanks!

Dept of Clients 📱

Announcing Matrix client Cinny 1.0.0

ajbura reported:

Cinny is a web-based matrix client focusing primarily on simple, elegant and secure interface.

The story started when a friend of mine introduced me to matrix and even after his help it was too difficult for me to get around with Element. I guess it was because Element is too different from other popular chat apps. Then I tried to find a good alternative for web but no success.

That's when me and my friend thought about creating Cinny. For the few weeks we were doing it for fun but when we shared a screenshot of the prototype, the response from people was surprising and that's when things got interesting. We got to know that a lot of people out there are looking for a simple and modern client and so we started building it.

Screenshot on Chrome desktop (see below)

Features

Cinny support the following features:

  • Login/logout and registration of accounts

  • Four different themes

  • Basic alphabetically sorted channel list with unread notification indicator

  • Creating channels and joining/leaving public channels

  • Creating Direct messages

  • Inviting users to channel and basic user list

  • Sending text messages, emojis and attachments

  • Support viewing edited messages, reactions, replies, attachments and markdowm

  • Read receipt for latest messages and typing notifications

  • History scroll and button for quickly scrolling to bottom in room timeline

  • Channel topic, join, leave, kick, ban, avatar/nick changes in room timeline

  • Sending/receiving encrypted text messages and attachments

You can find more about Cinny at https://cinny.in

Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny

Twitter: https://twitter.com/@cinnyapp

2021-07-30-h1N8o-preview-butter.png

Cinny is astounding. A client appears to us nearly fully-formed and looks great while doing it!

Ement.el

alphapapa announced:

Many improvements have been made to Ement.el, a new Matrix client for Emacs. Ement.el can now send and display images, replies, and reactions, as well as edit sent messages. It also supports desktop notifications, configurable by the user to pop up for mentions or for all rooms with open buffers. (Room: #ement.el:matrix.org)

Something something expands until it reads... Matrix?

Element Clients

Updates from the teams

VoIP

  • 1:1 screen sharing is now merged and on develop! Please give it a try and report bugs - plan is for it to go out in the release after next (ie. two weeks from Monday). Huge thanks to Simon for working on this.
  • Simon also has PRs up for mute status signalling, done via MSC3291
  • Fixing the bug where the buttons in a call don’t work in full screen mode

Web

  • v1.7.34-rc.1 is out (maybe even .2 by the time you read this) - full release planned for Monday
  • Continuing to figure out a plan of attack for threading
  • Looking at message bubble feedback & fixing bugs
  • Also looking at fixing blurhash bugs

iOS

  • The coming release, 1.4.8, which is available on TestFlight, supports voice messages. The feature is under a labs setting. DM and room tabs now contain only rooms. Local contacts and the public rooms directory can be found elsewhere in the UI. Full changelog at https://github.com/vector-im/element-ios/releases/tag/v1.4.8.
  • We continue to make good progress on papercuts (https://github.com/vector-im/element-ios/milestone/58) and the overall app stabilisation.

Android

  • Release candidate 1.1.15 is getting prepared. It will include voice messages, under a lab flag.
  • Some bugs on the crypto part have been fixed, it should improve the performance on e2e rooms.

FluffyChat v0.35.0 has been released

FluffyChat is the cutest cross-platform matrix client. It is available for Android, iOS, Web and Desktop.

krille reported:

This release introduces stickers and a lot of minor bug fixes and improvements.

All changes:

Feature

  • Add sticker picker [205d7e8]

  • Also suggest username completions based on their slugs [3d980df]

  • Nicer mentions [99bc819]

  • Render stickers nicer [35523a5]

  • Add download button to audio messages [bbb2f43]

  • Android SSO in webview [befd8e1]

Fixes

  • Reset bootstrap on bad ssss [b78b654]

  • Hide stickers button when there is not sticker pack [b71dd4b]

  • Download files on iOS [a8201c4]

  • Record voice messages on iOS [4c2e690]

  • cropped sticker [a4ec2a0]

  • busy loop due to CircularProgressIndicator [15856e1]

  • Crash on timeline [a206f23]

  • typo on website [00a693e]

  • Make sure the aspect ratio of image bubbles stays the same [a4579a5]

  • Linux failing on attempting to open hive [76e476e]

  • Secure storage [0a52496]

  • Make sure the textfield is unfocused before opening the camera [6821a42]

  • Close safariviewcontroller on SSO [ba685b7]

Refactor

  • Rename store and allow storing custom values [b1c35e5]

Dept of SDKs and Frameworks 🧰

Ruma

iinuwa announced:

This summer's gone by so fast it feels like it's only been a week! Here's a summary of what's happened with Ruma the past few weeks:

We have had a productive summer with our two Google Summer of Code students, Adam Blanchet and Devin Ragotzy. Adam finished implementing the last of our Identity Service API endpoints, bringing us to 100% implementation of all the Matrix API endpoints! (And we promise there are no bugs because "Rust," right?)

Besides improving the Matrix ecosystem, Devin has been helping the Rust ecosystem at large by writing some Clippy lints to improve our codebase and upstreaming his additions.

Read more here: https://ruma.dev/news/gsoc-2021-intro/.

Dept of Ops 🛠

maubot-ldap-inviter

David Mehren offered:

I made maubot-ldap-inviter, a maubot plugin that (surprisingly) invites users into Matrix rooms, according to their membership in LDAP groups.

We are switching from RocketChat to Matrix in the next round of a software engineering course where students work on software projects in small groups.

RocketChat has a LDAP sync, which we previously used to auto-add students and tutors to the chatrooms they need to be in (global announcement room, helpdesk, chat for their group etc.). As there was no such feature for Matrix, I built the bot over the last few days.

It's still somewhat specific to our LDAP setup, but if anyone wants to use the bot and has questions, just open an issue in the repo!

Dept of Services 🚀

Mother Miounne from etke.cc

Aine reported:

Mother Miounne is here

At etke.cc we suffered long enough with 2 things - order form on website and invites on private matrix servers.

No more suffering! Because now the Mother Miounne exists and it does 2 things (for now): handles of web/html forms (sends it to matrix room) and handles invite tokens (integrates with matrix-registration)

We use it as backend of etke.cc service for some time, but still consider it as unstable, so try it yourself, hope it can help you 😉

PS: #miounne:etke.cc - matrix room with news & discussions

Dept of Events and Talks 🗣️

Matrix @ FrOSCon 2021 (virtual)

Oleg reported:

Great news! Matrix Dev-Room and Matrix booth are approved! 🎉

We are currently creating a schedule and we have open slots for talks and workshops!

If you like to present your topic or just help out please contact me (@oleg:fiksel.info) (or [email protected]) now! Language is preferably German, but English is also ok.

See you at #FrOSCon:fiksel.info 😉

Dept of Interesting Projects 🛰️

TheBoard

Timo announced:

This is a personal project I started a couple of weeks ago. I was dreaming of a good open source solution for OneNote or GoodNotes far a long time. There are already great projects, likeXournal++ and Whitebophir. But, they do not include the extent of possibilities to flexible host, collaborate and structuring the notes I have wished for.

Recently, I was thinking about the exact requirements I wanted for such a whiteboard:

  • Real time synchronization (cloud storage)

  • Authentication/account infrastructure (to invite and collaborate on one whiteboard)

  • Adding/Removing ppl to a whiteboard

  • Reliable hosting (when having cloud storage, I don't want to trust a one-man project to continue hosting. And a lot of ppl won’t self-host.)

  • Structuring whiteboards in categories

  • Viewing history and display which part has been drawn by which person

  • Annotating other whiteboards with new layers

  • Hosting for media like PDF's and images

Looking at this list, Matrix was such an obvious choice. I could comment every point but basically with: "A whiteboard should be a Matrix room" everything is said.

TheBoard (probably not the final name) is exactly that. The frontend is not done yet, but already in an okay looking and usable state.

Before trying it out: It takes really long to log in with an account with lots of rooms. So, I highly recommend to NOT use your main Matrix account. Additionally, it is necessary to tag rooms as whiteboards. (really un-intuitive UX that will be improved) But for now the + button needs to be pressed and a (empty (not necessary but recommended) AND UNENCRYPTED) room needs to be selected.

UPDATE I just (on Friday) finished initial spaces support to categorize the whiteboard in notebooks (aka spaces). They can only be create within a matrix client that supports spaces. But they will be displayed properly in TheBoard. (see screenshot)

Any problems, ideas and feedback is highly welcome as a github issue or in the matrix channel #TheBoard:matrix.org.

TLDR:

This project is whiteboard (similar to OneNote) which is

using Matrix as its backend. All your drawings are stored in matrix rooms on your matrix server and are accessible to anyone who is invited.

Try It out at: https://toger5.github.io/TheBoard As always: use at your own Risk

Join the matrix channel at: #TheBoard:matrix.org Github: https://github.com/toger5/TheBoard

2021-07-30-A8NSR-screenshotTWIM.png

graph.settgast.org updated

Chris announced:

Thanks to the awesome https://serverstats.nordgedanken.dev project by MTRNord my small server version history graph now contains more of the matrix fediverse: We went from ~3000 to over 5000 active visible homeservers on https://graph.settgast.org/

Two superb projects combining forces! I've long been a fan of Chris' graphs for tracking the growth of the server ecosystem.

Matrix in the News 📰

Famedly in the news!

uhoreg offered:

Famedly in the news! https://e-health-com.de/details-news/messenger-am-uk-frankfurt-ermoeglicht-simultane-ueberfuehrung-von-chats-in-die-patientendokumentation/

Final Thoughts 💭

Happy Sysadmin day! 🥳

Oleg made us aware:

Let's use this day to thank your Matrix home server admin! Especially folks managing Matrix.org and all the public bridges! ❤️

(If you are hosting yourself then you can tap yourself on a shoulder for doing a great work 😁)

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.

RankHostnameMedian MS
1envs.net370
2boba.best451
3kapsi.fi462.5
4aria-net.org771
5trolla.us828
6gnome.org932.5
7privacytools.io986.5
8ntns.in1195.5
9zemos.net1347
10catvibers.me1801.5

#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.

RankHostnameMedian MS
1cd.mau.dev72
2dendrite.nordgedanken.dev295
3conduit.rs536
4dendrite01.fiksel.info1157
5dendrite.s3cr3t.me1703.5
6matrix-testing.0x1a8510f2.space3640.5

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.39.0 released

29.07.2021 00:00 — Releases Dan Callahan

Synapse 1.39.0 is now available!

We've done quite a bit of work this release on Synapse's new interface for extension modules:

  • Synapse's account_validity option has been extracted into a built-in extension module. If your configuration previously enabled account_validity, it will continue working as before, but it is now easier to override and customize.
  • The third party event rules callbacks have also been experimentally ported to the new module interface.

We've also improved the Space Summary API to list all rooms which a user could join (#10298). This is especially important with the pending standardization of Room Version 8, which includes MSC3083: Restricting room membership based on membership in other rooms.

MadLittleMods landed several pull requests on the path to implementing MSC2716: Incrementally importing history into existing rooms (#10250, #10276).

More than anything else, this release contains an absolutely enormous load of internal cleanup. For example:

  • ShadowJonathan ran pyupgrade on the entire codebase, bringing it up to modern Py3.6+ conventions, then separately used com2ann to move us from legacy # type: foo type hints to more modern inline annotations.
  • We finished converting several integer columns in our database to bigint as a precautionary measure.
  • We've made innumerable improvements to our CI configuration; including moving completely to GitHub Actions.
  • Countless small improvements to performance, reliability, and error logging.

But that's not all! Synapse 1.39 also allows for setting credentials for HTTP proxy connections thanks to work by dklimpel; previously, Synapse was only able to provide authentication for HTTPS proxies.

Please see the Upgrade Notes and Release Notes for a complete list of changes in this rele ase.

Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including andir, dklimpel, ilmari, LukeWalsh, moritzdietz, ShadowJonathan, and xmunoz.

Element raises $30M to boost Matrix

27.07.2021 00:00 — General Matthew Hodgson

Hi folks,

Big news today: Element, the startup founded by the team who created Matrix, just raised $30M of Series B funding in order to further accelerate Matrix development and improve Element, the flagship Matrix app. The round is led by our friends at Protocol Labs and Metaplanet, the fund established by Jaan Tallinn (co-founder of Skype and Kazaa). Both Protocol Labs and Metaplanet are spectacularly on board our decentralised communication quest, and you couldn't really ask for a better source of funding to help take Matrix to the next level. Thank you for believing in Matrix and leading Element's latest funding!

You can read all about it from the Element perspective over at the Element Blog, but suffice it to say that this is enormous news for the Matrix ecosystem as a whole. In addition to transforming the Element app, on the Matrix side this means that there is now concrete funding secured to:

Obviously this is in addition to all the normal business-as-usual work going on in terms of:

  • getting Spaces out of beta
  • adding Threading to Element (yes, it's finally happening!)
  • speeding up room joins over federation
  • creating 'sync v3' to lazy-load all content and make the API super-snappy
  • lots of little long-overdue fun bits and pieces (yes, custom emoji, we're looking at you).

If you're wondering whether Protocol Labs' investment means that we'll be seeing more overlap between IPFS and Matrix, then yes - where it makes tech sense to do so, we're hoping to work more closely together; for instance collaborating with the libp2p team on our P2P work (we still need to experiment properly with gossipsub!), or perhaps giving MSC2706 some attention. However, there are no plans to use cryptocurrency incentives in Matrix or Element any time soon.

So, exciting times ahead! We'd like to inordinately thank everyone who has supported Matrix over the years - especially our Patreon supporters, whose donations pay for all the matrix.org infrastructure while inspiring others to open their cheque books; the existing investors at Element (especially Notion and Automattic, who have come in again on this round); all the large scale Matrix deployments out there which are effectively turning Matrix into an industry (hello gematik!) - and everyone who has ever run a Matrix server, contributed code, used the spec to make their own Matrix-powered creation, or simply chatted on Matrix.

Needless to say, Matrix wouldn't exist without you: the protocol and network would have fizzled out long ago were it not for all the people supporting it (the matrix.org server can now see over 35.5M addressable users on the network!) - and meanwhile the ever-increasing energy of the community and the core team combines to keep the protocol advancing forwards faster than ever.

We will do everything we possibly can to succeed in creating the long-awaited secure communication layer of the open Web, and we look forward to large amounts of Element's new funding being directed directly into core Matrix development :)

thanks for flying Matrix,

Matthew, Amandine & the whole Matrix core team.

Dendrite 0.4.1 Released

26.07.2021 00:00 — Releases Matthew Hodgson

It's only been two weeks since Dendrite 0.4 landed, but there's already a significant new release with Dendrite 0.4.1 (it's amazing how much work we can do on Dendrite when not off chasing low-bandwidth and P2P Matrix!)

This release further improves memory performance and radically improves state resolution performance (rumour has it that it's a 10x speed-up). Meanwhile, SS API sytest coverage is up to 91%(!!) and CS API is now at 63%.

We're going to try to keep the pressure up over the coming weeks - and once sytest is at 100% coverage (and we're not missing any big features which sytest doesn't cover yet) we'll be declaring a 1.0 :)

If you're running Dendrite, please upgrade. If not, perhaps this would be a good version to give it a try? You can get it, as always from, https://github.com/matrix-org/dendrite/releases/tag/v0.4.1. The changelog follows:

Features

  • Support for room version 7 has been added
  • Key notary support is now more complete, allowing Dendrite to be used as a notary server for looking up signing keys
  • State resolution v2 performance has been optimised further by caching the create event, power levels and join rules in memory instead of parsing them repeatedly
  • The media API now handles cases where the maximum file size is configured to be less than 0 for unlimited size
  • The initial_state in a /createRoom request is now respected when creating a room
  • Code paths for checking if servers are joined to rooms have been optimised significantly

Fixes

  • A bug resulting in cannot xref null state block with snapshot during the new state storage migration has been fixed
  • Invites are now retired correctly when rejecting an invite from a remote server which is no longer reachable
  • The DNS cache cache_lifetime option is now handled correctly (contributed by S7evinK)
  • Invalid events in a room join response are now dropped correctly, rather than failing the entire join
  • The prev_state of an event will no longer be populated incorrectly to the state of the current event
  • Receiving an invite to an unsupported room version will now correctly return the M_UNSUPPORTED_ROOM_VERSION error code instead of M_BAD_JSON (contributed by meenal06)

-- Team Dendrite

This Week in Matrix 2021-07-23

23.07.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

This week gematik announced they will use Matrix for their interoperable instant messaging standard.

Loads of coverage is available, take a look!

English

  • https://www.zdnet.com/article/germanys-healthcare-system-is-using-this-open-source-standard-for-encrypted-instant-messaging/
  • https://thestack.technology/matrix-germany-healthcare/
    • see also https://thestack.technology/element-messenger-matrix-protocol-one-to-watch/

Dutch

  • https://tweakers.net/nieuws/184736/duitse-gezondheidsinstellingen-gaan-onderling-communiceren-via-matrix-protocol.html

German

  • https://www.heise.de/news/Matrix-Messenger-fuers-deutsche-Gesundheitswesen-6144988.html
  • https://www.golem.de/news/videochat-deutsche-gesundheits-it-wechselt-auf-matrix-2107-158334.html
  • https://stadt-bremerhaven.de/gematik-ti-messenger-setzt-auf-das-matrix-protokoll-als-basis/

Dept of Spec 📜

Spec

anoa offered:

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

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week,

Spec Updates

Room Version 8 has been proposed as part of MSC3289! This intends to include the new "restricted" room version from MSC3083, which allows access to a room based on one's membership in another room, as is most useful for features related to Spaces.

2021-07-23-kziJ3-stacked_area_chart.png

sorunome has been working on MSC2545:

Sorus Image Packs MSC2545 is taking shape more and more! While barely anything happened on the actual MSC itself, nheko recently implemented a sticker picker based on it, and there is a PR for fluffychat for a sticker picker, too, finally making stickers interoperable between clients of different vendors!

Here's a video of fluffychats sticker picker in action: https://gitlab.com/famedly/fluffychat/uploads/26382317e2424d7566eb18e102ddd6cb/fluffy-sticker-picker.webm

Dept of Servers 🏢

Synapse

callahad told us:

🚨 Yesterday we published Synapse 1.38.1 which mitigates a client bug triggered by changes to /sync responses in 1.38.0. Specifically, new Element Android sessions were unable to decrypt messages in end-to-end encrypted conversations.

⚙️ Otherwise, we've been doing quite a lot of internal / infrastructure work. Notably, we've completed the move from three separate CI systems to just one: GitHub Actions. We're also, for the first time, publishing Debian packages for our Release Candidates. We hope these changes move us towards a more reliable and seamless release process.

We'll have a lot to talk about re: Synapse 1.39 next week, but until then, enjoy the weekend! 🏖

Homeserver Deployment 📥️

Kubernetes

Ananace announced:

And this week too has brought updates to my Helm Charts, with element-web being updated to 1.7.33 and matrix-synapse to 1.38.1

Dept of Bridges 🌉

matrix-puppeteer-line

Fair told us:

A bridge for LINE Messenger based on running LINE's Chrome extension in Puppeteer.


This week brings plenty of usability improvements:

  • There is now the list-contacts bot command to--you guessed it!--list the Matrix puppets of all of your contacts.

  • It's now possible to sync a chat with a LINE user by inviting their Matrix puppet to a DM, instead of having to wait for someone to send you a message in LINE for the bridge to auto-sync it. This is especially useful with list-contacts.

  • LINE group chats that haven't been used recently are now included in the set of chats that get bridged on a sync operation.

  • The number of chats to sync at startup time & on-demand is now configurable, as a bridge config setting & a parameter to the sync command, respectively.

These changes make it possible to sync LINE chats/groups that previously may not have gotten synced, due to the intricacies of how LINE on Chrome handles chat history (especially on first use of the bridge).


Discussion: #matrix-puppeteer-line:miscworks.net

Issue page: https://src.miscworks.net/fair/matrix-puppeteer-line/issues

Dept of Clients 📱

Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

LorenDB has rewritten the invite dialog as well as the memberlist in Qml. This means they work now much more reliably and show the users in appropriate colors and a few other small improvements.

Apart from that, Nheko now has support for sending stickers! This is based on Sorunome's awesome MSC2545, so no integration manager is needed and it is trivially easy to share your sticker packs (just invite someone into the same room!). You can use stickers from your account data or upload stickers into a room so every room member can use it. If you found a sticker pack you like, you can enable a pack from a room globally by going into Nheko's room settings. You can check my current preferred set of stickers here: matrix:r/nico's-stickers:neko.dev

Currently you can't edit a sticker pack yet from Nheko. Support for that will come in the near future. Until then you can use either FluffyChat, Element's DevTools or my hack to import Telegram sticker packs into a room. Note that Nheko's sticker pack support is incompatible with integration server based sticker packs like the one Element uses. On the other hand, you don't need an integration manager to use them! Custom emote support based in the image packs MSC is coming in the future to Nheko too.

Furthermore we fixed some bugs to move E2EE in Nheko out of Beta. We are close now and we have a plan!

That's all, don't get your hands too sticky!

2021-07-23-gg3Eo-clipboard.png

2021-07-23-xHW8i-clipboard.png

Fractal

Alexandre Franke announced:

It’s been three weeks already since our last update and we have a fair amount of new things to report.

As I write this, our interns Alejandro and Kai are at GUADEC, the annual GNOME conference, presenting during the interns lightning talk. The former has submitted a couple of merge requests (!793 and !794) that were necessary for the UI to accommodate his upcoming multi-account work. The latter has provided a view for when no room is selected. As for their mentor, Julian, he changed member loading so it only happens once a room is opened, to improve performances. He also changed Matrix event handling to use SyncRoomEvent, which paves the way for display of various message types in the timeline of a room.

Giuseppe offered two nice additions to the login view:

And to conclude this summary, we welcome 🎉 newcomer Veli Tasalı who fixed a papercut I reported: when typing long messages, buttons next to the message entry were expanding along with the entry and now they keep nicely aligned.

Element Clients

Delight team

  • We’ve been shepherding MSC3083 into FCP to improve private spaces
  • We’ve also been working on restricted room support in Synapse and Element Web & Android
  • We’ve been improving onboarding experiences for Spaces, improving 3pid invites on Android, improving email invites and making matrix.to aware of spaces
  • On iOS, we’ve finished the first implementation of Space navigation which we can share soon!
  • We’re also figuring out what’s missing to mature Spaces enough to exit beta

VoIP

  • Call event tiles for 1:1 calls merged, for better summaries of call history.
  • 1:1 screen sharing ready to merge!
  • Looking at bug where jitsi calls stay always-on-screen even when hung up.

Web

  • Released v1.7.33
  • Message bubbles PR merged!
  • Updated desktop to electron 13, complete with new n-api build of seshat (thanks, Poljar!)
  • More work on changelog tooling

iOS

  • We cancelled the release of 1.4.6 because of the discovery of high profile bugs or crashes . We will release 1.4.7 on the App Store on Monday. Those releases contain mainly bug fixes and papercuts
  • Voice messages are almost there. They are on develop under a LABS settings. They should be part of the next release candidate next Wednesday.
  • There are several papercuts in progress: URL preview, decryption of notifications content by default, removal of local contacts from the DM room list tab, removal of the room directory from the group room list, etc to list the major ones.

Android

  • Release 1.1.14 which fixes an important issue regarding message decryption is live on the PlayStore, on the beta channel, and will be in production quite soon. A patch has been applied to matrix.org to fix the problem.
  • Beside that, we are still polishing the spaces and voice messages

Šimon Brandner shared some images of the new VoIP UX:

2021-07-23-m-Auj-125999362-eff54798-f9f7-421a-8e2b-6ed87a4f582c.png

2021-07-23-XEixh-120305328-e7a0e700-c2d0-11eb-9bc0-a93f4366b848.png

Naturally the screen sharing feature will allow you to share your own screen, rather than Šimon's!

Beeper update

Tulir said:

Desktop

  • New keyboard shortcuts:

    • Navigating room list with arrow keys when there's no room open (and esc to close the current room)
    • Global shortcut to open Beeper
  • Rooms are opened where you left off (like Telegram, WhatsApp, etc) instead of at the bottom

  • Updated unread room indicators: a colored circle around the room avatar (screenshot here)

Bridges

LinkedIn

We've integrated the LinkedIn bridge into Beeper. The bridge is in beta and is generally ready for use. Since the last update, we moved it to GitLab, added a Docker image, and implemented reaction and redaction handling in both directions! We also fixed a bunch of bugs across the board to improve reliability.

Android SMS

The Android SMS bridge mentioned in the last update is progressing. It should be ready for self-hosted use in a few weeks, so our next update will probably include that.

Related to the SMS bridge, I've made mautrix-syncproxy, which is a microservice to do the /syncing required for end-to-bridge encryption (to-device events and such) in the cloud and forwarding the data to the normal appservice transaction endpoint. When combined with mautrix-wsproxy, it allows the SMS bridge to only have a websocket connection, which uses significantly less battery than a HTTP request every 30 seconds. The sync proxy partially implements MSC3202 and the to-device part of MSC2409 (partially because it only does individual users rather than all appservice-owned users).

We're hiring React, iOS, Android and SRE/Devops engineers. If you're interested, check out https://jobs.ashbyhq.com/beeper or DM Eric Migicovsky.

2021-07-23-Nbx_w-image.png

Dept of SDKs and Frameworks 🧰

Ruby

Ananace told us:

Just tagged and pushed version 2.4.0 of the Ruby SDK, along with an updated image for the example bot. This version adds support for the Matrix URIs as well as some basic spaces functionality, it also fixes some errors due to the removed empty /sync fields in Synapse 1.38.0

Feel free to drop by #ruby-matrix-sdk:kittenface.studio for any questions or comments.

Dept of Bots 🤖

Hebbot (This Week in X bot)

Felix told us:

Several GNOME contributors and I have been following TWIM and really enjoyed the concept. Since open source is about stealing sharing ideas, we wanted to deploy something similar for GNOME.

I gave this room's beloved twim-o-matic a try and fiddled a bit with the code. But I soon found that it is too specialised for matrix.org. That's when I decided to write a project agnostic TWIx bot based on matrix-rust-sdk called Hebbot!

Here is how it looks in practice with a companion website for GNOME. If you’re interested in how it looks behind the scenes, have a look at this blog post which explains how it works.

I released a first version on July 17, but I’m already working on making it smarter for a next release. In the meantime you can already use it for your project!

Love it, though I wish twim-o-matic had more of my attention! Maybe we can retire it and use Hebbot..?

Dept of Interesting Projects 🛰️

Matrix Plugin for OctoPrint

Cadair offered:

This week I have developed a new plugin for OctoPrint which is a tool for controlling and monitoring 3D printers, which sends notifications about your prints and status of your 3D printer to matrix. The existing OctoSlack plugin also has Matrix support but fell foul of the /sync response changes in Synapse 1.38, and also sent the images from the camera to Matrix as inline images rather than m.image events, so they didn't render on some clients.

My new plugin can send messages on most events supported by OctoPrint, but the core events which are configurable through the OctoPrint web UI are print started, paused, completed and failed as well as print progress notifications. If you want Matrix notifications for your 3D prints, you can install the plugin through the official OctoPrint plugin repository or by installing from the GitHub repository. If you have any feature requests or pull requests, contributions to the plugin are very welcome.

Here is a preview of a print progress notification from something I was printing last night:

2021-07-23-opi2f-IMG_20210723_124408.jpg

2021-07-23-fZf-n-matrix_logo_print_status.png

Matrix in the News 📰

Matrix & IRC | Size & Stability

Gwmngilfen said:

Following on from my post about how I'd like to convince Ansible to move to Matrix, I looked into the relative sizes of the networks, took a look at the active users in our channels, and even took a shot quantifying bridge restarts and netsplits to assess relative stability. Check it out here

New Public Rooms 🏟️

Beyond Chat

Ryan reported:

A new Beyond Chat room (#beyond-chat:matrix.org) has been created! This room is meant for discussing various projects that build on Matrix for use cases beyond chat, such as collaborative documents, blogs, generic key-value databases, tools for thought, etc. Please join if these topics interest you. 😄

The Beyond Chat chat room is where Ryan chats about uses of Matrix beyond chat

Dept of Welcomes 👐

VoIP

Robert Long announced:

Hey everyone, my name's Robert Long. I've just joined Element last week and I'm coming in to work on the VoIP team. This week I started working on full mesh video conferencing and I'm super excited to share more as the work progresses!

Welcome Robert! Can't wait to see progress here. We'll even bring back the Dept of VoIP :D

Final Thoughts 💭

Room of the week

timokoesters offered:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #godot:feneas.org

"A very helpful and friendly place for general discussion or questions pertaining to the FOSS Godot game engine and using it to make games, whether one is just beginning to learn or wish to discuss more advanced aspects of game (or Godot) development."


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

Royal Navy using Matrix!

Amazing to see @Navy_Innovation showing off low-bandwidth @matrixdotorg decentralised comms to 1SL (Head of the @RoyalNavy) using Titanium: our CivTAK Matrix plugin. At this rate Matrix is on track to become the common language across the entire public sector!⚓️📻🇬🇧 https://t.co/UDIA2GBVm9

— Element (@element_hq) July 23, 2021

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.

RankHostnameMedian MS
1envs.net358
2maunium.net432
3sorunome.de461.5
4kapsi.fi547
5boba.best566.5
6trolla.us767.5
7heitkoetter.net952.5
8aria-net.org1035
9konqi.work1186
10roeckx.be1696

#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.

RankHostnameMedian MS
1conduit.supercable.onl173
2dendrite.nordgedanken.dev184
3matrix.org322
4dendrite.neilalexander.dev398.5
5conduit.rs1451.5

That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Germany’s national healthcare system adopts Matrix!

21.07.2021 15:30 — General Matthew Hodgson

Hi folks,

We’re incredibly excited to officially announce that the national agency for the digitalisation of the healthcare system in Germany (gematik) has selected Matrix as the open standard on which to base all its interoperable instant messaging standard - the TI-Messenger.

gematik has released a concept paper that explains the initiative in full.

TL;DR

With the TI-Messenger, gematik is creating a nationwide decentralised private communication network - based on Matrix - to support potentially more than 150,000 healthcare organisations within Germany’s national healthcare system. It will provide end-to-end encrypted VoIP/Video and messaging for the whole healthcare system, as well as the ability to share healthcare based data, images and files.

Initially every healthcare provider (HCP) with an HBA (HPC ID card) will be able to choose their own TI-Messenger provider. The homesever for HCP accounts will be hosted by the provider’s datacentre. The homeserver for institutions can be hosted by TI-Messenger providers, or on-premise.

Each organisation and individual will therefore retain complete ownership and control of their communication data - while being able to share it securely within the healthcare system with end-to-end encryption by default. All servers in the Matrix-based private federation will be hosted within Germany.

Needless to say, security is key when underpinning the entire nation’s healthcare infrastructure and safeguarding sensitive patient data. As such, the entire implementation will be accredited by BSI (Federal Office for Information Security) and BfDI (Federal Commissioner for Data Protection and Freedom of Information).

The full context...

Germany’s digital care modernisation law (“Digitale Versorgung und Pflege Modernisierungs Gesetz” or DVPMG), which came into force in June 2021, spells out the need for an instant messaging solution.

The urgency has increased by a significant rise in the use of instant messaging and video conferencing within the healthcare system - for instance, the amount of medical practices using messenger services doubled in 2020 compared to 2018 (much of this using insecure messaging solutions).

gematik, majority-owned by Germany’s Federal Ministry of Health, is responsible for the standardised digital transformation of Germany’s healthcare sector. It focuses on improving efficiency and introducing new ways of working by setting, testing and certifying healthcare technology including electronic health cards, electronic patient records and e-prescriptions.

TI-Messenger is gematik’s technical specification for an interoperable secure instant messaging standard. The healthcare industry will be able to build a wide range of apps based on TI-Messenger specifications knowing that, being built on Matrix, all those apps will interoperate.

More than 150,000 organisations - ranging from local doctors to clinics, hospitals, and insurance companies - can potentially standardise on instant messaging thanks to gematik’s TI-Messenger initiative.

The road to interoperability

By 1 October 2021, TI-Messenger will initially specify how communication should work in practice between healthcare professionals (HCPs). Physicians will be able to find and communicate with each other via TI-Messenger approved apps - specifications include secure authentication mechanisms with electronic health professional cards (eHBAs), electronic institution cards (SMC-B) and a central FHIR directory. The first compliant apps for HCPs are expected to be licensed by Q2 2022.

Eric Grey (product manager for TI-Messenger at gematik), reckons there will initially be around 10-15 TI-Messenger compliant Matrix-based apps for HCP communications available from different vendors.

Healthcare professionals will be able to choose a TI-Messenger provider, who will be hosting their personal accounts and provide the messenger-client.

Healthcare organisations will choose a TI-Messenger provider to build the dedicated homeserver infrastructure (on prem or in a data center), provide the client and ongoing support.

What does this mean for the Matrix community?

Matrix is already integral to huge parts of the public sector; from the French government’s Tchap platform, to Bundeswehr’s use of BwMessenger and adoption by universities and schools across Europe.

Germany’s healthcare system standardising on Matrix takes this to entirely the next level - and we can’t wait to see the rest of Europe (and the world!) converge on Matrix for healthcare!

We'll have more info about TI-Messenger on this week's Matrix Live, out on Friday - stay tuned!