This Week in Matrix 2021-08-27

2021-08-27 — This Week in Matrix — Alexandre Franke

Matrix Live 🎙

These Hydrogen news leave me breathless!

Bruno also shared the news about the latest release:

Hydrogen 0.2.7 with Single Sign-on and well-known lookup also got released this week

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.

Spec Updates

MSC2582 (Removing mimetype from EncryptedFile object) was one of those MSCs that were relatively small, but had been languishing for ages. Partly because it required client implementations to update, but also partly because one needed to go in after a while and actually confirm that all known clients had updated. @uhoreg took up the mantle on his own to do so, and as a result this MSC has hit FCP and is soon to be merged. Thank you!

Random MSC of the Week

The random MSC of the week is MSC3262: aPAKE authentication!

Alongside MSC2957 and MSC3265, this MSC is requesting a better way of communicating one's password to the homeserver without sending it in plaintext (over TLS, hopefully).

Remember that this is only done in exchange for an access token, which is then used for all subsequent requests. Still though, I can see the merit!

2021-08-27-X19MU-stacked_area_chart.png

Dept of Servers 🏢

Synapse

callahad told us:

Synapse 1.41.0 is out! Check the release announcement to find out about all of the details, including progress on MSCs, great new Admin APIs, and the ability to handle the /createRoom endpoint on workers. As mentioned in last week's TWiM, Synapse 1.41 uses MSC3244: Room version capabilities to tell clients that they can and should use Room Version 8 when creating restricted rooms. The future is here!

We've also stopped publishing Debian packages for Ubuntu 20.10 (Groovy).

⚠️ We expect to publish a security release Synapse 1.41.1 on Tuesday, 31 August which fixes two moderate severity issues.

Lastly, the Synapse team would like to extend a warm welcome to Sean Quah, who joined Element's backend team this week. Welcome, Sean!

Homeserver Deployment 📥️

Kubernetes

Ananace offered:

And yet again this week sees another update to my Helm Charts, with matrix-synapse bumped to 1.41.0

Dept of Bridges 🌉

matrix-docker-ansible-deploy

This Ansible playbook is meant to easily let you run your own Matrix homeserver.

Slavi said:

Thanks to Alexandar Mechev, matrix-docker-ansible-deploy can now install the beeper-linkedin bridge for bridging to LinkedIn Messaging.

This brings up the total number of bridges supported by the Ansible playbook to 20.

Dept of Clients 📱

FluffyChat 0.38.0 has been released

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

krille offered:

This release adds more functionality for spaces, enhances the html viewer, adds a brand new video player and brings some improvements for voice messages. Thanks to everyone involved!

Please note: It will take some days until it arrives in all appstores.

All changes:

  • change: Nicer design for selecting items

  • change: Placeholder at username login field should be just username

  • chore: cleanup no longer used translation strings

  • chore: switch image_picker back to upstream

  • chore: update flutter_matrix_html

  • chore: Update matrix sdk to 0.3.1

  • feat: Add option to not autoplay stickers and emotes

  • feat: Add remove rooms to and from spaces

  • feat: Add video player

  • feat: Cupertino style record dialog

  • feat: Display amplitude

  • feat: Implement official emoji translations for emoji verification

  • feat: Nicer displaying of verification requests in the timeline

  • fix: Allow fallback to previous url if there is no homeserver on the mxid domain

  • fix: Correctly size the unread bubble in the room list

  • fix: Design of invite rooms

  • fix: Disable autocorrect for the homeserver url field

  • fix: Disable broken audioplayer for web

  • fix: Display loading dialog on start DM

  • fix: Dont add/remove DMs to space

  • fix: Empty timelines crashing the room view

  • fix: excessive CPU usage on Windows, as described in https://github.com/flutter/flutter/issues/78517#issuecomment-846436695

  • fix: Joining room aliases not published into the room directory

  • fix: Keep display alive while recording

  • fix: Load space members to display DM rooms

  • fix: Make translations use plural forms

  • fix: Re-add login fixes with the new SDK

  • fix: Reply with voice messages

  • fix: Report content localizations

  • fix: Requirements when to display report event button

  • fix: too long file names

  • fix: Try different directories on all kind of errors thrown for hive store

  • fix: Use plural string in translation

  • fix: use vrouter.toSegments

  • fix: Wait for sync before enter a room a user has got invited

  • fix: wallpaper on linux

  • fix: Wrap login form into AutofillGroup

Cinny v1.2.0

ajbura said:

Cinny is about to get one month old 🎉 (on 28th) and v1.2.0 is out with the following changes:

Features

  • Added support for sending reactions.

  • Added support for message editing.

  • Display names suggestions for auto completion are available after typing @.

  • You can now see read receipt of messages.

  • Replaced commonmark with micromark, which means now you can send properly formatted tables and images with links.

  • Non kick leave messages are also visible now.

  • Added support for displaying stickers sent from other clients.

Bugs

  • Fixed no known servers issue upon joining channels.

  • Fixed crashes on bad media data.

  • Fixed inconsistent display names in people drawer.

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

Sailtrix

hengyedev told us:

Sailtrix is a matrix client for SailfishOS.

Here is a list of developments this week:

  • Added more time intervals for checking notifications

  • Added an option to disable notifications when the app is closed

  • Avatars for rooms and members are now rounded

  • Uploading files now sends mimetype in the info object for increased compatibility with some bridges

  • Use qsTr for most QML strings

  • Fixed a bug where matrix: URLs with # in them would not launch

  • Fix a bug where the local echo message would appear when editing

These changes have been released in Sailtrix 1.3.1, available on OpenRepos.

Discussion: #sailtrix:matrix.org

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

NeoChat

Carl Schwan said:

This week Tobias implemented blurhash in NeoChat for a smoother image loading experience. Tobias also continued working on E2EE and this past week his focus was on decrypting encrypted files.

Ement.el

alphapapa said:

Ement.el, a Matrix client for Emacs, gained some more improvements this week:

  • Multi-account support was merged, so you can now use multiple accounts at the same time. You can even be in the same room in two different accounts, at the same time, in side-by-side windows (which is useful for testing). (Note that existing users will need to log in again, because the format of the saved-session file changed.)

  • Rooms you have been invited to now show up in the rooms list, and you can join them by clicking a button in the room's buffer.

  • Encrypted rooms now display a warning in the header and suggest that users consider using Pantalaimon.

  • Membership events are now formatted more usefully, similar to Element's style.

  • Completion for room and user names and IDs is implemented using standard Emacs commands and bindings (i.e. C-M-i by default).

  • The last-read marker may be jumped to, even if it's at an earlier event that has not yet been retrieved.

  • Emotes (i.e. /me-style messages) can be sent by pressing e.

  • Timestamps in the room list are shaded according to how "hot" (i.e. recently updated) the room is (see screenshot).

  • Various small fixes and enhancements.

Feel free to join us in #ement.el:matrix.org!

2021-08-27-mS530-timestamps.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) said:

Nheko now supports uploading to online key backup and warns you before enabling it, that we don't recommend using the asymmetric version. If you update to one of the current builds (and or the next version), you will also experience a bit longer load times on first startup. That is because we force-cleared the cache to be able to handle the new goodies like spaces and sticker/emote-packs. In the best case, everything is seamless.

We also had contributions by various people:

  • resolritter cleaned up that while tab moved you down most popup lists, it didn't move up when shift was pressed.

  • Harmathy extended the FAQ to answer commonly asked questions like "Does Nheko support E2EE" or "What commands are supported". Don't worry, we know most of you won't read that and will still answer that question when you undoubtedly come asking it again. We just can now be even more passive agressive than just pointing at the right wiki page. Instead we will point at the FAQ now, which will point at the wiki!

  • thombles made the emoji completer behave more nicely. Instead of jumping to the bottom left corner before closing, it will now just close. It should also now behave correctly when selecting text.

  • alfasi updated the install instructions for Gentoo.

I'm not sure we have ever seen that many new faces contributing to Nheko in a week, I'm pretty happy to see that!

Fractal

Busy week in Fractal land! It is the end for GSoC, but it’s not really over. While some merge requests from our interns are still ongoing, Julian merged a bunch of them. On Kai’s side, the long awaited Room details are finally here. Alejandro, on the other hand, landed code to get display name and avatar of accounts at startup.

Circles

cvwright offered:

Circles is a project to build a secure, end-to-end encrypted social network on top of Matrix. The iOS app is currently in the final stages of beta testing in preparation for a 1.0 release.

Updates this week include:

  • Fixed a bug that prevented some new users from registering. If you tried to sign up last week but the email validation failed, please give it another try with the latest build.

  • Cleaned up the "Home" tab for a simpler, cleaner look.

  • Fixed a bug where the summary of recent activity was failing to load on app startup. Also added a manual "refresh" button as a fallback.

If you would like to try the latest Circles beta (v0.93), you can get it from Apple here

Element Clients

Updates from the teams

Delight team

  • Room version 8 was marked as the preferred version for MSC3083 restricted rooms on matrix.org and in Synapse 1.41, released this week. This means Element clients can now show UI to create restricted rooms within a Space, and prompt users to upgrade rooms if necessary when making them restricted.
  • Improvements to the performance of the room summary API.
  • Lots of testing of Spaces in anticipation of it leaving beta.

VoIP

  • Fix cases where a call ringtone would continue even after the call was answered.
  • Add active speaker indicators when a user in a call is currently talking.
  • Working on showing call duration in call tiles.

Web

  • We’ve released 1.8.2 RC3 which includes fixes to windows font rendering, blur hashing and accessibility improvements, and other bugs.
  • Our internal threads prototype is in code review.
  • This week, we’ve been doing more work on threads, fixed some more cross-signing bugs, iterating on more compact replies, and investigating our process for translations.

iOS

  • Continue to work on URL preview.
  • App Navigation improvement: Continue to work on room navigation.
  • Account notification settings are now available.
  • Voice message rendering and playback fixes have been made.
  • We added a banner to advertise that iOS 11 will be dropped soon.
  • Room creation: prevent room duplication on creation.
  • Media upload sizing: Continue to improve media size selection.

Android

  • We are still improving the experience with Spaces
  • Notifications setting will be updated in the next release, with the ability to get notified when keywords are included in any message (only on un-encrypted rooms for now)
  • Working on Olm fallback key support
  • Besides that we are fixing bugs across the application and the SDK. We have fixed the issue of crashing when opening a room on devices running API 21. The fix will be in the next release.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte reported:

It's been so long since our last update that I couldn't possibly list all of the individual changes, but here's a rough overview of the work since then (three months ago):

There's been loads of bug fixes, many compatibility improvements and at least one large refactoring. We've been much faster about releasing changes to crates.io after ruma 0.1.0, now we're already at ruma 0.4.0 (!); the changes needed to upgrade are really not that significant though. Notable areas of improvement are

  • UIAA: No more stringly-typed auth type + map of properties. The AuthData enum that holds the authentication information clients send to servers now has one variant for every auth type defined in the spec.

  • Event relations: These used to be serialized wrongly for encrypted events and were only (de)serializable as part of a larger event (making using them in custom ways impossible). Both of these issues were fixed.

Additionally, the GSoC coding period is over and our students have both written a blog post summarizing their work: API Coverage project (Adam Blanchet), Tooling project (Devin Ragotzy)

If you want more detailed updates about Ruma, please watch our repository's GitHub releases, since nobody in the project currently wants to write regular blog posts or TWIM updates (if you are interested in changing that, get in touch over at #ruma:matrix.org).

libQuotient

kitsune reported:

This week a new stable version of libQuotient, 0.6.8, has been released. While the main focus has been fixing bugs and sustaining the codebase, one significant highlight is that read receipts and fully read markers are distinguished now, which should improve interaction with other clients that has been treating them differently for quite some time now. This version is anticipated to become the base of the upcoming Quaternion 0.0.95.

Simple-Matrix-Bot-Lib

krazykirby99999 offered:

Version 2.0.0 Released!

The second major version of the simplematrixbotlib package has been released. It is available from Github and PyPi.

Example usage is shown below:


#### echo.py
#### Example:

#### randomuser - "!echo example string"
#### echo_bot - "example string"

import simplematrixbotlib as botlib

creds = botlib.Creds("https://home.server", "echo_bot", "pass")

bot = botlib.Bot(creds)
PREFIX = '!'

@bot.listener.on_message_event

async def echo(room, message):
    match = botlib.MessageMatch(room, message, bot, PREFIX)

    if match.is_not_from_this_bot() and match.prefix() and match.command("echo"):

        await bot.api.send_text_message(

            room.room_id, " ".join(arg for arg in match.args())
            )

bot.run()

You can find the quickstart here.

Dept of Interesting Projects 🛰️

MatrixCrudRepository.ts

thejhh said:

I made an experimental Matrix-based persistent storage CRUD repository: https://github.com/sendanor/matrix/blob/main/MatrixCrudRepository.ts

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: #terminal-gaming:matrix.org

"Channel dedicated to games running in terminal enviroment (or one that looks like terminal) As long as the game could be easily ported to terminal, it belongs here :) Telegram: t.me/cligaming"


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
1boba.best456
2envs.net583
3xethos.net756
4helderferreira.io852
5thomcat.rocks934
6trolla.us962
7aria-net.org983
8feneas.org989
9shortestpath.dev1808
10matrix.sp-codes.de2564

#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.dev807.5
2twentybit.dev946
3conduit.rs1022
4weber.world1981
5dendrite.s3cr3t.me2502
6dendrite.matrix.org9141

That's all I know 🏁

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