This Week in Matrix 2022-05-13

2022-05-13 — This Week in Matrix — Thib

Matrix Live 🎙

Dept of Spec 📜

Andrew Morgan (anoa) says

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 with Proposed Final Comment Period:

  • No MSCs had final comment period proposed this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were closed this week.

Closed MSCs:

Spec Updates

The Spec Core Team has decided to not include MSC3440 (threading via m.thread relations) specifically in the upcoming Matrix v1.3 release. We previously stated that it would be in v1.3, but there's a few unproven MSCs (namely MSC3773 (notifications for threads)) which make it feel improper to put threads into the spec at this stage. We're aiming for a future (very near) spec release to contain threads, assuming we can get enough of the feature landed. This is a very similar approach to what we did with Spaces: while the core feature existed as FCP-concluded for a while, we wanted to give some other MSCs a chance to land before writing it up formally.

As a follow-on from this, any implementations that are currently assuming "v1.3" spec support translates to threading support should note the following:

  • Clients which are pre-emptively checking for v1.3 in /versions should stop doing that. Look for org.matrix.msc3440.stable as an "unstable" feature flag instead.
  • Servers which offer MSC3440's behaviour should expose it on stable endpoints and expose org.matrix.msc3440.stable for clients to detect.
  • Optionally, clients and servers can drop support for the org.matrix.msc3440 (truly unstable) flag, given clients & servers should have already upgraded.

At the spec level, we'll still be writing up MSC3440's dependencies (aggregations and friends), but will notably be missing MSC3440 specifically in v1.3. If folks can update their clients urgently, it would be massively appreciated!

Random MSC of the Week

The random MSC of the week is... MSC2596: Proposal to always allow rescinding invites!

A simple change to the auth rules to help prevent an edge case where one is able to invite a user, but not disinvite them as the latter requires a separate permission. The MSC attempts to solve this by always allowing the cancellation of invitations you've sent.

A small MSC, but one with some open threads still. Perhaps a good opportunity to go in and clean it up!

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

squah says

Hello everyone. This week the team cut a release candidate for Synapse v1.59, which includes:

Meanwhile, the core team has looking at caches and memory usage: Erik has been looking at ways to reduce the memory usage of small servers, Shay's been adding some exciting new config options to limit the total memory usage of Synapse and David's added the ability to reload the cache factors of a running Synapse instance via SIGHUP.

In parallel, Olivier's been doing groundwork to reduce replication traffic for workerised Synapse deployments, Andrew (anoa) has been looking at media retention policies and work continues on faster room joins.

Dendrite (website)

Second generation Matrix homeserver

neilalexander reports

This week we've actually made two releases — Dendrite 0.8.4 and Dendrite 0.8.5 — which are both primarily targeting performance and bug fixes.

We've also released our new living documentation, which is available at https://matrix-org.github.io/dendrite/, which features new installation instructions and documents that will be helpful to Dendrite server administrators. We will be writing more documentation and expanding this over time.

Changes include:

  • The built-in NATS Server has been updated to version 2.8.2
  • Monolith deployments will no longer panic at startup if given a config file that does not include the internal_api and external_api options
  • State resolution v2 now correctly identifies other events related to power events, which should fix some event auth issues
  • The latest events updater will no longer implicitly trust the new forward extremities when calculating the current room state, which may help to avoid some state resets
  • The one-time key count is now correctly returned in /sync even if the request otherwise timed out, which should reduce the chance that unnecessary one-time keys will be uploaded by clients
  • The create-account tool should now work properly when the database is configured using the global connection pool
  • Fixes a regression introduced in the previous version where appservices, push and phone-home statistics would not work over plain HTTP
  • Adds missing indexes to the sync API output events table, which should significantly improve /sync performance and reduce database CPU usage
  • Building Dendrite with the bimg thumbnailer should now work again (contributed by database64128)

As always, feel free to join us in #dendrite:matrix.org for more Dendrite-related discussion.

Dept of Bridges 🌉

matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair reports

Most of this week's fixes are in the testing branch, so try it out!

  • Ability to DM your own KakaoTalk puppet
  • Fix to the problem of needing to DM a puppet twice to start chatting with them
  • Fixes to leaving KakaoTalk chats from Matrix (via the !kt leave bot command)
  • Nicer output of the whoami command, to make it easier to click on your own KakaoTalk puppet to DM it

Coming soon:

  • Proper support for setting an Open Chat title & topic from Matrix
  • Support for joining KakaoTalk rooms from Matrix, either by joining an existing portal or providing an Open Chat URL to the bot with a join command

Dept of Clients 📱

Ement.el (website)

Matrix client for Emacs

alphapapa announces

Ement.el, a Matrix client for [GNU Emacs](https://www.gnu.org/software/emacs], received some more updates this week:

Additions

  • New Transient-based command menu for room buffers, bound to ?.
  • New command ement-list-members, which lists all members in a room.
  • Member completion now completes from all members in a room (rather than only those whose messages have been seen).
  • Power-level events are displayed.
  • Grouped membership events have tooltips showing each member's individual event.
  • When usernames are colorized, message bodies may optionally be colorized in a less intense shade of the same color, so they are easily distinguished yet easy on the eyes (and, of course, the shading is customizeable).

Changes

  • When displaying usernames in the margin, names that are wider than the margin are abbreviated, with the full name in the tooltip.

Fixes

  • Typing notifications (recently broken--oops!).
  • Sending direct messages marks new direct rooms as direct rooms.
  • Event notifications for rooms not displayed in a buffer.

As always, feel free to join us in #ement.el:matrix.org.

Element (website)

Everything related to Element but not strictly bound to a client

Danielle announces

Hello and welcome to another Element TWIM!

Threads

  • We’re still hard at work improving the Threads Beta experience for y’all. Starting with Notifications and UI polish.

Community testing

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle reports

In labs (you can enable labs features in settings on develop.element.io or on Nightly):

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan says

  • The newest version of the app (1.8.14) was released on Monday! In this release we’ve made a bunch of improvements and bug fixes, check it out here
  • 💊 We also merged an initial version of mention pills and are working on ironing out edge cases. Exciting!
  • There’s good progress on the new authentication flows and live location sharing, both of which we’re looking forward to sharing and testing with you soon.
  • On the ElementX front we're nearly done with the DevX setup and are working towards using the latest Rust SDK
    • unit and UI test runs on the CI and Codecov.io coverage reports
    • swiftlint, danger-swift and sonarcloud.io checks for code quality
    • automatic generation of PR builds, published on diawi
    • scripts for importing and reusing localizable strings from Android
    • towncrier changelogs and more

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

Danielle reports

  • We’ve been working on smashing bugs, improving stability, and reducing crashes.
  • Our first time user flow is progressing - we’re starting to test the new authentication flow internally and will be asking for help testing this soon.

Cinny (website)

Cinny is a Matrix client focused on simplicity, elegance and security

ajbura says

Cinny v2.0.0: Session verification and other e2ee features

Features

  • Redesign app/user settings
  • Add support to manage cross-signing and key backup
  • Add support to manage sessions
  • Add Session verification by emojis
  • Add recently used section to emoji board
  • Add LaTeX / math input and rendering support
  • Add notification sounds
  • Add sound on incoming invites
  • Sort DM's by activity
  • Sort search results by activity
  • Improve jump to unread button
  • Replace confirm and prompt with custom dialogs
  • Adapt to different device widths
  • Native application using Tauri

Bugs

  • Fix loading on older browsers
  • Fix crash on load and room creation on dendrite
  • Fix can't open spaces from public room list
  • Fix max power level in room permissions
  • Fix incorrect custom html crashing app
  • Fix crash on unable to getContent of tombstoned room
  • Don't enable e2ee for bridged platform

See release at: https://github.com/ajbura/cinny/releases/tag/v2.0.0

Cinny for desktop

Since this release, we are also shipping a desktop app of Cinny for Windows, MacOS and Linux. You can download the app for your platform from https://github.com/cinnyapp/cinny-desktop/releases

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

Dept of SDKs and Frameworks 🧰

matrix-rust-sdk (website)

Matrix Client-Server SDK for Rust

ben reports

The Rust Matrix team is very excited to announce the next major release Matrix SDK 0.5 "stores and native crypto", now available for everyone by adding matrix-sdk = "0.5.0" to their dependencies in their Cargo.toml. This first major release in about 8 months brings significant changes many have been waiting for:

  • Better, safer, native-er crypto: matrix-sdk 0.5 ditches libolm in favor of Vodozemac, the completely fresh rust-native re-implementation of the crypto crate. It has also been audited, the report of which is scheduled to be released soon.
  • Store revamp: the entire cache storage infrastructure for crypto and state has been restructured to allow for full plug-ability, with even the two default supported backends, sled and indexeddb both being separate crates now. And as a matter of fact, a community-driven sql implementation has already been published as beta (with postgres and sqlite support) by charlotte 🦝.
  • WebAssembly; both of these changes also allow us to finally make WASM a Tier 1 supported target for the SDK. Not only does it build and even use the browser native indexeddb for permanent storage, we also have CI tests ensuring nothing will break this support going forward.
  • Features, Features and Process: there's plenty more features and bug fixes in this release, e.g. native thumbnail generation support, as well as changes on our processes going forward.

For more details, check out the Release Notes.

Sidenote: If you want to contribute, or just learn Rust by actually doing it, we recommend taking a look team at the help wanted issues in our repo.

Dept of Ops 🛠

Buscarron (website)

Web forms (HTTP POST) to matrix

Aine announces

Buscarron v1.1.0 is here

Buscarron is the new backoffice of the etke.cc and its main feature is to receive web forms (HTML/HTTP POST) and convert them into (encrypted) matrix messages.

So, what's new?

  • Email confirmation after form submissions with Postmark
  • Templates support for redirect URLs
  • Automatically ban spammers, scanners and bots

Check out the source code and say hi in #buscarron:etke.cc

Dept of Bots 🤖

Who's In This Room Matrix Bot

Jake C says

If you use Matrix with the Signal bridge (or any bridge) with relay mode enabled, your guests have probably experienced the confusion where they don't know who else (on Matrix) is in the chat as only Matrix can double-puppet.

When this bot is added to a Matrix room, it will announce:

  • Who the room members are when a new Signal user joins;
  • When a Matrix user joins or leaves, who that Matrix user was.

I built it just this afternoon using the excellent matrix-bot-sdk, but it's in Typescript and has plentyful unit tests!

I don't currently have a public bot, but if anyone is interested please join #whos-in-this-room-bot-discussion:jakecopp.chat and say hello!

PRs for adding support for other chat apps (basically identifying which bridge from the puppeted username) are very welcome! https://github.com/jakecoppinger/whos-in-this-room-matrix-bot

Dept of Events and Talks 🗣️

J. Ryan Stinnett says

The videos from the HYTRADBOI conference a few weeks back are now publicly available, in case anyone was curious but couldn't make the conference. I gave a talk about building collaborative, open software on Matrix. The whole conference was great, so I recommend browsing the schedule for videos that may interest you. 😄

Dept of Interesting Projects 🛰️

uhoreg reports

Loomio, an open source collaborative decision making tool, now supports integrating with Matrix rooms using their chatbot. They previously supported other (lesser) chat systems, but have recently added support for Matrix.

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.net451
2loang.net576
3jameskitt616.one842.5
4aria-net.org857
5jeroenhd.nl892
6mindlesstux.com983
7shortestpath.dev1014
8quyo.de1345
9matrix.nicfab.it1571
10halogen.city1599

#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
1jameskitt616.one171
2loang.net307
3foxo.me540
4cry.is763
5kszczot.pl777.5
6dendrite.matrix.org844.5
7beckmeyer.us851.5
8dendrite.neilalexander.dev1225.5
9schuwi.science1620
10sspaeth.de1978

That's all I know 🏁

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