This Week in Matrix

327 posts tagged with "This Week in Matrix" (See all Category)

Atom Feed

This Week in Matrix 2021-02-26

26.02.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Dept of Status of Matrix 🌡️

Decentralized Systems and Network Services Research Group output

Florian told us:

The article of my research group Decentralized Systems and Network Services Research Group from the KASTEL Institute of Information Security and Dependability and me, Analysis of the Matrix Event Graph Replicated Data Type, was published in the Open Access journal IEEE Access! 📰 🥳 Open Access here means that the article is freely available for you to read, under CC-BY.

2021-02-26-x72VR-MEG_with_Chat.png

In layman's terms, we showed that the Event Graph provides a strong form of eventual consistency even when new events are applied in arbitrary order. In addition, this consistency guarantee can still be provided even if all other servers in a room are malicious, which is unexpected compared to the honest majority required for the usual Distributed Ledger Technology. We also looked at the problem of “If servers randomly select at which parents at the bottom of the Event Graph they append new events, and the number of parents for an event is limited, how can you be sure that the Event Graph does not grow arbitrarily wide?“, which is something that puzzled me since the beginning of my Ph.D. two years ago. It is easy simulate a given setup and see that the width shrinks really fast, but it is also easy to see that arbitrary growth has a likelihood larger than zero. As this was astonishingly hard to grasp mathematically, we were very happy that we could recruit Prof. Dr. Norbert Henze from the Institute of Stochastics as co-author to provide evidence that you can expect the Event Graph to shrink to a normal width quite quickly.

Let me quote parts of the abstract for some more technical details:

[…] By comparison with traditional decentralized communication systems, Matrix replaces pure message passing with a replicated data structure. This data structure, which we extract and call the Matrix Event Graph (MEG), depicts the causal history of messages. We show that this MEG represents an interesting and important replicated data type for decentralized applications that are based on causal histories of publish-subscribe events: First, we prove that the MEG is a Conflict-Free Replicated Data Type for causal histories and, thus, provides Strong Eventual Consistency (SEC). With SEC being among the best known achievable trade-offs in the scope of the well-known CAP theorem, the MEG provides a powerful consistency guarantee while being available during network partition. Second, we discuss the implications of byzantine attackers on the data type’s properties. We note that the MEG, as it does not strive for consensus or strong consistency, can cope with n > f environments with n participants, of which f are byzantine. Furthermore, we analyze scalability: Using Markov chains, we study the number of forward extremities of the MEG over time and observe an almost optimal evolution. […] With the properties shown, a MEG represents a promising element in the set of data structures for decentralized applications, but with distinct trade-offs compared to traditional blockchains and distributed ledger technologies.

Dept of Spec 📜

anoa offered:

Interrupting spec update!

Spec

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

Closed MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, there's been activity from the core team on MSC2516 (voice messages), MSC2312 (matrix URI scheme) and MSC3026/MSC3032 (presence improvements).

New Spec Platform

PR updates on matrix-doc has been refactored and straightened out, and is up for review. We're reviewing changes to our infrastructure on matrix.org in parallel which should result on spec.matrix.org hosting the unstable spec sometime early next week!

2021-02-26-c2XcZ-stacked_area_chart.png

Dept of Servers 🏢

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Hey, it's Friday!

We released Synapse 1.28 yesterday, with the bulk of effort going into stability improvements and bug fixes, and an emphasis on further improving social login.

We're also working to more clearly communicate our prioritization of issues, starting with documenting our triage and labeling process for the core Synapse repository on GitHub.

(Still very much a work in progress, but starting to shape up nicely.)

We're also on track to maintain our fortnightly cadence of Release Candidates, with 1.29.0rc1 due out in just a few days. I look forward to telling you all about it next week!

Homeserver Deployment 📥️

Kubernetes

Ananace offered:

Another week, another bump of the Kubernetes chart and image of Synapse (to 1.28.0), still haven't had time to fix it to be image agnostic - the Synapse team is just developing far too fast.

Dept of Bridges 🌉

Gitter

Eric Eastwood announced:

We've added a "Chat via Matrix" button next to the join button in a Gitter room so you can jump straight into Matrix and start chatting that way. We've also added a Matrix.to link in the chat header so you can switch off to your favorite Matrix client at any time.

2021-02-26-vvZtd-Photoshop_2021-02-25_18-52-05.png

New LINE messenger bridge

fair offered:

matrix-appservice-line: A bridge for LINE messenger based on running LINE's Chrome extension in Puppeteer. Based on tulir 's mautrix-amp, as per Eric Migicovsky's suggestion 🙂

Currently very rough around the edges, but message sending & receiving in 1:1 chats works, as does conversation syncing & backfilling.

Repo: git://miscworks.net/matrix-appservice-line
Discussion: #matrix-appservice-line:miscworks.net

Dept of Clients 📱

Neochat 1.1

Carl Schwan announced:

We released NeoChat 1.1 containing 2 months of new features and bugfixes. Most notably message editing, sticker events support, rewritten login screen, SSO support and more commands. Check it out at https://carlschwan.eu/2021/02/23/neochat-1.1/

2021-02-26-jJwf3-image.png

In addition to the 1.1 release from earlier, aa13q added support for fancy animation for the 🎆, 🎉 and 🌨️ emojis. This feature can be disabled.

2021-02-26-euMEn-Screenshot_20210226_144943.png

aa13q shared this video too!

neochat pinephone poorly recorded effects demo 🙂 https://i.imgur.com/Z9vF9px.mp4

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

2021-02-26-M_N-6-clipboard.png

Nico (@deepbluev7:neko.dev) sent a teaser image first, then added:

As seen from the image, you can now share your screen. This currently only works on X11, since there are no cross platform APIs for that, so look out for that, if you run into issues.

Jedi18 also polished the UX a bit more and fixed bugs, so registration should now work properly again and leaving or joining rooms should place you in the right rooms after that. We also fixed some inconsistencies, where text could be misaligned, when writing long messages.

Quaternion

kitsune reported:

Version 0.0.95 beta4 is out, with significantly better Markdown support (code fences work now, and the overall formatting is better), further improvements to the shuttle dial and other smaller fixes. The release notes and some packages are at their usual place at GitHub; the Flatpak is also coming real-soon-now.

No (or almost no) changes in strings are expected before 0.0.95 from now, so translation contributions are very welcome at Lokalise. German, Polish and Spanish translations are quite advanced but need just a few more entries; the French translation is just about half-way; and there are many prominent languages not even started. You can help!

Element Clients

Updates from the team:

Delight

  • Social Login
    • After shipping Social Login on matrix.org, we’re working on general stability to harden the feature, and get better visibility on stability.
  • Spaces
    • On Android, we’re making good progress on creating and managing spaces, first focusing on public space use cases. Otherwise, we’re also polishing implementations on web & iOS.

Web

  • 1.7.22 RC on staging, includes
    • Improved Jitsi conference names
    • Disabled chat effects when reduced motion preferred
  • 1.7.22 planned for release on Monday (1 Mar)

iOS

  • 1.2.2 RC currently available in TestFlight
  • 1.2.3 RC is coming
  • Will be released on Monday:
    • Mainly bug fixes around e2ee and VoIP

Android

  • 1.1.0 released with a huge update on VoIP
  • Initial sync is now more reliable for big accounts, consuming less RAM

Watch The Matrix, for Apple Watch

Doug told us:

Hey TWIM. I'd like to present Watch The Matrix, a matrix client for watchOS that I've been working on over the last few weeks. Currently can view rooms, receive new messages and react to them:

Find the code: https://github.com/pixlwave/Watch-The-Matrix

Dept of SDKs and Frameworks 🧰

libQuotient

kitsune reported:

libQuotient 0.6.5 is out, featuring fixes in rich replies handling and the updated Matrix URIs support, as per the latest iteration of MSC2312, enabling shorter, nicer Reddit-style URIs such as matrix:r/thisweekinmatrix:matrix.org.

libkazv (and the Kazv Project)

tusooa offered:

libkazv is a sans-io C++ (gnu++17) client library

built upon lager. Along with it there is kazv, a kirigami/qml client, and a

forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz.

Updates

In the past (how many?) weeks we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Released libkazv 0.1.0 and matrix-tencent-forward-bot 0.1.0.

    Those are stable enough to run as daemon, at least for days.

  1. Added related ebuilds to the overlay.
  1. Implemented streaming uploads for libkazv.
  1. Made matrix-tencent-forward-bot support directly forwarding images

    to the matrix room.

Opsdroid 0.21

Cadair reported:

opsdroid is an easy to use chatops framework with excellent matrix support.

0.21 Release

This week opsdroid 0.21 has been released, it's an incremental release but includes a couple of nice matrix related features and fixes. The highlights are:

  • Support authorization by access token in addition to user name and password for the matrix connector. #1707.

  • Fix parsing a sync response with more than one message in it. #1715.

  • Minor fixes to the matrix documentation. Thanks to @anoadragon453 @xDiesel76 for these.

For a full list of the other changes see the release notes.

If you have any questions or want to get involved come say hi in #opsdroid-general:matrix.org, raise an issue on GitHub and checkout the docs.

Caridina, Crystal library for Matrix

erdnaxeli said:

Caridina, a Crystal library for Matrix, got some new releases, which bring it to v0.10.2. It now supports the last version of Crystal (0.36.1) and redacted events, which I discovered the hard way were making the lib crash. Internally a big part of the lib was rewritten using macros, which makes the code a lot clearer but the API doc too. Thanks to Ruma actually for giving me inspiration about implementing events using macros.

Again, if you like Crystal and want to write some matrix bot, this library might interest you. Feel free to open issues about bugs or feature requests! There is now a room #caridina:cervoi.se to talk about it.

Dept of Bots 🤖

taavi

select announced:

So I had a minute to release my open q&a bot taavi.

I always wanted to write a chatbot that does cool things, so checkmark for that one on the list. In addition to that I recently failed a job interview. For their technical skill test (I did not fail this :P), I got a task for which I learned how to use puppeteer, then saw a post on reddit about Tuxi and together with my previous project that included Matrix (Audius), I knew what I had to do: create Taavi.

I have created this bot as a "weekend project", literally one day for the code and one day for documentation. Surely it's far from perfect but I don't have any big plans with it so far… If you think I should add some features, create an issue and let me know. I could imagine adding other websites / services to it like last.fm, do you have any ideas?

I gave my daughter the task to choose a name for a bot, that can answer any question in the world, and she came up with Taavi, nice!

https://gitlab.com/s3lect/taavi-bot

Ansible role for installing Maubot via Docker

jaywink said:

I created an Ansible role for installing Maubot via Docker - https://git.feneas.org/jaywink/ansible-maubot . Currently it only supports an Sqlite database, but pull requests are welcome for more configuration. Supports a pre-created client account.

Dept of Interesting Projects 🛰️

Hummingbard

ahq reported:

I've written a post introducing Hummingbard. https://hummingbard.com/hummingbard/introducing-hummingbard

This looks really interesting!

Final Thoughts 💭

JCG said:

Not sure if TWIM worthy, but here's a nice article about the recent flood of people migrating away from whatsapp, and why people should've migrated to matrix instead of Signal.

(In German)

There is also a sympathetic response that has been discussed on HN.

Seirdy said:

i've been getting some feedback from other matrix users on a blog post i wrote that outlined a few concerns I had about the Matrix ecosystem and steps for improvement. idk if it'd be relevant in TWIM, but I noticed that "Final Thoughts" sometimes linked blog posts so I thought I'd share: https://seirdy.one/2021/02/23/keeping-platforms-open.html

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1rollyourown.xyz420
2neko.dev465.5
3maunium.net480
4phys.ethz.ch481
5envs.net492.5
6mailstation.de738
7blackline.xyz891
8kif.rocks902
9casavant.org932
10aria-net.org1028

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-02-19

19.02.2021 00:00 — This Week in Matrix Ben Parsons

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

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

The Spec Core Team has spent this week working on getting MSC2312 (Matrix URI Scheme) over the line, which is really exciting! Otherwise the team has been reviewing MSC2304 (knocking).

New Spec Platform

Work is currently underway in migrating to the new spec platform. A PR for updating the CI of matrix-org/matrix-doc to build the new spec is up, and an equivalent for matrix-org/matrix.org should be up next week.

2021-02-19-QCQcX-stacked_area_chart.png

MSC3013

sorunome said:

Soru has been working on experimenting with / designing a way to improve push systems within the matrix ecosystem, so that ideally clients can display full event contents in a notification and dispose of specific push notifications without the need for any extra HTTP calls. This lead her to making MSC3013 (encrypted push), so that no gateway is able to read event contents pushed down to the client and MSC3014, so that the client can know which rooms have been read on other devices, allowing them to dispose push notifications.

This is more than just MSCs already, soru already got encrypted push in a patched synapse and a patched fluffychat working locally, and it is working super great!

Dunno soru is just really excited about this somehow >~< 🦊

Dept of Servers 🏢

Hedwig: push gateway

krille reported:

Let's talk more about Hedwig: This is a push gateway for matrix and an alternative to Sygnal. Hedwig is completely written from scratch in Rust (Yes! Rust!) and offers the basic functionality to forward matrix push notifications to Firebase Cloud Messaging. That's it. Nothing more. It is intended to be as lightweight as possible and so it is very fast and stable. Just change a simple config.toml file and run the binary. There are docs for how you can configure a proxy in Apache2 and an example systemD service file. Currently it only supports event_id_only formatted notifications but maybe, in the future, we expand this functionality.

Learn more: https://gitlab.com/famedly/services/hedwig

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander reported:

This week we released Dendrite 0.3.10, and have committed a couple more fixes to master:

  • The database is now only queried for remote servers once in /send

  • The oldest cache entries are now gradually evicted, saving a small amount of memory

  • The destination queues in the federation sender are now not stored forever, saving some memory

  • A bug where a non-excluded event could be accidentally excluded from /sync has been fixed

  • Some dependency fixes have been merged

Sytest compliance:

  • Client-server APIs: 60%

  • Server-server APIs: 82%

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

Synapse 1.27 is out, and you can read all about it on the Matrix Blog! This is the version that powered FOSDEM, and we're super proud of it. Especially the much improved support for multiple social login providers, which debuted at FOSDEM and is now enabled on matrix.org.

In addition to all the performance, stability, and social login improvements, there are two important things to note:

  1. If you use SSO, you will need update your configuration before upgrading; please see the link above for details.
  2. We were unable to build Docker images for ARM platforms in time for this release, and will not build images for ARMv7 in future releases.
  • To avoid unexpected breakage, we have not updated the latest tag on Docker Hub for this release; if you want Synapse 1.27, you'll need to specifically reference the v1.27.0 tag.

  • Images for ARM64 (and an updated latest tag) will return with the next Synapse release.

It took us a bit longer than usual to get 1.27 out the door, so we're also pleased to announce that 1.28.0rc1 is also now available, and we expect to release it early next week. Keep your eyes peeled for more on that next week!

Homeserver Deployment 📥️

Kubernetes

Ananace announced:

New chart versions have been pushed for Element 1.7.21 and Synapse 1.27.0.

The rejiggering to allow arbitrary images for the Kubernetes chart got delayed due to lack of time, but 1.27.0 should hopefully be the last version with that limitation.

Dept of Clients 📱

Nio

Nio is a client written with SwiftUI

kilian offered:

Nio has seen some great improvements since the last update, mostly thanks to gaining a new main contributor \o/

  • History loading now works (seems like a rather essential messenger feature 😄)

  • New conversations can be started (with a slick UI)

  • There's a preliminary (but well-working!) build for macOS on Catalyst

  • As a first step towards E2EE support Nio can now participate in encrypted sessions while running

  • Many new translations (thanks to all the contributors on translate.element.io!)

  • Lots of additional bugfixes and improvements

Join us in #niochat:matrix.org for more details 😊

FluffyChat

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

krille said:

FluffyChat 0.27.0 is out. Not with the new design but with some minor design improvements like the return of the presence list top bar (or whatever you would name it!). Also this release brings a lot of bug fixes, working bootstrapping and the switch to our new Push Gateway (in Rust) we have invented inside of Famedly. You can find it here: https://gitlab.com/famedly/services/hedwig

FluffyChat on Pinephone

Lukas Lihotzki said:

FluffyChat runs on the PinePhone (Flutter Linux ARM64). I've built it with flutter master on the PinePhone itself, because cross-compiling is not yet supported. Currently, Flutter Linux on the PinePhone only works with X11. It crashes with Wayland.

I am on the brink of buying one of these!

2021-02-19-2Lo26-pine.png

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

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

We had a fun week this time. Today I tested trilenes screen sharing code, which seems to work pretty well on X11, although it only shares the full screen atm. I expect window sharing to land next week though. We also ran into some issues with matrix.org enabling optional SSO login, which locked some people out of their accounts, since Nheko preferred SSO login in that case... This is now fixed and in such cases you will be offered both login flows.

Jedi18 also added a room name completer, which means you can finally complete aliases when typing them! The room settings were also ported to Qml and now actually show the room topic. Apart from that there were various UX fixes here ad there, like hovering actually working properly now, emote messages formatting correctly in notifications and more. We also adapted the matrix: uri support to the latest changes, although the MSC is a bit volatile atm, so it may need some more adaptions over time.

I think that's all, have a nice weekend everyone!

Hydrogen

Bruno announced:

I'm back working on Hydrogen, and started to tackle logging to be able to diagnose problems better. I've opted for a structured log format in JSON that gives a tree of log nodes for an entire operation (e.g. sync, or sending a message, ...) which will be more compact and should also be easier to find patterns in than a pure line based format. I had hoped to get that out in a release by today but didn't get as far as I hoped, so should get released early next week.

2021-02-19-VTLG5-image.png

Yes! Hydrogen progresses!

Element

Neil told us:

Delight

  • Social Login

    • Social log-in has shipped to matrix.org, we are seeing about 40% of new users opting for a social method. Next up will be landing some robustness improvements as well as automatic avatar import.
  • Spaces

    • We are aiming to get a basic version up and ready over the next few weeks. The idea is to have something behind a labs flag that will work for Spaces containing public rooms only. After that we will think about more complex cases such as Spaces containing private rooms.

VoIP

  • Fix for crash on Android caused by VoIP tiles

  • Design updates on iOS for in-call view and dial pad

  • Couple of tweaks to web that may help 1:1 call connectivity

Web

  • Element 1.7.21 was released on Monday (15 Feb)

iOS

  • Element 1.2.1 was released on Friday (12 Feb)

  • We now use XcodeGen to generate Xcode project files. Please check new instructions to build the project. It is only on develop for the moment

  • We made an update to libolm so that it accepts an external pickle key to encrypt its data when serialising it. Element-iOS uses the Keychain to provide this key.

  • We started to review and merge pending PRs in our repos but we still have work. Thanks for your contributions and patience

Android

  • We are preparing the release 1.1.0 which contains the work on VoIP

  • This release will also contain a lot of bug fixes

Dept of SDKs and Frameworks 🧰

ruma

Ruma is a set of Rust library crates around Matrix

jplatte said:

This week,

Dept of Ops 🛠

matrix-docker-ansible-deploy: Synapse workers

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

Slavi told us:

After lots and lots of work (done over many months by Marcel Partap, Max Klenk, a few others from the Technical University of Dresden, Germany and various other contributors), support for Synapse workers has finally landed in matrix-docker-ansible-deploy. 🚀

Learn more from our changelog announcement.

matrix-docker-ansible-deploy: GroupMe bridge

Slavi returned to say:

Thanks to Cody Neiman, matrix-docker-ansible-deploy can now install the mx-puppet-groupme bridge for bridging to GroupMe.

This brings the total number of bridges supported by the playbook up to 18. See all supported bridges here.

To get started, follow our Setting up MX Puppet GroupMe docs.

ansible-matrix-collection from tntclaus

tntclaus announced:

Collection of Ansible modules to manage Matrix Homeserver instance. Only tested with Synapse but may (partially) work with the other Matrix Homeserver implementations.

Provides modules to manage users, rooms and communities.

https://github.com/eraga/ansible-matrix-collection

synadm

jojo said:

synadm is growing! Pull requests have been submitted, issues been raised, bugs fixed and quite some user community seems to have evolved around it as it’s regularly mentioned on #synapse:matrix.org

Since it’s first announcement on TWIM in December, notable things happening in the project are:

  • Massive internal overhaul, tidying up and refactoring

  • Media Admin API support

  • Make Room Admin API support

  • Delete Group (community) API support

  • 4 available output formats (json, yaml, pprint, human)

  • Python requests debugging switch

  • Textual Error responses of Synapse now showing in output

  • Licensed under GPL-3

Have a look at the latest release notes for a complete list of new features and fixes: https://github.com/JOJ0/synadm/releases

Thanks a lot to contributors @hpd, @kaiyou, @schwindp, @aaronraimist and @rht! Keep those PR's and ideas coming! You have been a great help!

Next features on the roadmap are "Purge History API", regular matrix client calls support and login as a user. Help me prioritise features by raising an issue: https://github.com/JOJ0/synadm

Still, I am basically a one man show, and certainly any contributions are warmly welcomed! Even as a non-programmer you can help by keeping the implementation-status list up to date. If you find an admin API missing, please take a minute and use the integrated edit functionality github provides and add it to the list: https://github.com/JOJ0/synadm#implementation-status--commands-list. It helps contributors to quickly find out what feature they could code!

I am also thinking about finding people who'd like to join the team, code new features and help maintain codebase, review PR's, get push access and so on. Spread the word! Join #synadm:peek-a-boo.at!

Matrix in the News 📰

Shine reported:

Dunno if twim worthy? Proton mentioned Matrix in https://protonmail.com/blog/whatsapp-alternatives/

Seems to be worthy, it's been included anyway!

Final Thoughts 💭

Nico (@deepbluev7:neko.dev) offered:

Oh, and maybe as a side note: Since Steam voice chat failed me one too many times now, I now use Nheko for voice chat, if I just play with one other player. It is more reliable and most people I play with do have a voip capable Matrix client installed!

Using own product 😀 👍

TR_SLimey said:

It seems neochat has made it into the Plasma 5.21 preview video, albeit not quite as one might expect :P

2021-02-19-1248X-Screenshot_20210217-193527.png

Here's the video link: https://youtu.be/ahEWG4JCA1w

That indeed is an unusual way to get featured, well done NeoChat!

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net437
2midov.pl493
3kif.rocks582
4nicoll.xyz638
5maunium.net708
6rollyourown.xyz785
7utzutzutz.net912
8blackline.xyz975.5
9shortestpath.dev1194
10roeckx.be1516

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-02-12

12.02.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

This week we have Neil presenting P2P Matrix over Bluetooth. It's titled "P2P Matrix Bluetooth Low Energy demo", but I thought Neil and Matthew brought a pretty good energy to the video!

Dept of Status of Matrix 🌡️

Famedly in the media

Nico (@deepbluev7:neko.dev) announced:

Famedly (Matrix based application for German hospitals and clinics) seems to be getting positive feedback so far: https://medtech-zwo.de/aktuelles/nachrichten/nachrichten/famedly-ueberzeugt-mit-messenger-dienst-im-krankenhaus.html

Article in German, but my favourite parts are:

  • They used the word "Anti-Datenkrake" to describe how data is handled in the application, which basically is a metaphor for Famedly being the opposite of the usual corporations trying to pry their tentacles into everyones personal data. See also: https://en.wiktionary.org/wiki/datenkraken

  • They actually use [matrix]–Protokoll to refer to the Matrix protocol. The open and standardized Matrix protocol seems to be a big selling factor.

Dept of Spec 📜

Spec

anoa said:

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:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

Some chatter about the MSC2403 (knocking) as FCP has been proposed. Otherwise work on MSC1772 (Spaces) as that nears production and some encryption work with MSC2874 (single SSSS).

The team is carefully debilitating MSC2997, which spurred out of a conversation during FOSDEM2021. What sizes to include? What font to use? What colour do we paint this bike shed? All incredibly complex questions.

New Spec Platform

Will Bamberg has done an incredible job with getting both an entire redesign and an internal refactoring to the Matrix Spec. Remaining work includes ironing out some remaining minor blockers (https://github.com/matrix-org/matrix-doc/pull/3002, https://github.com/matrix-org/matrix-doc/pull/3003), merging changelog representation with respect to the current idea of a global Matrix Spec version number (https://github.com/matrix-org/matrix-doc/pull/2992) and then finally hooking up all the CI/CD to deploy it all (my job!).

We're planning to present the new spec on a new domain; running it in parallel with the old design for a bit before eventually retiring the latter.

2021-02-12-B00Xp-stacked_area_chart.png

Dept of Servers 🏢

CONSTRUCT

grin shared this note from Jason:

This week in Matrix Construct added Application Services support. I've been using the Mautrix Telegram bridge on a daily basis, and it's been a pleasure to develop with. Expect more bridges to be tested in the coming weeks. I'll also be working on completing the documentation for how to setup a bridge in Construct. Just to give some insight: The server has the ability to manage all of your bridges as sub-processes. In any client, just create a room for your bridge and enter its configuration there. Voila! The bridge's console appears right in that room and can even highlight you about errors!

Join us at #construct:zemos.net to learn more about bridges and lend a hand.

Jason

2021-02-12-eXJxK-Screenshotfrom2020-10-2504-23-40.png

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

We survived FOSDEM! Last week was relatively slower in Synapse land as we paused to catch our breath, but we do have news!

First, releases. Synapse 1.27.0rc2 is out now (changelog), and we anticipate a full 1.27 release early next week. This is basically the branch that FOSDEM ran, so we think it's a good one.

Second, keeping with our biweekly development cadence, the first 1.28 release candidate is due out midweek next week, so keep your eyes peeled for that. Given FOSDEM, most of our recent focus has been on stability, bug fixes, and social login. We hope to knock your socks off with more ambitious features soon. 😉

Homeserver Deployment 📥️

YunoHost

Pierre told us:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.25.0 (1.26.0 available in branch testing)

Element Web integration had been updated to 1.7.16 (1.7.20 available in branch testing)

Dept of Clients 📱

SchildiChat Web/Desktop

qg offered:

SchildiChat is a fork of Element, which focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

Thanks to @michi7801 we can now provide builds for macOS!! 🍎

Code on GitHub: https://github.com/SchildiChat/schildichat-desktop

Matrix room: #schildichat-web:matrix.org

2021-02-12-5B1P9-Bildschirmfoto2021-02-12um10.48.41.png

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) announced:

We just landed basic support for edits. Which means edits are now applied to the original message instead of showing the fallback and you can edit your messages. You can also change a text message to a video (or the other way around) or change, who you replied to, but the latter fails to render in some clients properly, so be aware of that. Edits also send a secondary relation format, which makes handling edits easier, but I still haven't written up the MSC for that... The UI is not final yet and you can't show edit history yet, but apart from that it may or may not work fine.

There were also a lot of bugfixes like broken kerning in some cases, improved focus handling when clicking buttons in the timeline, Duplex devices should now work in calls, notifications now work on Haiku and a few more.

Now please stop asking for edits! :D

Cos discovers the /addwidget command in Element Web

Cos offered:

Public service announcement: Widgets are awesome. You can use /addwidget <url> in Element Web to add any web page in a iframe to the sidebar of Element Web. They get default name "Custom Widget" but you can rename them from /devtools menu. Very useful for group calendars, status pages and other info related to Matrix rooms.

Element

Neil announced:

Delight

  • Social Login

    • We’ve concluded most of the development on Social Login, and tested it last weekend on the FOSDEM deployments. We found that over 50% of new accounts used it to register! We’ll be deploying Social Login to matrix.org in the near future after polishing some final pieces on iOS.
  • Spaces

    • We’re iterating on the user experience for Spaces, first focusing on setting up, sharing and joining public spaces.

VoIP

  • VoIP branches merged to develop on iOS and & Android - please test voice & video calling if you have the android develop build, or testflight for iOS will be coming soon. More complex scenarios with multiple devices are particularly useful to test, eg. do other devices stop ringing when you answer on a different one?

Web

  • 1.7.21-rc.1 is now available at https://staging.element.io, including:

    • Fixed screen sharing in VoIP calls

    • Added window vs. full screen sharing option in VoIP calls

    • Fixed event permalinks to show link text instead of a room pill

  • 1.7.21 planned for release on Monday (15 Feb)

  • Element Desktop nightly builds are now using Electron 11

    • Please report any issues you notice so we can address them before the next Element release

iOS

  • 1.2.1 has been submitted to Apple. TestFlight should be available from tomorrow:

    • All new VoIP stuff described above

    • Handle User-Interactive Authentication for delete device and adding user 3pid.

    • Improve grace period management and setup Cross-Signing after login if possible when using SSO.

  • XcodeGen integration into the Element-iOS codebase is almost complete. From next week, we will not have merge conflicts on the pbxproj files. This also means better control on build settings.

Android

  • Initial sync work improvements: performance is far better regarding RAM usage and stability (especially true for large accounts), though duration is still a concern.

  • Started working on running integration tests via CI.

  • 1.0.17 released, fixing a join over federation bug. Expect 1.0.18 next week.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte offered:

In the last two weeks,

Dept of Ops 🛠

matrix-docker-ansible-deploy

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

Slavi told us:

Thanks to @Peetz0r, matrix-docker-ansible-deploy can now install a bunch of tools for monitoring your Matrix server: the Prometheus time-series database server, the Prometheus node-exporter host metrics exporter, and the Grafana web UI.

To install these services, follow our Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server docs page.

Dept of Interesting Projects 🛰️

SpaceHub

MTRNord offered:

This is a super early announcement.

As now Spaces exist and are kind of testable if you know how I went ahead to plan organizing my 200 rooms I currently have into spaces and realized soon that I will have A LOT of nested Spaces.

So I am now starting to write a tool to generate these spaces easily from a folder structure and exporting them.

You may ask why not a yaml or json format: Simply to more easily allow forking of existing collections. A folder structure is much easier to do a diff over in git than file content.

Feel free to join #space-hub:nordgedanken.dev for discussions or have an eye on https://github.com/matrix-spaces-generator where at the time of writing this only an example of the spaces folder structure exists.

Keymaker

MTRNord reported:

Small update time:

We are currently starting to add some documentation to it over at https://docs.joinmatrix.rocks/users/what-is-keymaker.html

It at time of writing still very barebones but over the next few weeks the goal is to add the Code of Conduct as well as a server admin guide on how to use this.

Dept of Guides 🧭

matrix-appservice-irc sprouts a book

Half-Shot said:

Hi folks! I'm happy to say that after many years of fielding IRC bridge support questions, the bridge team has now written the book on it. A markdown book! Using the latest mdbook tech we've written a draft of a usage guide and a server administration guide for the bridge and would value feedback on how we can make it better. This could be typos that I have strewn about it, or suggesting new content.

The draft is hosted at:

https://matrix-org.github.io/matrix-appservice-irc/latest

and the PR is:

https://github.com/matrix-org/matrix-appservice-irc/pull/1235

Final Thoughts 💭

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

Shine reported:

If you have a 3D printer and want to express your love for Fluffychat with a nice badge, you can download the necessary files here ^_^ https://www.thingiverse.com/thing:4550331/files

Freecad source file included for those who need some modifications.

(Yes, it's older, but I never TWIM'd it 🤦‍♀️)

sorunome shared:

2021-02-12-cPftU-img_20210208_160724.jpg

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net347.5
2syn.steimel.info480
3matrix.xn--kll-sna.net491
4etke.cc682.5
5maunium.net692
6maescool.be708.5
7jupadr.de741
8matrix.godfreyhendrix.com1072.5
9shortestpath.dev1093.5
10queersin.space1180

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-02-05

05.02.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

It's a great week for FluffyChat! I chatted with the authors, Krille and Soru, to get the latest news.

Dept of Status of Matrix 🌡️

FOSDEM 2021

FOSDEM is happening this year, regardless of pandemics or anything else! Actually FOSDEM in my experience is a huge super-spreader event even in normal years, so it may be refreshing to know that this year it will be fully virtual, and hosted using Matrix and Jitsi!

Matrix have several relevant talks happening:

Plus, there is a bonus talk from Brendan:

  • Mental health and free software Sunday @ 13:50 (in which Brendan talks about mental health issues in the context of working on free software, which may or may not relate to people, though certainly not me, pinging him at all hours to ask about customer integrations and features)

Plus, perhaps the most important part of FOSDEM: FOSDEM 2021 Matrix T-Shirt (Limited Edition) is now available

T-Shirt

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

  • There were no new MSCs this week.

Spec Core Team

The Spec Core Team was focused on implementation and FOSDEM this week. Next week we'll be back getting through the backlog board.

2021-02-05-gpxy6-stacked_area_chart.png

Dept of Servers 🏢

Federation Tester

Neil Alexander told us:

federationtester.matrix.org has been updated today so that it now works properly with servers running TLS 1.3!

Conduit

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

timokoesters told us:

We're coming closer to correct federation every day! Currently we are reviewing and improving Devin R's MR and looking for mistakes, we will be giving it a try soon.

Meanwhile I worked on:

  • Push rule settings, making it finally possible to mute rooms

  • Appservice compatibility, I'm currently trying to get the mautrix-hangouts bridge to work

  • Optimizations, incremental sync in big rooms (rooms with >3k members) went from 1.3s to 13 ms, (100x improvement)

Thanks to Famedly and everyone who supports me on Liberapay or Bitcoin!

Synapse

Synapse is a popular homeserver written in Python.

callahad said:

FOSDEM is tomorrow! We're all very excited to be powering the fosdem.org homeserver, and we hope you'll join in over the weekend.

Earlier this week we released Synapse 1.27.0rc1, though the final release is currently blocked on resolving a regression in Synapse 1.26 (#9264) which could cause logins to fail if your public_baseurl was unset in your Synapse configuration. The workaround is to ensure that value is correctly set for your deployment.

Otherwise, we're quite excited to get 1.27 out the door, as it:

  • Solves an issue (#9172) where federation senders could take many minutes to catch up after restarts.

  • Contains countless improvements to our support for social login methods, many of which will be live for FOSDEM users this weekend.

We've also included the usual host of bug fixes and Admin API additions, but more on those when the actual release happens. You can preview the release notes on GitHub.

See you at FOSDEM!

Dept of Bridges 🌉

mautrix-imessage

Tulir announced:

My iMessage bridge is starting to be usable now. Text and files work in both directions and tapbacks and replies work iMessage->Matrix. Currently it only supports running on a Mac, the iOS option will come later. The bridge doesn't require opening ports to the Mac, it uses a simple proxy that turns the usual HTTP appservice transactions into a websocket instead.

The bridge itself can be found at https://github.com/tulir/mautrix-imessage and the websocket proxy is at https://github.com/tulir/mautrix-wsproxy. The Matrix room is #imessage:maunium.net

mautrix-signal

Tulir told us:

I made the first release for mautrix-signal. No particular reason, but it's v0.1.0 now. Recent changes include:

  • Better profile syncing (Signal profile names should sync when restarting)

  • Support for Signal profile avatars

  • Support for bridging stickers from Signal

Gitter

Eric Eastwood said:

FOSDEM is happening this weekend! Come see our FOSDEM talk in the Real Time Communications track on Saturday around how we made Gitter speak Matrix and how you can add Matrix support to your own app: https://fosdem.org/2021/schedule/event/matrix_gitter/

*--

We're also working on MSC2716 to support backfilling the massive archive of historical messages on Gitter over on Matrix. We're prototyping the MSC on Synapse and have a suite of Complement tests to verify that the homeserver implementation is working according to the specification.

The DAG visualization (made with TARDIS) shows that we're inserting messages 1-3 between A and B:

2021-02-05-qytMG-106591475-f094ce00-6513-11eb-8022-d9df1a229edc.png

matrix-appservice-irc reaches 0.24.0-rc1

Half-Shot said:

Another release! Wow. We're also testing 0.24.0-rc1 which has quite a few big ticket items this week. Off the top of the list is a new command to !plumb rooms dynamically in admin rooms, provided you have permissions in the bridge (happy days self hosters!). We've also added the feature to warn if your messages don't get through in your admin room. Finally, there are a bunch of small bug fixes and one large one that should make the bridge much more resistant to netsplits, so that it should recover in a much safer way should it get hit by a ton of traffic. Please test, and if all goes well the formal release will be out next week!

https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.24.0-rc1

matrix-appservice-slack hits 1.7.0-rc1

Half-Shot announced:

Happy friday bridge users! Today we're releasing 1.7.0-rc1 of the Slack bridge which contains some more critical encryption fixes for our experimental encrypted rooms support. We've also fixed a few serious bugs where DMs would not be persisted to the database in some cases. Please test, and let us know how you get on!

https://github.com/matrix-org/matrix-appservice-slack/releases/tag/1.7.0-rc1

Dept of Clients 📱

FluffyChat

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

krille announced:

FluffyChat has been approved for the iOS AppStore! Thanks to benpa and matrix.org for the help with this! You guys are awesome!

https://apps.apple.com/de/app/fluffychat/id1551469600​

Fluffychat F-Droid

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

MTRNord told us:

Fluffychat Fdroid now also has a nightly repository: https://fluffychat.im/en/fdroid.html

It gets a new update on each commit, offers fast access to new features, but at the same time is less stable than the normal fdroid repository.

Check it out at: https://fluffychat.im/en/fdroid.html

In case of issues open a issue at: https://gitlab.com/famedly/fluffychat/-/issues To directly try it use: fdroidrepos://nightly.fdroid.fluffychat.im/?fingerprint=21A469657300576478B623DF99D8EB889A80BCD939ACA60A4074741BEAEC397D as a direct way of adding the repo if you have fdroid already installed

Syphon updated

ereio said:

It's been a little over 6 months since I've posted an update for Syphon in TWIM, but a lot has changed since then! There

have been several releases since and a lot of groundwork to get the client further out of Alpha. We've also had people start to contribute in various ways, including with PRs, and I can't thank people enough for all their hard work and support.

Big thanks to TR_SLimey whose contributions went out in this release! All that said, I'll try to give updates here more often.

Version 0.1.6 was just released this week and includes:

New Features:

  • SSO Login & Signup

  • Reactions / Emoji Support 🎉

  • View Edited Messages (Condensed)

  • Swipe To Reply

  • Cross Server Room/Topic Search

  • Forgot / Reset Password Flow

Performance

  • More caching and cold storage saving/loading improvements

  • Parsing all matrix data from separate threads

Bug Fixes

  • fixed e2ee decryption issue - cache related

  • fixed read receipt bugs

  • fixed various caching performance issues

  • fixed failed syncing on most self-hosted homeservers

  • fixed settings permanence issues

  • fixed new direct chat with invalid user_ids

Since it's been a while, if anyone has any feedback, questions, or concerns, feel free to chat in the #syphon:matrix.org room, message me @ereio:matrix.org, or email me at [email protected].

https://github.com/syphon-org/syphon

If you'd like to help out with the project in any way, just ask. We'd love to have your support 😃

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

red_sky☄️ offered:

Nheko now has an optional privacy screen! The timeline will optionally blur when the nheko window loses focus. The timeout for when the blur effect should be applied is configurable in a number of seconds between 0 and 3600 (1 hour).

Nico (@deepbluev7:neko.dev) added:

Cheers, some update probably mentioned it already, but FOSDEM is near. Make sure to check out the Matrix stand! RedSky and I (Nico) will probably be there at some random times as well as other cool people from the Matrix-verse! We even made a small promo video about Nheko!

In other news, lorendb extended the drop zone for media to the full timeline, the privacy screen got merged, some more emojis should now display properly, you can now change your avatar and displayname globally or per room and clicking a matrix link in your browser should now actually open the link in Nheko (we were missing the %u in the .desktop file).

That's all, see you at FOSDEM!

Frost

fabian offered:

I have been learning about matrix the last few months. The result of that is frost a very basic GUI matrix client written in Go using Gio and a CS library. Highlights of the project so far are:

  • Works on Linux, Windows, macOS and Android (although I only test on Linux and often break the other platforms)

  • Should work on WASM and iOS with not too much effort

  • Very, very limited E2EE support. (If the session is manually verified by other clients, events can be encrypted and decrypted.

  • Library that handles storage, encryption and some other things with a opinionated but simple to use (I hope) interface.

I started this project to understand matrix and improve my Go skills (which are not that great) and if somebody wants to play around with it and give me some feedback on it, I would very much appreciate it. Meet me in #frost-dev:intothecyber.space

Fractal

Alexandre Franke reported:

Former GSoC intern and long time Fractal contributor Julian Sparber started on Monday working full time on Fractal thanks to a grant from NlNet. He is funded for the next six months and we’re looking forward to all the amazing work he will do. You can read more details on his blog.

and then, Alexandre Franke reappeared:

Apart from that grant, we’ve done a fair chunk of work since the previous piece of news two months ago. Here are the highlights:

Don’t believe me? Well, go try out our nightly flatpak build!

2021-02-05-hedvP-image.png

Konheko

Nico (@deepbluev7:neko.dev) said:

I've updated my Sailfish client to the API changes in the latest Sailfish early access release. You will need to install the new version on Sailfish 4.0.1.45, since some private APIs got removed. No functional changes though (I hope).

NeoChat

Carl Schwan reported:

NeoChat is continuing to make progress. First of all Tobias, Nicolas and Hannah have been working on packaging NeoChat for many platforms. We now have nightly builds for Android, Windows, macOS, AppImages and Flatpak. There is still work to be done to improve the quality of the builds and fixing some platform incompatibility bugs. Nicolas has also been working on optimizing the performance and the RAM usage, fixing a few bottlenecks. Tobias finally landed his big revamp of the login flow and we now support login using single sign-on. Myself (Carl) worked on E2EE support in NeoChat and Quotient. This week we finished our Qt bindings for libOlm and started adding device key tracking and more!

2021-02-05-iNCYz-image.png

Dept of Bots 🤖

Timetracking Bot

MTRNord offered:

3 Hotfixes for the timetracking bot:

v0.4.1

Fixes

  • Make sure !version correctly gets build on CI

  • Make sure we compare to local UTC::now

  • Check for arg len in stats command

  • Sanitize input arguments before parsing them

Refactoring

  • Use https://github.com/MTRNord/mrsbfh framework

v0.4.2

Fixes

  • Make tests compile again

  • Descriptions without explicit time now accept again more than just the first word

Features

  • !stats assumes out now if out is still missing for the last entry

v0.4.3

Fixes

  • Ensure that the tests compile always reliable

Hemppa

Hemppa the Bot is a multipurpose bot for writing modules super easily in Python.

Cos reported:

Hemppa the bot is a general purpose bot for writing modules as easily as possible in Python. This week Hemppa got new module that can be used for hackerspace asset management using Github issues and special labels. In practice it can figure out which machines are working or broken and also list issues per physical space. Creating issues with proper labels and other extra features to come soon. https://github.com/vranki/hemppa / #hemppa:hacklab.fi

Dept of Interesting Projects 🛰️

MatrixFS

Ananace told us:

Since there was talk about it, I went through and updated / cleaned up the MatrixFS code a bit; Got it working with tail -f (and probably other applications that poll based on mtime/size changes), added a GC that drops unaccessed data from memory after a while, and reduced the communication overhead slightly

Matrix in the News 📰

Element Android: interesting times

Element Android had a fun time last weekend, getting temporarily removed from the Play Store. Google were somewhat responsive in getting it back up though, and overall Matrix received a nice boost of attention from the tech press as a result!

Gizmodo, ArsTechnica, Engadget, Next INpact, Android Police and Protocol all posted sympathetic coverage of the situation.

Dept of Sadness ☹️

Daydream

MTRNord said:

After a long time of no message from it I am officially ending that project.

The Code probably will stay up but it will not get revived by me. Feel free to fork it however.

Sourcecode can be found at https://github.com/daydream-mx/

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1vdhlogintest.matrix.org377.5
2nicoll.xyz429
3envs.net431
4mchus.pro569
5weimann.digital624
6kif.rocks689
7fje.cz696
8aria-net.org696
9fairydust.space724
10jel-tech.com797

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-01-29

29.01.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Dept of Status of Matrix 🌡️

Christian Bruchatz created this map of currently live Matrix instances at German-ish universities!

The map is growing... after being published, more and more universities signal they also use Matrix... https://doc.matrix.tu-dresden.de/images/federation_map.svg within https://doc.matrix.tu-dresden.de/en/why/

2021-01-29-YevH--image.png

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

  • There were no new MSCs this week.

Spec Core Team

As announced last week, we're now using the Spec Core Team Backlog board to communicate progress. Check it out if you haven't seen it yet, and ask questions in #matrix-spec:matrix.org if you have any 🙂

2021-01-29-QpAp6-stacked_area_chart.png

Dept of Servers 🏢

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

One week 'til FOSDEM!

In addition to several talks specifically about Matrix, Synapse's own Brendan Abolivier will be speaking in the Community devroom on Mental health and free software: What I wish I’d been told before I got into free software, and more. Check it out!

We're also excited to announce Synapse 1.26.0's release! As mentioned last week, the two biggest new features are a faster algorithm for state resolution and initial support for enabling multiple OpenID Connect providers. Additionally, we've sped up redaction in large rooms and made it possible to run more APIs on workers. See the full changelog for details.

We expect to publish a release candidate for 1.27.0 early next week, but we're trying to be conservative about large changes ahead of FOSDEM, so knocking — which is coming! — will have to wait until 1.28.0... 🚪

Dendrite 0.3.8

Dendrite 0.3.8 was released this week! Simple changelog this time:

A well-known lookup regression in version 0.3.7 has been fixed

Homeserver Deployment 📥️

Kubernetes

Ananace announced:

Just released the 1.26.0 version of the K8s-optimized image and chart.

(Not sure how this message will do though, been down the last few days for a database upgrade)

Success: the message did great!

Dept of Bridges 🌉

matrix-appservice-bridge arrives at 2.5.0-rc1

Half-Shot announced:

Hey folks! It's been a while since we've had an update but things are always manic at bridge HQ. This release is a bit of a whopper containing quite a few bugfixes (including improvements to the experimental encrypted bridge support). We've also updated to Typescript 4.1 which is a bit stricter on those promise return types. Finally, you can now create intents on the bridge and use it's components without starting the HTTP listener which has been a longstanding issue for as long as I've been maintaining.

So go out there and test this release, all going well we should 🚢 early next week!

If only you knew what else this guy was working on. More to be shared soon-ish. I hope!

Dept of Clients 📱

FluffyChat

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

krille said:

FluffyChat 0.26.1 has been released today with updated translations, support for Unified Push (https://github.com/UnifiedPush/) and some bug fixes. The Linux Desktop version is fully functional again and the app is much more stable than ever now. We are working hard to bring FluffyChat to the official iOS AppStore next week! :-)

I reinstalled Fluffychat this week as I attempted to support some less-technically-minded friends, and was VERY impressed. If you've tried FluffyChat in the past but missed recent versions I suggest you have another go.

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) said:

On Wednesday we released version 0.8.1 of Nheko! It's mostly a bugfix release of 0.8.0, but it does bring some new features here and there:

[0.8.1] -- 2021-01-27

Features

  • /plain and /md commands to override the current markdown setting. (contributed by lorendb)

  • Allow persistent hiding of rooms with a specific tag (or from a community) via a context menu.

  • Allow open media messages in an external program immediately. (contributed by rnhmjoj)

Improvements

  • Use async dbus connection for notifications. (contributed by lorendb)

  • Update Hungarian translations. (contributed by maxigaz)

  • Update Finnish translations. (contributed by Priit)

  • Update Malayalam translations. (contributed by vachan-maker)

  • Update Dutch translations. (contributed by Glael)

  • Store splitter size across restarts.

  • Add a border around the completer. (contributed by lorendb)

  • Request keys for messages with unknown message indices (once per restart, when they are shown).

  • Move the database location to XDG_DATA_DIR. (contributed by rnhmjoj)

  • Reload the timeline after key backup import.

  • Autoclose completer on space, when there are no matches.

  • Make completer only react, when the mouse cursor is moved.

Bugfixes

  • Fix unhandled exception, when a device has no keys.

  • Fix some cmake warnings regarding GNUInstallDirs.

  • Fix tags being broken. If you have no tags showing up, you may want to logout and login again.

  • Fix versionOk being called on the wrong thread. (contributed by Jedi18)

  • Fix font tags showing up in media message filenames.

  • Fix user profile in dark themes showing the wrong colors. (contributed by lorendb)

  • Fix emoji category switching on old Qt versions. (contributed by lorendb)

  • Fix old messages being replayed after a limited timeline.

  • Fix empty secrets being returned from the wallet breaking verification.

  • Make matrix link chat invites create a direct chat.

  • Fix focus handling on room change or reply button clicks.

  • Fix username completion deleting the character before it.

Flathub and other repo updates may take a bit, but in the mean time you can try building it yourself or one of our provided stable downloads. Thank you for all the feedback so far and I'm glad a lot of people seem to be enjoying it so far! All the feedback, bugfixes and issues you provided certainly will help improving Nheko for everyone!

Then, later...

Apart from the current releases, we have a few things cooking right now:

Edits

Yes, I have tried to avoid them for long, but I am finally working on it. It's a bit different to how Element and others do it, but it also generates a fallback to be compatible with the current MSCs where possible. I've grown a bit tired of having to explain myself everytime, why I did not want to support edits (yet), so I'm experimenting with a few solutions now. Expect a blog post summarizing those experiments in the future and maybe an MSC.

Polish

Jedi18 and LorenDB are both busy polishing up the rough corners in Nheko, like finally being able to set your username and avatar in the UI as well as being able to copy text via right click, jdenticons and other fancy stuff. We also had a few contributions in the last release, which should improve the UX a lot.

GSoC

Furthermore we will be participating in GSoC (if matrix.org gets accepted) and will probably mentor a student, that implements a few of the smaller features, which users may be missing after using Element for long.

I think that is all I wanted to share. I hope you enjoy the release and if you have any issues or feature requests, tell us in #nheko:nheko.im or open an issue on Github!

Quaternion

kitsune announced:

Since the project is already fairly rich in features, I decided that it's timely (some would say - way overdue) to bump up the version a bit. In that light, the next Quaternion beta is numbered 0.0.95 beta 3 (no four-number version any more) and it's out now! Release notes list notable changes since (0.0.9.5) beta 2, with two most significant being ability to enter messages in Markdown and the overhauled timeline that allows you to easily discern between already read and yet unread messages and also quickly scroll to the read marker.

2021-01-29-KtwNn-Screenshotfrom2021-01-2621-15-53.png

Element

Neil reported on behalf of the teams:

Delight

  • Social Login

    • Final polishing and bug hunting across all platforms. We are targeting 5 options to begin with (Gitlab, Github, Facebook, Google and Apple) and will hopefully be ready to start setting these up on homeservers next week.
  • Spaces

    • Lots of polishing on Element web, you can get all the latest in the matrix live demo session next week!

VoIP

  • Added some debugging to web to help debug call connectivity failures

  • Fixed a compatibility regression in web with voip v0 clients (ie. element android / ios) - d’oh!

  • Android: work on getting call audio routing correct on various different devices

  • Design coming up to speed to support on implementation and ongoing UI improvements

  • iOS on holiday

Web

  • Off cycle 1.7.18 release for VoIP compat bug

  • Various tweaks to prepare for FOSDEM

  • Element Web 1.7.19-rc.1 is now available at https://staging.element.io, including:

    • Allowed guest users to see widgets

    • Standardised security terminology to reduce confusion

    • Added ability to pin widgets for everyone in the room

iOS

  • We made several iterations since the last App Store release (1.1.3) but Element-iOS 1.1.6 is now in the store.

  • We made some improvements to use less RAM in the background sync module that manages push notifications.

  • We continued to improve performance in E2EE to speed up message sending using pre-sharing keys and re-sharing keys methods. Element-iOS now automatically rejects share requests from not verified devices. It does not send anymore such requests if it is not verified.

Android

  • We are working on improving the initial /sync management. The first objective is to reduce RAM usage. Then, we will improve the time to display the room list.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte told us:

In the last two weeks,

Also, @jamtwister imported a bunch of endpoints from @florianjacob's synadminctl into synapse-admin-api.

State Resolution

It's been a really long time since an update on ruma/state-res but work has continued!

  • Thanks to a push from @gnieto the state-res crate no longer has its own PDU type, we are now using a trait.

Conduit continues its use of state-res, which has helped workout the kinks and buggy bits.

Dept of Interesting Projects 🛰️

Keymaker

MTRNord told us:

Just a small dev update on things that currently happen over at the Serverlist project "Keymaker" and its companion bot.

Follow it in detail at #serverlist:nordgedanken.dev or https://github.com/keymaker-mx/

  • The registration bot finally is starting to get its admin backend -> The registration probably happens in a few weeks from now

  • Keymaker has now a admin login page (using matrix as auth provider) to allow a web UI for admins to manage servers (WIP)

  • The bot successfully writes servers upon registration to the database. This is the main task of the bot besides the capability to administrate the page using the page

  • The bot now is able to be used by admins in an admin room which also gets notifications if a user registered a new server.

Matrix in the News 📰

Beeper has continued to make headlines, and is now being reported around the world:

Andy announced:

Beeper was mentioned in one of the two biggest argentinian newspapers! 😮🙌 https://www.lanacion.com.ar/tecnologia/todo-en-uno-este-es-beeper-el-chat-universal-que-promete-usar-whatsapp-signal-y-telegram-en-un-solo-nid22012021/

There was a pause, as we wondered how the other biggest Argentinian newspaper would react, and it was worth the wait! Andy soon announced:

And now the other biggest newspaper of Argentina wrote an article about Beeper (Matrix is mentioned about half-through the article)!

https://www.clarin.com/tecnologia/beeper-app-mensajeria-unifica-chats-whatsapp-telegram-signal-instagram_0_1bX5iXnxw.html

Anything that goes in Argentina is sure to make waves in Poland, and so it was that Polish media picked up on the story.

TR_SLimey reported:

Beeper has made it to Polish media too, guys :P

https://spidersweb.pl/2021/01/beeper-imessage-na-androidzie.html

The title: "A new multi-messaging platform has arrived. It's creators will send you an old iPhone so you can even use iMessage"

Final Thoughts 💭

Discussing the sharing of code and ideas with Tobias from NeoChat, Nico (@deepbluev7:neko.dev) said:

There really is no stealing, it's more helping each other out and improving things for everyone, users and developers alike. We are not corporations competing, we are one free software community :3

Which I thought was very astute, and decided to include here.

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1imninja.net428
2envs.net437
3helderferreira.io557
4casavant.org605
5aria-net.org635.5
6chat.bobrtc.tel723.5
7feneas.org724
8nuclearlemons.uk805
9t2l.io855
10matrix.sp-codes.de885

That's all I know 🏁

It's FOSDEM next weekend, and we are manically preparing for it. Should be a good one!

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

This Week in Matrix 2021-01-22

22.01.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Dept of Status of Matrix 🌡️

Beeper launched

Eric Migicovsky announced:

NovaChat is now

Beeper

  • New website! beeperhq.com. Beeper is a Matrix server+client combo preconfigured with 12+ bridges. Our mission is to bring a lot of new users into the Matrix ecosystem and give them a fast and powerful client to message people on all networks. Beeper is a paid subscription service, but since all the bridges are open source, you can set the whole system up yourself for free if you choose

  • We're doing a lot of work to boost bridge reliability. Beeper now comes with bridges to Signal, Whatsapp, FB, Slack, Skype, Telegram, Instagram, Hangouts, Twitter, Discord. iMessage coming within a week or two.

  • Sneak peek below of our upcoming desktop UI

Looking for contract work?

  • We are offering bounties of $500-2,000 USD to build new open source bridges based on tulir's mautrix-python or mautrix-go libraries. In particular, we would love to commission Linkedin, MS Teams, Google Chat, GroupMe, WeChat, Snapchat (maybe run it in Anbox?), Line and Email (gmail specifically) bridges.

  • We are also looking for contract iOS and Android developers familiar with the Element codebase to reskin the app with our new UI. Part-time roles with potential for full time.

  • If you're interested, please send me a DM @eric:beeperhq.com

2021-01-22-KJ5nT-room.png

GSOC 2021

Google Summer of Code has come around again! Last year was really successful for Matrix: six projects, with members of the community coming forward to mentor students for their project. This year there is a slight tweak to the formula: the projects will now be 175 hours, rather than the traditional 350, over the summer.

Since we need to submit an application to Google within the next few weeks, I have a request: if you admin a Matrix-related Open Source project and would like to have a student work with you over the summer, get involved!

How to do this:

  • Read Google's own documentation on the setup. This is fairly thorough, and should get you most of the way there.

  • Think about a task, that you consider a student should be able to contribute to your project over a 10-week/175-hour period. Try to come up with 2-3 of these.

    • It should be a well-defined feature that genuinely contributes to the progress of your project, but maybe doesn't block other work on the critical path.
    • This is a very important step, and one that may need some time and discussion.
  • DM me (@benpa:bpulse.org) and we'll talk about next steps.

Dept of Spec 📜

kitsune (aka "fox-avatar guy") reported:

Matrix URI scheme proposal has FCP proposed now - if any of you, the readers of this, have anything to say about it that wasn't said in the past 2 years, speak soon or forever hold your peace. (Ok, you're allowed to write a separate MSC if you come late with revelations.)

This has been an labour of love for kitsune, kudos on his perseverance!

Spec

anoa said:

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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

We've decided to ditch the focus as it was clear that it wasn't a great indicator of progress. Once one team member has reviewed all of the focus items, they will move on to other MSCs. None of that work is reflected in the focus, and items in there often stick around while waiting on a small number of people to complete work on.

As such, we'd instead like to direct people to the Spec Core Team Backlog board, which is a better representation of the current state of things. And of course the weekly list of MSCs state changes above.

2021-01-22-VYFRA-stacked_area_chart.png

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander told us:

At the beginning of this week we released Dendrite 0.3.6, which included a number of refactors in the sync API and a selection of fixes. It is also the first version to be released with multi-arch Docker images with ARMv7/ARM64 targets.

Since then, the following changes have been merged:

  • Sync filtering support for event types, senders as well as better-supported limits

  • Federation support for MSC2946 (Spaces Summary)

  • Fixed a bug where large well-known files could consume a lot of memory

  • Support for in-process DNS caching for federation traffic (although it is disabled by default)

  • Some preparatory work for tracking the most recent membership states in the sync API for future history visibility work

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is at:

  • Client-server APIs: 60%, up from 58% last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

twim:

Synapse

🎉 Synapse 1.26.0rc1 is here!

☠️ But don't install it yet; wait for rc2.

A few issues were reported with rc1 (#9187, #9193, #9208), and we'll issue an rc2 early next week once we're confident they've been resolved.

Otherwise, once 1.26.0 is released you can look forward to a new algorithm for calculating auth chain difference in v2 State Resolution which should significantly speed up some of the most expensive state resolution calculations (#8622).

We've also dramatically improved the performance of redactions in large rooms, helping Synapse's moderation tools scale to communities of any size (#9022). And speaking of scaling, Synapse 1.26 makes it possible to offload many different APIs to worker processes, including read receipts and account data persistence.

Lastly, Synapse 1.26 will include support for multiple Single Sign-On Identity providers, though we expect further fit-and-finish for that feature to land in 1.27.

You can preview the changelog and upgrade notes now, but remember: wait for rc2! 😉

Dept of Bridges 🌉

mautrix-facebook

Tulir said:

The switch to acting as a mobile app I mentioned last week has been merged and it's starting to be clear that it works better. So far logging in has worked fine for everyone at least after enabling 2FA.

Changes this week mostly included tons of bugfixes (thanks to everyone who already updated and found the bugs) and re-adding some old features like read receipt bridging. The SQLite migration script now exists too. Upgrade instructions can be found at https://github.com/tulir/mautrix-facebook/wiki/Upgrading-to-v0.2.0

Dept of Clients 📱

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 (@deepbluev7:neko.dev) told us:

Cheers everyone! On Wednesday we released version 0.8.0 of Nheko! The changelog is far too long, because so many people contributed (and it has been a while since the last release), so I'll just put some highlights here!

Highlights

  • Voice and Video Calls (contributed by trilene)

    • Call your friends right from within Nheko.

    • Use your camera if you want them to see your face!

    • This requires a somewhat new gstreamer, so our builds don't support it on all platforms yet.

  • Cross-Signing and Device/User Verification (contributed by Chethan)

    • Verify who you are talking to!

    • Ensure no malicious people eavesdrop on you!

    • Enable your connected devices to access key backup and your friends to see, which of your devices you trust!

    • Show devices in a users profile.

  • Separate profiles (contributed by lorendb)

    • Run multiple Nheko instances with separate profiles side by side.
    • Use multiple accounts at the same time in separate windows.

Features

  • Before a call select which audio device to use. (contributed by trilene)

  • Auto request unknown keys from your own devices.

  • Add a command to clear the timeline and reload it. (/clear-timeline).

  • Add a command to rotate the outbound megolm session. (/rotate-megolm-session).

  • React to messages instead of replying with arbitrary strings using /react.

  • Inline emoji and user completers. (contributed by Lurkki)

  • Show filename on hover over an image. (contributed by kamathmanu)

  • Mobile mode, that disables text selection and changes some dialogs.

  • Allow sending text after a /shrug command. (contributed by MayeulC)

  • Allow selecting a ringtone. (contributed by trilene)

  • View avatars fullscreen. (contributed by kamathmanu)

  • Request or download cross signing secrets in the settings.

  • Support 'matrix:' URIs. This works in app on all platforms and on Linux Nheko may be opened by clicking a 'matrix:' link.

  • Support inline replies on notifications on Linux.

Packaging is currently in progress, but it will probably take a bit. In the mean time you can download the release from here: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.8.0

Please tell us, what you think and report bugs as you find them! And thanks again to all the contributors! It was a great pleasure to work with you and you really made an impact!

Over and out, the Nheko team!

Adrien added:

https://tracker.debian.org/news/1222370/accepted-nheko-080-1-source-into-unstable/
Nheko 0.8.0 was in Debian before TWIM.

❤️ for the packagers!

fluffychat 0.25.0

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

krille said:

fluffychat 0.25.0 is out with a lot of bug fixes, improvements, minor design tweaks and a new 3 column layout. iOS will skip this release until we can bring it to the AppStore next week or so

2021-01-22-Ctpne-bildschirmfotovon2021-01-1620-52-22.png

Element for Nextcloud

Gary Kim said:

Element for Nextcloud v0.6.19 has now been released. The new update contains fixes for Single sign-on users, the ability for admins to easily show or hide the labs settings, and an update to Element Web v1.7.17.

P.S. This will be the last version to support Nextcloud 17 and 18 if you're still on those versions.

Element Web instance on IPFS

TR_SLimey announced:

I've set up an Element Web instance on IPFS, which means that now, not even Matrix client downloads can be blocked - censorship resistance at its finest :P

It can be found at:

or

Element Clients

Updates supplied by the Teams

Web

  • Various widget related improvements
  • Changed guest access to uniformly only allow read access for now
  • Improved CI runtime when testing PRs

iOS

The release we built last week has been blocked due to push notifications issues. We are still on the case On the e2ee side, we have been working on an optimisation for the key re-share mechanism

Dept of SDKs and Frameworks 🧰

caridina, Crystal library

erdnaxeli reported:

Today a present you a Matrix client library I've been working for the last few months: caridina.

It is a Crystal library. Currently for reading it implements the sync API and supports the events to do text messaging (all state events + m.room.message). For writing it provides methods to send messages, edit them, and send receipts and typing notifications.

While I would not recommend this library to write a full featured client, it is enough to write a simple text bot. I currently use it for some of my own projects. The README provides some examples of how to use the library.

Feel free to try it, report bugs, ask for missing features if you need them or even contribute!

libkazv (and the Kazv Project)

tusooa reported:

libkazv is a sans-io C++ (gnu++17) client library

built upon lager. Along with it there is kazv, a kirigami/qml client, and a

forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz.

Features

(Copying from readme:)

  • Logging in

  • Receiving room states

  • Receiving room messages

  • Receiving account data

  • Receiving presence

  • Sending messages

  • Send room state events

  • Create rooms

  • Room invites

  • Join rooms

  • Typing notifications

  • Receipts and fully-read markers

  • Leaving and forgetting rooms

  • Content repository

  • Send-to-device messages

  • E2EE (send and receive events only)

What goes here?

This week we ("tusooa and her longcat," we hope someday we can remove this annotation :P)

implemented sending and receiving encrypted events in rooms. Check a demo video below:

Opsdroid

Cadair said:

TWIM:

opsdroid

opsdroid is an easy to use chat-ops framework with excellent Matrix support.

0.20 Release

This week opsdroid released version 0.20. This is a massive release that's been a long time coming because of a complete rewrite of the internals of the matrix connector to use matrix-nio---thanks to @awesome-michael for the initial work on this.

Having ported the connector to nio, our GSOC student @Tyagdit got to work polishing the nio port and reimplementing the matrix database module in the core opsdroid library. Opsdroid has a concept of memory which is a key-value store which can be backed my many different kinds of databases. The matrix database stores the opsdroid memory in room state, meaning your bot's database and messages are all stored in the same place.

Finally, the other big feature added to the matrix support in this release is End to End Encryption support. Thanks to using matrix-nio as our matrix library it was possible to implement support for encrypted matrix rooms. This also includes support in the matrix database for encrypted memory which works by referencing event ids in room state (see here for more info). As this is the first release to support E2EE I would still consider it "beta"; please open issues if you have any trouble using it.

Highlights

  • End to End Encryption support in the Matrix connector.

  • Matrix database now included in core, with e2ee support.

  • Use of Python's install "extras" to allow for installations with fewer packages.

  • Improved documentation of the matrix connector and database (at least a little).

  • Support for Python 3.9 (and dropped support for 3.6).

Checkout the full release notes for all the gory details.

If you have any questions or want to get involved come say hi in #opsdroid:matrix.org, raise an issue on GitHub and checkout the docs.

trixnity (kotlin) progress

Benedict said:

A little sneak peek from trixnity, a crossplatform Matrix SDK. Currently I have some issues with ktor, which breaks my serialization.

trixnity

quotient

kitsune reported:

libQuotient has initiated transition from LGPL 2.1 to LGPL 3 as its distribution license. This is partially driven by the fact that newer Qt is (mostly) distributed under LGPL 3 so the "combined work" (legalese for libQuotient including and linked with specific Qt pieces) would be covered by LGPL 3 anyway. Boring, right?

kitsune added:

Those looking at my contributions to Quotient might have noticed the change of the primary committer's name. Don't fret, this is still me, I just shed the pseudonym (and those who've seen the interview knew my real name already).

Watch "the interview" here, where we discuss (then) progress on MSC2312 (mentioned earlier), and plenty more.

Dept of Ops 🛠

Matrix Corporal

matrix-corporal manages your Matrix server according to a configuration policy

Slavi reported:

Version 2.0 of matrix-corporal has been released.

It's a huge release bringing many improvements (read all of it in the release notes).

Here's a short summary:

  • an Event Hooks system has been introduced, so matrix-corporal can now also act like a "generic firewall" (similar to what mxgwd was doing)

  • device-free login is now used when impersonating users (thanks to a new API introduced by Synapse v1.24.0) - this is both faster and more resilient.

  • support for Interactive Authentication (and thus, End-to-End-Encryption) has been added. Users can now set up E2EE keys, manage devices, etc. (actions that require Interactive Authentication and were previously broken). Requires cooperation between matrix-corporal and the REST auth password provider module.

  • End-to-End-Encryption control. matrix-corporal can enforce whether rooms that users create are encrypted or unencrypted. You can force-disable or force-enable encryption for locally-created rooms.

  • fixes user-creation regression that happened with Synapse v1.24.0. matrix-corporal v1.12.0 is also out, with a backport of this fix (for users who don't want to jump to 2.0 yet).

Dept of Interesting Projects 🛰️

Matrix Notepad

KB1RD reported:

  • It's not dead! yet

  • There's been some code refactoring on the algorithm. Mainly, the search tree used has been split into a different package

  • I'm working on porting the Notepad to the new widget API. Ongoing work is on the nextgen branch and is tracked by this project. The widget is currently blocked on some stuff in the widget API, so I probably won't be releasing soon. The code in there needs a ton refactoring, too.

  • This means that the old notepad client will disappear on the next release and you'll need to add a widget for the Notepad for any documents that you want to edit. Currently, this means you would have to use Element, but I heard Ditto just might be doing some widget work

  • The widget API is planned to do everything and more that my "mxapps" project was supposed to do, so that project will be deprecated in favor of using the widget API

  • There's also a little demo/teaser video showing the old notepad talking to the new one. You can see the rate limiting issues that the Notepad hits there, which is on my todo list.

Dept of Guides 🧭

Superb documentation from TU Dresden, as they roll out their deployment

Marvin Dropp said:

doc.matrix.tu-dresden.de

We set up a bilingual (de, en) documentation for all of our university members, to help them get in touch with our matrix instance easily. This documentation is rich on screenshots, simple explanations and will be improved continuously.

Also we mirroring the documentation to GitHub to provide access of our sources to everyone.

(https://github.com/matrix-tu-dresden-de/Dokumentation)

We would appreciate to add further institutions of higher education with own matrix instances to our list.

Viva la federation!

Christian Bruchatz shared some additional context about their deployment growth:

2021-01-22-wC6rz-image.png

Watch Matrix Live (at the top) this week for a chat with Marvin and Christian.

Deploying a Matrix server on Fedora CoreOS, from fedoramagazine.org

Andy announced:

I couldn't find if someone else shared this, but Fedora just published an article about deploying a Matrix server on Fedora CoreOS.

https://fedoramagazine.org/deploy-your-own-matrix-server-on-fedora-coreos/

Matrix in the News 📰

EMS-Slack Bridge coverage

kim ([email protected]) told us:

EMS-Slack Bridge (matrix-appservice-slack) in German IT news

https://www.heise.de/news/Dezentraler-Firmenchat-mit-Slack-und-Matrix-5030856.html

The launch was also mentioned in The Register, in the UK. I used to read the Register every day...

Beeper news coverage

Beeper has had substantial coverage on their launch, much of it focused especially on the iMessage bridging feature. Some articles are linked below:

  • https://www.golem.de/news/beeper-universelle-chat-app-startet-betaversion-2101-153605.html
  • https://www.heise.de/news/Beeper-Chat-App-will-15-Messenger-in-einem-Interface-vereinen-5032049.html
  • https://hothardware.com/news/beeper-app-imessage-android-routing-trickery
  • https://www.macrumors.com/2021/01/21/beeper-brings-imessage-to-android-and-windows/
  • https://9to5google.com/2021/01/21/beeper-app-pebble-founder-imessage-android/
  • https://www.theverge.com/2021/1/21/22242143/beeper-universal-chat-app-imessage-whatsapp-signal-telegram-pebble-founder
  • https://www.protocol.com/beeper-messaging-app

Lots of people helped collect these links in #TWIM:matrix.org, thanks all!

Final Thoughts 💭

sorunome offered:

today is the four year m.anniversary of the @sorunome:sorunome.de account! 🎉

Some interesting reads of the last few days:

Cos announced:

btw i forgot to TWIM that there was once again long Matrix article in Finnish computer culture paper magazine Skrolli. December issue.

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net429.5
2maescool.be433
3midov.pl473
4juniorjpdj.pl545.5
5kawaiilo.li650.5
6fab.network768
7matrix.thedisco.zone810
8matrix.sp-codes.de843
9dendrite.neilalexander.dev976.5
10aria-net.org1111

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-01-15

15.01.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Neil Alexander announced:

Earlier this week we released Dendrite 0.3.5, our first release of 2021, which includes a fairly significant refactor of parts of the sync API, along with other fixes. More work has since been merged into master too.

Changes in the last two weeks include:

  • Sync streams are now logically separate, with a lot of behaviour fixed

  • Forward extremities are now deep-checked properly, which should significantly reduce the peaks of CPU and RAM when handling the current room state

  • Pagination tokens in /messages have been fixed, which should improve the reliability of scrolling back in the timeline

  • A number of fixes have been made to the /sync response, largely avoiding nulls, which should make some clients happier

  • Send-to-device messaging has been refactored, which should improve E2EE stability

  • Well-known/DNS records for federated servers are now cached rather than performing lots of lookups, speeding up outbound federation

  • Device list requests to remote servers now time out quicker, so as to not block /send transactions

  • Experimental support for MSC2946 has been merged (gated behind the mscs configuration)

  • Request context is no longer reused for /send, which should help in cases where the remote sending server gives up waiting or the connection breaks

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is at:

  • Client-server APIs: 58%

  • Server-server APIs: 83%

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

I asked:

Can you explain something: Dendrite federation is basically working fine, AIUI, what does it mean that Server-server APIs is <100%?

Neil helpfully replied:

There are still some edge-case tests that we haven't got passing yet, but I think that's only ~20 tests or so.
There are also a few tests which are quite sensitive to exactly what Synapse does/returns, even though Dendrite is probably doing the right thing but maybe taking a different amount of time to do it or returning something slightly different, so there'll be some tests we need to fix too

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Happy Friday!

  • 🎉 Synapse 1.25.0 is out! It includes a pretty significant speedup for state resolution in bridged IRC rooms, as well as the usual assortment of bug fixes and improvements.

  • 🕵️ For a limited time, and thanks to funding from the European Commission, paid bug bounties are now available for Synapse and other Matrix.org projects via the Intigriti bug bounty platform.

  • 👋 If you're wondering about the face behind these updates, scroll up and check out Matrix Live!

We're on track for 1.26.0rc1 next week, which includes a massive speedup for message redaction in large rooms, as well as finally landing fundamental algorithmic improvements to state resolution.

Otherwise, we remain hard at work preparing for FOSDEM-on-Matrix, with special emphasis on improving our stability and moderation capabilities at scale. See y'all next week!

Homeserver Deployment 📥️

Kubernetes

Ananace offered:

Just pushed version 1.25.0 of Synapse for my Kubernetes image and chart. Haven't quite had the time to finish up the redo of the scripts, but expect that 1.25.0 will be the last version with a specific image, I'm hoping to have generalized the chart enough that it should work with any reasonable image at that point.

Dept of Bridges 🌉

Gitter

Eric Eastwood offered:

A few improvements to the Gitter bridge this week so that when a room updates and the avatar or topic changes, it now propagates across to Matrix automatically. We also handle updating the name whenever we have to rename a room or a group.

We're also thinking about how best to tackle self-service plumbing so you can pipe a Gitter room into your existing Matrix room. And the bigger idea of connecting various bridged portal rooms together. So you can connect your community on Gitter <-> Matrix <-> IRC seamlessly for example. The current thinking is introducing this as a native Matrix concept so you can easily connect any Matrix room to another Matrix room. We'd love to hear your thoughts in MSC2923.

mx-puppet-groupme

Robin said:

Version 2 of mx-puppet-groupme is here! This week I did some reverse engineering of the GroupMe Android app with mitmproxy so that I could work out the remaining undocumented features of GroupMe's API. As a result, typing notifications, read receipts, and videos are now working! Though note that due to limitations of the platform, read receipts are a DMs-only feature.

We also now have a Dockerfile (thanks, Trey B.!), double puppeting support was added, the code was ported to Typescript, and it should now work with older versions of Node. So at this point the bridge is basically feature-complete! As usual, send any questions, bugs, or feature requests to GitLab or Matrix. 💜

mautrix-facebook

Tulir told us:

I've been working on moving mautrix-facebook to act as a Messenger mobile app instead of the web app in order to hopefully make it more reliable. The initial version is starting to work now.

It's currently in the mobile branch. I'm not actually sure if it helps with facebook forcing password resets (for some reason they've never done that to my account), but if it does, I'll merge it into master in the near future.

The new version only supports Postgres like my newer bridges, but I'll invent a SQLite migration tool before merging to master.

Dept of Clients 📱

NeoChat 1.0.1 released

Carl Schwan told us:

NeoChat 1.0.1 was released with a few important bugfixes. https://carlschwan.eu/2021/01/13/neochat-1.0.1-first-bugfix-release/. On the unstable branch, we continued to improve the integration with Plasma. We now display the unread count in the taskbar and we are getting inline replies too thanks to the work of Kai Uwe Broulik in Knotifications. Another important change is that rooms can now be opened in a new separate window.

2021-01-15-1m-hE-image.png

2021-01-15-N_xQv-image.png

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) offered:

Bugfixing for the next release is in progress, fixing various issues and instabilities introduced with the new features, but some smaller features also still made it in:

  • There is now a call invite screen more fitting for mobile devices, when you enable the "Touchscreen mode" in the settings.

  • Various clickable elements now have a ripple effect again to give feedback, when a click was registered.

  • Nheko now handles the Matrix URI scheme. This means opening a link starting with matrix: should open Nheko (at least on Linux) and redirect to the appropriate room and matrix URIs inside of Nheko are also handled. This currently does not support navigating to a specific event, but opening user profiles, starting chats with specific users and opening or joining rooms should work. Nheko also does not automatically linkify links starting with matrix:, so you need to do that manually.

  • Verification dialogs were cleaned up a bit and hopefully are easier to understand now.

  • The flatpak nightlies now support VOIP calls, but as a result are now a few MB more to download.

Since we are nearing the next release, it would be appreciated, if you could check the translations for your platform are up to date and try the current nightlies and check them for bugs your experience and want to have fixed before release. If you find anything, please report it on GitHub or discuss it in #nheko:ocean.joedonofry.com. Thank you!

Quaternion

kitsune told us:

I'd like to have announced the next beta release for Quaternion 0.0.9.5 - unfortunately, migrating from Travis CI took more than I wanted; but adventurous souls are welcome to test the master branch that's basically ready for beta 3.

Meanwhile, it surfaced that Quaternion 0.0.9.4e Windows binaries have been expecting (very old and no more supported) OpenSSL 1.0. This is now fixed in Quaternion 0.0.9.4f (hopefully this will be the last 0.0.9.4 rebuild and I won't chase the above-mentioned OpenSSL project in trying to expire Latin letters).

Element Clients

Various updates from the teams:

Spaces

On Web, we’re progressing on Spaces on our big checklist of doom, most recently on implementing invites to Spaces. On Android, we’re also progressing, iterating on the UX. Meanwhile, we’re also experimenting with different ways to explore, manage and navigate nested spaces.

Social Login

We’ve now merged support for multiple identity providers on Synapse, and are getting dangerously close to finishing the rest of the implementation. Watch this space for more news soon!

Web

Element Web 1.7.17-rc.1 is now available at https://staging.element.io, including:

  • Fixed avatar upload prompt layering issues
  • Added VoIP call transfer

iOS

Element iOS 1.1.4 has been submitted to the AppStore. A TestFlight build will be available during the week-end. Main things the release offers are:

  • Social login
  • New SSO login management
  • Several bug fixes

Dept of SDKs and Frameworks 🧰

libQuotient

kitsune announced:

Version 0.6.4 is out, with a few fixes around homeserver resolution (particularly when a .well-known record is not there). These has been made in tight collaboration with the folks behind Neochat - thanks a lot! 0.6.4 is also the best version to build the just-released Neochat 1.0.1 with.

Meanwhile, work on the next version (0.7) is proceeding in the unstable branch (not in the least pushed by Neochat activity) - expect more news in the next weeks.

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte announced:

Since our last update on 2020-11-20,

Dept of Ops 🛠

PingPong: End-to-end latency monitoring for Matrix

p-e-w announced:

PingPong measures transport latencies on Matrix networks. It connects to two Matrix accounts simultaneously, and bounces messages back and forth between them. It aggregates all information in an intuitive terminal user interface, and automatically computes statistics. Source code and more information are available at https://github.com/p-e-w/pingpong.

I have been working on this for a while now and I believe it is ready for others to use at this point. No binary releases yet, the program must be built from source. I only have a Linux development system currently, so feedback on whether it works on macOS and especially Windows is very welcome.

2021-01-15-mZQHt-screenshot.png

Very interesting new project! I'm thinking of setting this up as I'd planned to write something similar to track perf on bpulse.org.

Dept of Interesting Projects 🛰️

Keymaker Serverlist Project

MTRNord said:

A small update on what is happening after a long time of nothing:

  • Bot has first part of the registration process (essentially the required automated tests) implemented. Next is the manual verification half.

  • Domains are bought and the web page is deployed (No servers listed yet)

  • Code of Conduct writing will start soonish.

As you will see there are only empty categories. This is due to the registration bot still being in work as well as missing documentation for it.

For the progress you can also take a look at https://github.com/keymaker-mx/keymaker/projects/1

Check the current page out at: https://homeservers.mx https://joinmatrix.rocks/

Join development and discussions at #serverlist:nordgedanken.dev Check out the Code at: https://github.com/keymaker-mx

2021-01-15-HNiKj-Screenshot_20210113_225623.png

This is really awesome progress! Not quite there but we'll keep a close watch. 👀

Dept of Guides 🧭

e2ee implementation guide

sorunome told us:

Soru worked on updating her e2ee implementation guide, so far it contains a new section on bootstrapping and hopefully soon on online key backup! You can find the WIP MR here.

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maclemon.at318
2nicoll.xyz366
3imninja.net457
4aragon.sh637
5kif.rocks665
6matrix.sp-codes.de727.5
7matrix.vgorcum.com766
8envs.net775
9fairydust.space820
10mtx.liftm.de833

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-01-08

08.01.2021 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

Dept of Status of Matrix 🌡️

FOSDEM 2021

Matthew reported:

FOSDEM 2021 is going to happen via Matrix: https://matrix.org/blog/2021/01/04/taking-fosdem-online-via-matrix

Dept of Spec 📜

New spec platform

wbamberg announced:

The spec core team has continued trying out the new spec (preview at: https://adoring-einstein-5ea514.netlify.app/). We've also finished applying design updates and implemented a fancy scrolling table of contents.

We have an outline for how to switch over to the new platform: https://github.com/matrix-org/matrix-doc/issues/2906 and have started work on that this week.

Dept of Servers 🏢

Synapse

Synapse is a popular homeserver written in Python.

callahad said:

Welcome back, TWiM readers! It's a new year, and the Synapse team is excited to get back to our regularly scheduled releases! Three main things this week:

  1. We published 1.25.0rc1! We'll have full release notes next week, but highlights include:
  • Deprecated Python 3.5 and Postgres 9.5 per #8782; more details to come with the formal release announcement.

  • People can pick their own username when using Single Sign-On, right from within Synapse itself.

  • Spam-checker modules can now use async Python methods.

  • New ways to restrict allowed IP address ranges for outgoing requests from Synapse.

  1. Matrix is hosting FOSDEM! Which means that most of the Synapse team is going to be focused on security, stability, and performance until February to ensure that our virtual Université Libre de Bruxelles is as reliable and welcoming the real thing.

  2. Speaking of security, we have some big (but good!) news to announce next week. Watch this space... 🕵️🇪🇺💶

Lastly, one of our goals for this year is to maintain a biweekly cadence of release candidates, so we should have a more consistent pace. At the same time, we realize that keeping up with biweekly releases of server-side software can be a bit of a chore, so we're also discussing ways that we could provide longer support for some of our releases. That's a project for much later this year, but consider it a preview of things to come.

If you have any feedback, please feel free to join us in #synapse:matrix.org!

Dept of Bridges 🌉

mx-puppet-steam

Icewind told us:

mx-puppet-steam has been receiving a bit of love over the past few weeks, including:

  • improved reliability of image uploads

  • syncing of read and typing status from matrix to steam

  • bridging of emotes and stickers from steam to matrix

Dept of Clients 📱

New NeoChat features

Carl Schwan announced:

NeoChat gained a few new features this week. The timeline displays stickers now, and edited messages don't get duplicated anymore. NeoChat also now lets you edit your messages. Additionally, Noah improved the support for attachments in the UI, more image formats are detected (and can then be edited in the built-in image editor), and mime type icons get added to non-image attachments. Tobias continues to work on the registration flow and SSO support.

You can meet Carl and Tobias from the NeoChat project by watching Matrix Live. \o/

2021-01-08-mp8Ia-image.png

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at.

Nico (@deepbluev7:neko.dev) reported:

  • d42 fixed SSO login with some more exotic SSO configurations.

  • Reenable showing a users status_msg, which got lost in a refactoring.

  • trilene cleaned up the design of our call dialogs and Nheko now picks up changes in your devices without a restart.

  • Typing notifications should now not flicker anymore.

  • The build is now more explicit, if call support is enabled.

  • You can now reply directly inline to a notification on Linux, if your notification manager supports it.

2021-01-08-0x46S-Screenshot_20210107_183454.png

This reply-in-notification feature is really cool!

SchildiChat for Android

SpiritCroc offered:

SchildiChat is a fork of Element, which focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

During the last couple of weeks, SchildiChat-Android development focused mainly on staying up-to-date with the upstream Element codebase (URL previews took some time to make them fit nicely into the bubble layouts), and doing some smaller design improvements (like wider message bubbles for some scenarios, and an intelligent message timestamp placement at the bottom of the bubble, depending on the available space).

Furthermore, we now also have experimental support for MSC2867, which allows you to mark rooms as unread. Note that for now, this feature needs to be enabled in the labs settings, since the MSC is still unstable and not supported by many clients, which means other clients might ignore whether the user has manually marked a chat as unread and thus display it as read anyway.

Code on GitHub: https://github.com/SchildiChat/SchildiChat-android

Matrix room: #schildichat-android:matrix.org

Element Clients

Some updates below from the team. Not all teams are back from their Christmas breaks yet, and those who are may be a little busy with FOSDEM-specific projects, but we have some updates:

Spaces

We’re making more progress on the client implementations for Spaces on the web on Android. On Web, recent progress includes implementing notification badges, and on Android we’re progressing from SDK work to initial UI implementations.

Social Login

Support for Social Login on iOS is in review after resolving some issues around VoiceOver, which is the last Element client to implement support ahead of Synapse landing support for social login in the near future.

VoIP

Lots of things merged to web: dial pad, call forward, dtmf pad, although most won’t show up in normal use (yet). Other progress on web on hold for fosdem work. Dial pad & phone number lookup support incoming on iOS, and phone number lookup on its way on Android.

iOS

We progressed on several things this week. They are not yet merged but almost. They will be part of the next release we will ship next week: social login, app deadlock fix, encrypted message sending speed improvement, xcodegen usage, sending bug reports in background.

Dept of SDKs and Frameworks 🧰

MRSBFH - Matrix-Rust-SDK-Bot-Framework-Helper

MTRNord reported:

https://github.com/MTRNord/mrsbfh

I took the time and started a small (command)bot framework/utility crate which operates on top of the matrix rust sdk.

It currently is just some of the command logic and utilities extracted from the famedly timetrackingbot and offers a basic bot template.

Features

  • Proc macro based command definition

  • Auto generating of helptext

  • Full compatibility with the regular matrix rust sdk

  • Modularity

  • Helpers for session recovery and Configs

  • Helpers to minify boilerplate of the EventEmitter

Planned features

  • More utilities for bots that are not in scope of the main sdk.

Non-Goals

  • State management

  • Hiding the sdk behind another API (No automatic hooks into the event emitter)

  • usage as AS framework. (This however is possible as you can use the hook where ever needed.)

Possible goals

  • Early adoption of MSCs that are meant for bots (for example MSC2929)

Note this is very young and many is possible to change.

That is quite a project name!

mtxclient - the Matrix library Nheko uses

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at.

Nico (@deepbluev7:neko.dev) announced:

I found some time to actually host the docs our library currently has. It is still severely lacking, but it may be interesting to some people like people contributing to Nheko. I'm going to write some higher level docs over the next few weeks, so that people can actually see how to use the library and have some inline examples and more extensive explanations. But for now you can find the barebones descriptions we always had in the source code here: http://nheko-reborn.pages.nheko.im/mtxclient/index.html

Providing docs always gets a big thumbs-up from me!

matrix-bot-sdk

TravisR said:

[email protected] has been released! This version contains early support for Identity Servers and Spaces (MSC1772), as well as easier functions for sending HTML messages and a bunch of other quality of life improvements. Feedback and bugs in #matrix-bot-sdk:t2bot.io.

Trixnity, Kotlin SDK announced

Benedict reported:

I'm currently working on a Kotlin cross-platform (JVM, JS, Native) Matrix SDK named trixnity

It's a very early version, but I can migrate many code and tests from matrix-spring-boot-sdk so that it's growing fast (for a one man project 😀).

Benedict explained:

matrix-spring-boot-sdk is my first attempt to write bots and appservices really fast, then matrix-sms-bridge using this sdk and now migrating the low-level stuff from matrix-spring-boot-sdk to trixnity, so it can be used independently from spring boot 🙂 My plan is to use trixnity for a an open source web client, that can do "Videosprechstunde" in Germany (I don't know the english word for it, maybe video doctor's consultation?).

More about Videosprechstunde later...

Dept of Ops 🛠

GitHub action for Matrix!

select said:

I recently started a new freelance project and got them to use Matrix as our main communication channel. Since they chose GitHub as our source code platform I got into writing continuous integrations and delivery scripts. But one thing was missing: notifications in our Matrix room. I looked into the GitHub Action Marketplace and found 2 actions that could do that, so that was nice ... but they could not send e2e encrypted messages. Therefore I took up my old issue on how to make e2e encryption work with the js-sdk (https://github.com/matrix-org/matrix-js-sdk/issues/731) with some new found energy and finally solved it. The result is this GitHub action:

https://github.com/select/matrix-message-e2e

While it's almost a full success story there is still one issue to solve: While the action successfully sends e2e encrypted messages the job is marked as failed. My guess it that while sending the messages the matrix client outputs on stderr due to some encryption errors (unknown device keys, ...)

Dept of Interesting Projects 🛰️

Battleship via Matrix

Christian announced:

Want to play the guessing game Battleship via Matrix? I'm building one to be ready for FOSDEM. Follow my progress, bring in ideas and play development versions:

https://matrix.to/#/#battleship:vector.modular.im?via=vector.modular.im&via=t2l.io&via=federator.dev

matrix-archive

I asked: "what's the best tool for dumping history from rooms (including e2e rooms)?", and Florian shared this great tool I don't think I'd seen before:

matrix-archive is the best currently-maintained tool I know of

A really useful project that generates "a YAML log of all room messages, including media".

Dept of Guides 🧭

easy-to-share comparison chart

joepie91 said:

Based on the original chart by hrjet, here's an easy-to-share comparison chart in image form, that compares a number of alternatives (Element/Matrix, Signal, Telegram) for people looking for an alternative to WhatsApp

2021-01-08-ayRQd-whatsapp-alternatives.png

Should be very useful for incoming "What do I use instead of WhatsApp?"-type conversations!

(Also you could share this tweet for even more visibility!)

Final Thoughts 💭

Videosprechstunde is quite hot right now

As promised, some more thoughts on the Videosprechstunde craze apparently sweeping Germany.

Niklas Zender announced:

Videosprechstunde is quite hot right now, and the technical requirements in terms of security are already handled with matrix.
It is regulated by the german government and is only working for centralised services right now. So there is no way to get it certified with matrix. It might be possible in future (fingers crossed) and then we (Famedly) are also ready to provide it :)
(Government is slightly wrong, it is more the KBV, but the Government also plans to regulate it starting in two years)

Videosprechstunde refers to having a video conference with your doctor, rather than going in-person.

Speed installations?

compu offered:

so one time I installed Matrix Synapse on a fresh debian install in 24 minutes do i get bragging rights?

If you have video of you installing Synapse or another matrix server at an alarming rate, we'll link to it from here!

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1matrix.org347
2the-apothecary.club351
3almum.de399
4envs.net485
5maescool.be634.5
6aria-net.org712
7casavant.org891
8mtx.liftm.de904
9cof100.dk1067
10tchncs.de1109

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 2020-12-30

30.12.2020 18:44 — This Week in Matrix Ben Parsons

Dept of Status of Matrix 🌡️

The Matrix Holiday Special 2020

If you didn't read it already, I encourage you to read Matthew's Matrix Holiday Special 2020 post. So much has happened this year!

Oleg responded:

Great summary! Very inspiring!

I have a feeling experiencing a revolution in how people perceive messaging. Now, public sector and multiple communities adopting Matrix, one cannot think of a world without Matrix any more.

Kudos to the Element team and to the wonderful Matrix community! ♥️

I'm very excited for the FOSDEM on Matrix!

Andy added:

What a wonderful year has been for matrix, and it looks like next year will be equally as exciting. I'm HYPED.

Honestly, I'm hyped too. Simple statements like "loads of different universities have rolled out Matrix for collaboration" don't quite capture how much work is going on, and how much excitement there is to get the growth in the network we're soon to see.

Homeserver versions graphs

Chris offered:

For the first time (since recording the homeserver stats from Feb 2019) a non-synapse homeserver is now in the top 15 deployed homeserver versions: Welcome Dendrite 0.3.4: https://graph.settgast.org/d/z1nplqXik/matrix?orgId=1

How exciting is that! If you haven't already, do check out some of the history on these charts - big thanks to Chris for making this available.

Homeserver Deployment 📥️

Ansible-Dendrite

jaywink announced:

Created a new Ansible role to easily install a Dendrite server. Currently only tested on Ubuntu 20.04 with Ansible 2.9. Uses Docker to maintain a monolithic Dendrite. Requires but does not include PostgreSQL. Designed to easily be used with Traefik as reverse proxy.

https://git.feneas.org/jaywink/ansible-dendrite

Dept of Bridges 🌉

mx-puppet-groupme

Robin told us:

Not to be confused with matrix-puppet-groupme, mx-puppet-groupme is a fancy new GroupMe bridge with support for as many features as the web client would let me get my hands on. Please try it out, and let me know on GitLab or Matrix if you have any issues or suggestions! 💜

Thanks for sharing Robin!

Dept of Clients 📱

NeoChat 1.0

Tobias Fella said:

The KDE Community is excited to announce the first release of NeoChat, a Matrix Client based on Spectral and libQuotient. With the power of Qt and KDE Frameworks, NeoChat currently runs on mobile and desktop Linux devices, Android and Windows. You can read more about NeoChat and how to get it at https://carlschwan.eu/2020/12/23/announcing-neochat-1.0-the-kde-matrix-client/

Congrats on the 1.0! I think we'll hear much more from the team next year. 🎉

Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

We finally fixed the Windows build, so there are nightlies on Windows again! Also lorendb finished his profile work, which means that if you were using custom profiles before on one of the nightlies, you may need to login again, but the whole code is a lot cleaner now.

Dept of SDKs and Frameworks 🧰

libQuotient

kitsune reported:

Version 0.6.3 is out, another bugfix release on the stable branch. Nothing too significant, but .well-known-unaware homeservers should be treated better, and Matrix identifiers with special characters (ahem, slashes) can now be turned to valid URIs (matrix.to or proper Matrix URIs). Also, room tags starting with a . are no more considered valid, you'll get u. prepended to them.

Dept of Ops 🛠

matrix-docker-ansible-deploy

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

Slavi offered:

matrix-docker-ansible-deploy now defaults to using the Postgres database engine for all bridges, bots and related services (ma1sd, Dimension, etc).

Previously we were only using Postgres for Synapse and couldn't reuse the same database server for other services.

With this huge pull request, we've added Postgres support to 17 other services.

Thanks to Johanna Dorothea Reichmann for starting the work on it and for providing great input!

Existing installations will get automatically migrated from SQLite/nedb to Postgres the next time you run the playbook.

Not only does this bring better performance and compatibility, but also, being able to reuse the same Postgres database for services other than Synapse paves the way for us to introduce other Postgres-only services such as Dendrite, the mautrix-signal bridge (existing pull request), etc.

For more information, refer to our changelog entry.

Dept of Bots 🤖

Timetracking Bot

MTRNord said:

We released v0.3.0 🎉 Feel free to follow development at #timetracking-bot:famedly.de or https://gitlab.com/famedly/bots/timetracking .

Also checkout the ansible role for the timetrackingbot: https://gitlab.com/famedly/ansible/collections/matrix/-/tree/main/roles/timetracking-bot

Changelog

Fixes

  • Print !in and !out responses in correct timezone

  • Make sure that we use the stores correctly

  • Make sure that "in" in the times table is not a primary key to allow multiple people at the same time to log in

  • Overall stability improvements

Features

  • Allow units in !record. For extended syntax see https://docs.rs/parse_duration/2.1.0/parse_duration/index.html

  • Better !stats command output (hours and minutes instead of pure minutes)

Chore

  • Dependency Updates

  • Add DB indices

Breaking changes

See https://gitlab.com/famedly/bots/timetracking/-/blob/v0.3.0/UPGRADING.md

Middleman

kapina-jaywink told us:

Common accounts for support are tricky to handle due to needing the people using those accounts to keep separate clients open to use the common account. For this at Elokapina we created Middleman, which acts as a proxy between an account and a room.

It's a bit basic but works pretty well for pure text messages. Any messages in rooms where the bot is are relayed to the management room and any replies to those messages (prefixed with !reply) in the management room are relayed back. Optionally senders can be anonymised to enable a feedback bot.

Coming up is more configuration on for example ignoring non-mentions in rooms with lots of members and hopefully support for images and reactions in the not too long future.

Find it here: https://github.com/elokapina/middleman (built with nio-template).

2020-12-30-MVAuG-demo.gif

GDQBot

daenney said:

With Awesome Games Done Quick 2021 Online starting on the 3rd of January the bot will now announce when an event is about to start in channels it's in.

If you don't want to run your own, you can invite @gdqbot:ecef.xyz or come hang out in #gdq:ecef.xyz.

Hopefully we'll also have donation tracking squared away before the start of the event.

Final Thoughts 💭

Nico (@deepbluev7:neko.dev) reported something interesting:

Threema published the source code for their apps this week: https://threema.ch/en/open-source

While that is not strictly Matrix related, it is great to see other E2EE enabled chat systems publishing the source code for their clients. It's the only way to verify their encryption actually works and is secure.

This move was announced a while ago, but I think that it actually happened now deserves a small shoutout! 🎉

Quite right! Though Matthew, thought the news needed to be put into proper context:

it’s almost like they’re scrabbling to keep up with matrix ;)

:D

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1tchncs.de259
2envs.net432
3maescool.be501
4matrix.sp-codes.de832
5flobob.ovh833
6aria-net.org1130
7libre.bzh1159.5
8uraziel.de1706
9matrix.weebl.me1728
10mailstation.de2017

That's all I know 🏁

Good grief, what a year. Exciting but I'm not sure I can fit it all in my head!

See you next week (2021-01-08: Friday!), and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2020-12-18

18.12.2020 00:00 — This Week in Matrix Ben Parsons

Matrix Live 🎙

This week we're all about video content! So you get Matrix Live AND Demos - you are so lucky! 🥰

Demos

uhoreg added a late improvement to his MLS demo:

This is how my demo would have looked if I had managed to finish debugging in time.

2020-12-18-mls.png

So, now you need to watch the video to make sense of this image!

Dept of Status of Matrix 🌡️

Introducing Cerulean

Matthew reported:

Introducing Cerulean - highly experimental threaded microblogging for Matrix. Read all about it at https://matrix.org/blog/2020/12/18/introducing-cerulean

Cerulean is being discussed on the front page of Hacker News.

Community Demos

The last set of community demos were well received, so if you have an idea for a demo, get it ready for 2021-01-15, which will be the next demo session!

Dept of Spec 📜

New spec platform

wbamberg said:

The spec core team has been trying out the new spec this week to decide if it's ready to ship. And we've been applying Dean's design updates (currently in a separate branch at https://friendly-yonath-3de225.netlify.app/).

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://matrix.org/docs/spec/proposals.

MSC Status

Closed MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we made a healthy amount of progress on the MSCs in focus. A few members have also been iterating quite a bit on MSC1772 for Spaces. Look for these MSCs to start landing come the first few weeks of the New Year as implementation work starts to relax a bit. The focus for next week is... Christmas! 🎄

But first week of January will be MSC2844, MSC2366 (ready and done in key verification) and MSC2790 (modal widgets).

2020-12-18-7E797-stacked_area_chart.png

Dept of Servers 🏢

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

neilalexander announced:

If you haven't already seen it, we wrote a Dendrite 2020 Progress Update blog post detailing our year in Dendrite. It also includes an announcement for our new public dendrite.matrix.org homeserver, which is open for registration!

Today we released Dendrite 0.3.4, which is a performance and bug-fix release, including the following changes from the last two weeks:

  • The stream tokens for /sync have been refactored, giving PDUs, typing notifications, read receipts, invites and send-to-device messages their own respective stream positions, greatly improving the correctness of sync

  • A new roominfo cache has been added, which results in less database hits in the roomserver

  • Prometheus metrics have been added for sync requests, destination queues and client API event send perceived latency

  • Event IDs are no longer recalculated so often in /sync, which reduces CPU usage

  • Sync requests are now woken up correctly for our own device list updates

  • The device list stream position is no longer lost, so unnecessary device updates no longer appear in every other sync

  • A crash on concurrent map read/writes has been fixed in the stream token code

  • The roomserver input API no longer starts more worker goroutines than needed

  • The roomserver no longer uses the request context for queued tasks which could lead to send requests failing to be processed

  • A new index has been added to the sync API current state table, which improves lookup performance significantly

  • The client API /joined_rooms endpoint no longer incorrectly returns null if there are 0 rooms joined

  • The roomserver will now query appservices when looking up a local room alias that isn't known

  • The check on registration for appservice-exclusive namespaces has been fixed

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is unchanged:

  • Client-server APIs: 58%, same as last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

Dendrite also powers Cerulean, mentioned above!

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Hello again from Synapse land! This is our last TWiM of 2020, but we're hard at work landing our last patches before going on holiday. Expect 1.25.0rc1 in early January with loads of fixes, performance improvements, and a few new features. In particular:

You can look forward to all of this and more next year, but until then, happy holidays from all of us over here at Element and in the broader Synapse community!

Conduit

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

timokoesters said:

Hey, I'm back! I was busy with University. I also forgot to TWIM this last week, so here you go:

  • Conduit is beginning to support appservices
  • Devin R and I are currently working on a better state store and improving federation

Homeserver Deployment 📥️

YunoHost

Pierre said:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.23.1

Element Web integration had been updated to 1.7.15

Dept of Bridges 🌉

GitHub / Gitlab bridge

Half-Shot told us:

Hello everyone! It's been ages since I've talked about a personal project on here. I've been working on the matrix-github bridge, which is an all singing all dancing service to connect you to Github AND Gitlab. (Yes, it's now poorly named).

I've landed the initial bits to make GitLab work, so that you can join issues and MRs as rooms in the UI but there is more work to do to make that solid and more interactive. The thing I am most looking forward to is notifications for GitLab so I can get away from emails.

ALSO, off the back of TravisR's fantastic widget work, I've landed initial support for widgets in admin rooms and soon issue/PR rooms. The idea here being that widgets give you a nicer UI to control the bridge or render details like commits going past or diffs. All the groundwork for authenticating widgets against the bridge and rendering them is done, now it just needs features.

That's the highlights this week. I'm hoping to really tighten the documentation to get more people spun up on it as the notifications features have turned out to be a killer feature for me :)

2020-12-18-x7YaI-image.png

I've been using this (the bridge, rather than the upcoming widgets) for a couple of months now and find it really really powerful. I'm not in GitHub most of the day, so getting notifs piped direct into Matrix is great!

mautrix-instagram

Tulir said:

I added bridging of typing notifications and read receipts from Matrix to Instagram and fixed a bunch of bugs. Only thing that's still missing is presence and Matrix->Instagram non-image files.

This is now almost feature complete! Nice one Tulir.

Gitter

Eric Eastwood said:

A few updates to the Gitter bridge itself this week handling Matrix edits outside of the 5 minute edit window on Gitter and fixing up @mentions being mangled by : colons on the Gitter side when someone mentions you from Element. We also strip the redundant Matrix reply quote when it goes into a Gitter threaded conversation because it's already easily viewable in the thread.

We're also getting started on some of the Element feature parity with Gitter issues. First directly tackling backfilling existing message history.

Other teams are already underway working on Spaces, Social login for Github which will ship in the new year!

Dept of Clients 📱

Element Clients

Compiled by the team.

  • Spaces
    • We’ve been progressing spaces on Web, focusing on managing spaces, members and rooms. Meanwhile, we’ve also been iterating on designs for all platforms.
  • Social login
    • Synapse support for picking a username should be landing in develop today focusing next on supporting multiple identity providers. On iOS, we’ve implemented SSO redirect authentication mechanisms which also should land soon.
  • VoIP
    • We’ve been making progress all round on all platforms, with the next web release including improvements to holding & resuming calls and multiple line support!

Web

  • 1.7.16-rc.1 available on staging
    • Added ability to put a VoIP call on hold and answer another
    • Added a special visual effect for confetti
    • Improved the login flow
  • Investigating changelog options in the background

Android

iOS

  • We’re prepping 1.1.3 after ironing out final kinks relating to the new background service, hoping to release before Christmas.

Nheko

Nico (@deepbluev7:neko.dev) offered:

In celebration of the cross-signing MSC being finally merged, Nheko master now supports cross signing other users and your own devices. 🎉 The UX is currently not final, you have to manually fetch the cross signing keys in the settings, if you don't have them after a verification. You are also not yet prompted to verify new logins and can't bootstrap cross-signing from Nheko, but the functional bits and bobs are there now. We are also still investigating, if prompting for your recovery key/passphrase is less confusing by using just one input field or if we should prompt for them separately. Currently Nheko just asks you to unlook and will accept whatever you input (if it can decrypt the secrets with it). FluffyChat does that and I think it is really nice!

There are also a few smaller features added recently:

  • Nheko now uses the icon from your theme on the login page

  • You can react instead of reply with a (very) short text using /react

  • A few improvements(?) regarding whitespace and code rendering.

SchildiChat Web/Desktop

qg reported:

Today, we can announce the web/desktop variant of SchildiChat is out of beta!

SchildiChat is a fork of Element, which focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

Since the last announcement on TWIM, we have not only fixed most of the layout bugs caused by the message bubbles, but can also report the following:

  • Settings for layouts work, so you can also use SchildiChat if you only want the unified overview and no message bubbles

  • All information about desktop is now on our new website: https://schildi.chat/desktop

  • The hosted instance is now here: https://app.schildi.chat

  • For Linux, SchildiChat is now available from AUR, apt repo for debian, flathub and as AppImage

  • There's a portable Windows version now too

Code on GitHub: https://github.com/SchildiChat/schildichat-desktop

Matrix room: #schildichat-web:matrix.org

2020-12-18-bIasy-2.png

FluffyChat

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

krille reported:

FluffyChat 0.24.0 is released with new features and fixes.

What is new:

  • A new public room discovery page, where you can find and join public rooms

  • Experimental bootstrap support for cross-signing and keybackup and something really weird that is named SSSS

  • Enhanced power level managing for rooms

  • Minor design changes like a new icon set

Beside of that we have of course a lot of bug fixes and stability improvements. All languages should now also work on iOS.

Also we are looking forward to publish the app in the AppStore for iOS but we will do this under the hood of Famedly. Btw. FluffyChat will soon move to the Famedly GitLab project and we will move the app in the PlayStore to the Famedly account too. This doesn't mean that anything will change there. It is just that Famedly will now handle the legal stuff for us and may offer paid customer support for businesses, which have interest in FluffyChat. But the app will still be available under the same AGPL3 license. This will just make it easier for us to publish the app in the official stores as we don't need to pay so much for the developer accounts.

2020-12-18-JruOC-screenshot_20201218-144554.png

Dept of Bots 🤖

Timetracking Bot by famedly

MTRNord reported:

Find it at: https://gitlab.com/famedly/bots/timetracking or join us at #timetracking-bot:famedly.de

Numerous new features and fixes arrived this week. Getting closer to production readiness. Famedly also started daily internal testing for the bot to find more issues and fixing them.

v0.1.5

New Features

  • Implement !setTimezoneDefault

  • Add timezone conversion to !in and !out

  • Write admin status to table in Database

  • Add default_timezone field to Config which defines the bot wide default. If not set UTC is assumed.

  • Add !stats command

  • Use Unix timestamps in database (migrated automatically)

Fixes

  • Make sure Version sha actually gets generated in CI

  • Make tests work again in the CI

  • Fix that !help and !version work without the database in case of issues

!record command polish

  • Only accept positive durations greater than 1

  • Only accept durations less than 24h

  • Check if duration is numeric

Refactoring

  • Move message templates where needed to templates folder

  • Use color-eyre instead of anyhow

v0.2.0

Refactoring

  • All new command definition. Allowing for much easy adding of commands and helptext

  • New !help response

Fixes

  • Add the missing default for !stats

  • Check for required amount of arguments in !delete

Chore

  • Fix typos in responses

  • Remove some dead code

GDQBot

daenney told us:

It's the most wonderful time of the year! The ⛄️ winter edition of Games Done Quick is almost upon us. This recurring speedrunning event helps raise money for charity each year. As usual, the proceeds of the week long AGDQ are going to the Prevent Cancer Foundation. With some luck we might break last year's $3.13 million record.

To help you keep track of the event I've created GDQBot. Right now you can use it to query for the schedule. Next week should see the code land to add the announcer routine so the bot will announce events as they happen to channels its invited to.

Also a big thank you to tulir for patiently answering my questions as I was trying to find my way around mautrix-go.

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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1neko.dev322
2bridges.matrix.linux.pizza420
3almum.de474
4envs.net598.5
5saces.de627
6kb1rd.net722
7matrix.sp-codes.de905
8casavant.org943
9aria-net.org1034
10flobob.ovh1050

That's all I know 🏁

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