This Week in Matrix 2022-08-12

2022-08-12 — This Week in Matrix — Andrew Morgan (anoa)

Matrix Live 🎙

Dept of Spec 📜

Matrix Spec

Andrew Morgan (anoa) announces

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/proposals/.

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs entered FCP this week.

Accepted MSCs:

  • No MSCs were accepted this week.

Merged MSCs:

Spec Updates

The Spec Core Team had another retro this week, and part of what we talked about was how most of the spec PR writing falls to just a few people. Starting this week, we're going to try and diversify that work across the Spec Core Team, both for reducing bus factor and increasing bandwidth of spec PRs. Hopefully the results of that will be noticeable!

Random MSC of the Week

The random MSC of the week is... MSC3783: Fixed base64 for SAS verification!

For those that don't know, "SAS verification" refers to the act of two devices verifying each other through the use of Short Authentication Strings (SAS). This is the backbone of emoji verification when you verify with another user or one of your own devices.

It turns out that libolm, the olm and megolm encryption library, originally incorrectly encoded the base64 output of the message authentication code (MAC) calculation, which is a values that's passed between devices. Due to trying to maintain backwards-compatibility with older clients, this has not been fixed in newer clients yet.

This MSC proposes bumping the MAC algorithm identifier (which is agreed upon between devices when verifying) to a something new, which allows newer clients to know when to use the new or old (and incorrect) method of calculating the base64 encoding of MAC values.

As far as I can tell, this has no security implications. It's just unfortunate to have incorrect base64 encoding when interfacing with other, non-libolm, implementations of olm and megolm.

Dept of Servers 🏢

Synapse (website)

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

Shay reports

The Synapse team is hard at work making Synapse faster and leaner. Work continues apace on faster room joins over federation, and it seems that the work might land sooner rather than later, although there are no solid dates yet. In other news, profiling work is being done to determine ways to hopefully increase the speed of local room joins and DM creation. Stay tuned for more information in the future on that. Finally, it was an RC release week. Synapse 1.65.0rc2 was released, and it contains some fun features and bugfixes. Check it out!

Dendrite / gomatrixserverlib (website)

Dendrite is a second-generation Matrix homeserver

neilalexander says

This week we released Dendrite 0.9.2 which contains the following updates:

  • Dendrite now supports history visibility on the /sync, /messages and /context endpoints
    • It should now be possible to view the history of a room in more cases (as opposed to limiting scrollback to the join event or defaulting to the restrictive "join" visibility rule as before)
  • The default room version for newly created rooms is now room version 9
  • New admin endpoint /_dendrite/admin/resetPassword/{userID} has been added, which replaces the -reset-password flag in create-account
  • The create-account binary now uses shared secret registration over HTTP to create new accounts, which fixes a number of problems with account data and push rules not being configured correctly for new accounts
  • The internal HTTP APIs for polylith deployments have been refactored for correctness and consistency
  • The federation API will now automatically clean up some EDUs that have failed to send within a certain period of time
  • The /hierarchy endpoint will now return potentially joinable rooms (contributed by texuf)
  • The user directory will now show or hide users correctly
  • Send-to-device messages should no longer be incorrectly duplicated in /sync
  • The federation sender will no longer create unnecessary destination queues as a result of a logic error
  • A bug where database migrations may not execute properly when upgrading from older versions has been fixed
  • A crash when failing to update user account data has been fixed
  • A race condition when generating notification counts has been fixed
  • A race condition when setting up NATS has been fixed (contributed by brianathere)
  • Stale cache data for membership lazy-loading is now correctly invalidated when doing a complete sync
  • Data races within user-interactive authentication have been fixed (contributed by tak-hntlabs)

This brings our current test compliance figures to:

  • Client-server APIs: 90%
  • Server-server APIs: 95%

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

Dept of Bridges 🌉

matrix-appservice-discord (website)

ChristianP reports

Announcing matrix-appservice-discord 3.0.0!

What? Another week, another major release? Yes, we want to make breaking changes obvious, and the bridge now requires Node.js 16+.

The release fixes the outdated yarn.lock file. Thanks to the package maintainers of NixOS to point this out! 👋 Furthermore, mentioning Matrix users in Discord got fixed.

And, for the fans of containers, we've re-added the release of Docker images. 🐳 The URL changed and we don't plan to update halfshot/matrix-appservice-discord on Docker Hub. The image can be pulled from ghcr.io/matrix-org/matrix-appservice-discord:v3.0.0.

https://github.com/matrix-org/matrix-appservice-discord/releases/tag/v3.0.0

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico reports

Nheko now shows you a pretty preview for rooms you are trying to join. This uses MSC3266, which you might need to enable in your synapse config, if you want to see more than the roomid of the room you are trying to join. It tries to fall back to the /hierarchy endpoint, but that won't work over federation.

Similarly you can now somewhat edit what rooms are in a space. I grew up with Windows 98, so this is a very nested right click menu. We are still discussing some of the wording choices for the options there, so if you have any opinions about it, feel free to give feedback about it! This is part of the bigger goal to be able to manage your communities from within Nheko, so stay tuned for more features coming in that area.

red_sky (nheko.im) also improved our notifications code on macOS. You can now disable the notification sound in the system settings, which for some reason requires badge permissions to show that option... macOS will always remain a mystery to us! Similarly we fixed the source text for notifications on Windows, which should now not show a stray %1 anymore as well as a few other cleanups.

Element Web/Desktop (website)

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

kittykat says

  • Ever started a DM with someone, only to get distracted and leave them staring into an empty timeline wondering who you are and what you want. Well, it is no more! In this update new DMs will only notify the person you’re messaging once you’ve sent your first message.
  • That’s not the only exciting update in EleWeb/Desktop this week, including the newly extended voice messages! Instead of voice messages capped at 2 minutes, users are now able to send a voice note of up to 15 minutes long. Go forth and record 🎤
  • In upcoming releases we’re also looking at how to improve a user’s first few days in Element. We know that it can be daunting to stare at an empty screen and wonder how to get going, which is why we’ve designed and built a checklist for new users. This checklist will help them to get off the ground and messaging friends in no time.

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

  • Threads improvements are still very much underway. We have a proof of concept (PoC) for improving notifications that we’re testing to ensure scalability and performance.

Element iOS (website)

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

Doug says

  • Our release this week was rejected by Apple. Their feedback? Our info.plist comments do not provide enough context as to why we’re asking for access to things like the camera, photos, or contacts. Never fear! We’ve updated our copy and we’re confident that it’s clearer than ever.
  • Also in the upcoming release:
    • Fixing the crashes that some users were running into when switching space.
    • The new in-app notifications now also appear in the notification centre
    • And a bug fix for the rare issue of sending duplicate images to a timeline when sending multiple photos
  • We’re also working on changing the layout of our mobile apps, and work is well underway on iOS. We’re excited to share these big changes with you so keep your eyes peeled on our socials and in other TWIM notes.
  • Join us over at #element-community-testing:matrix.org on Tuesday 16th August at 12:00 BST to try out the new app layout on iOS! There’s a little bit of setup required so check out the room ahead of time for instructions :)

Element Android (website)

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

Danielle says

  • In the upcoming Android release we’ve fixed some crashes; including where the app would crash if a user attempted putting non-ASCII characters in their MXID during account creation.
  • Biometric login is now disabled if the device you’re on does not support biometrics.
  • We’ve also been working hard on adding unit tests to increase coverage.
  • There’s work being done on the modularisation of languages that may help decrease the complexity of translation and move us towards a set of common strings between platforms.
  • Join us over at #element-community-testing:matrix.org on Tuesday 16th August at 15:00 BST to try out the new app layout on Android! There’s a little bit of setup needed so check out the room ahead of time for instructions 🙂

Cinny (website)

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

ajbura says

v2.1: Custom emojis and stickers (Birthday edition)

Hello everyone,

On July 28 project marked its one-year milestone. During this time it has grown at an unexpected rate, both in terms of development as well as popularity. This is great news, so let's celebrate that with this birthday edition.

In this update, we have added Custom emoji and sticker support to Cinny. Custom emoji and stickers were not in our roadmap but that's the surprise. Aren't they cool? Apart from the emoji and stickers, there are tons of other features such as Blurhash, Mark entire space as read, user pills, and bug fixes. Check out the release page for a detailed changelog.

In the case of the roadmap, we are still on that, work on the "Rich input editor" is in progress and will come as the next release. Stay tuned for that!

The update is live on https://app.cinny.in and the desktop app can be downloaded from Github.

Pro-Tip: Join #cinny-space:matrix.org to check out some cool sticker packs. There are some great packs in #stickers-and-emojis:pixie.town too.

Thank you. See you all next time!

Dept of SDKs and Frameworks 🧰

libkazv (website)

tusooa reports

We released a bugfix v0.2.1 . Thanks to nannanko who discovered and fixed this bug. There are also docker images.

0.2.1

ruby-matrix-sdk (website)

Ruby SDK for the Matrix communication protocol

Ananace says

A new version of the Ruby Matrix SDK has now been released, adding a new abstraction in the form of a Sinatra-inspired bot DSL, as well as general fixes and improvements. Making a Ruby-based Matrix bot can now be as simple as;

#!/usr/bin/env ruby

require 'matrix_sdk/bot'

command(:praise, desc: 'Gives you praise', only: -> { room.user_can_send? client.mxid, 'm.reaction' }) do
  room.send_notice "#{sender}, you tha' man!"
  room.send_event 'm.reaction', {
    'm.relates_to': {
      rel_type: 'm.annotation',
      event_id: event[:event_id],
      key: '👍️'
    }
  }
end

Dept of Ops 🛠

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker.

Slavi reports

Thanks to Charles Wright, matrix-docker-ansible-deploy now has optional experimental Conduit homeserver support for new installations. This comes as a follow-up to the playbook getting Dendrite support earlier this year.

For more details, see our Conduit support changelog entry.

Dept of Events and Talks 🗣️

One week until FrOSCon (website)

ChristianP announces

Next weekend, Sat 20th and Sun 21st, FrOSCon will be taking place. It's a conference about open source software near Bonn, Germany.

There will be some program around Matrix, though I'm still looking for volunteers to help me with a stand and DevRoom.

For the stand we want a small group to explain Matrix to others. For the DevRoom we want some talks and workshops. Anyone's welcome to ask me for more info or to get involved.

Dept of Interesting Projects 🛰️

matrix-locust (website)

cvwright says

Announcing matrix-locust, a new tool for load testing Matrix homeservers, based on the Python load testing framework Locust. It's very early days for this project, but we're already discovering some interesting results. There isn't an official tagged "release" yet, but anyone interested in this topic is encouraged to stop by #load-testing:matrix.org and say hello.

Room of the Week 📆

ssorbom ⚡️ says

Have you ever felt lost in the Matrix world? Too many rooms and spaces to manage? Well, back by popular demand (with Timo's blessing), I present, The Room of the Week! Every week we strive to highlight a room or a space that we believe deserves attention for discussing interesting going on across the Matrix Network.

This week, we are highlighting: #coffee-discuss:matrix.org

A place to discuss buying, brewing, and drinking everyone's favorite morning beverage of choice! I had no idea there was so much Nuance to this topic until I joined this room . For example, did you know there was a correct way to distribute coffee grounds when you first pour to ensure maximum flavor? Neither did I! Whether you are new to the world of coffee drinking, or a seasoned connoisseur of morning Joe, this room has something for everyone who loves coffee.

If you have a room you wish to see highlighted, join us at: https://matrix.to/#/!bIyiUUnriVoHtYzuPS:fachschaften.org?via=chat.shawnsorbom.net&via=matrix.org&via=fachschaften.org to get your favorite room of the week highlighted.

That's all I know 🏁

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