This Week in Matrix

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

Atom Feed

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!

This Week in Matrix 2020-12-11

11.12.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™ (Demos week!)

Dept of Status of Matrix 🌑️

Lots of things to talk about! Firstly I'm very happy to say that spaces are happening, you can keep track of them here: https://github.com/vector-im/element-web/issues/15930.

Next Open Tech Will Save Us, was great this month, and you can also get a great introduction to Matrix Spaces there too.

Then, Marcus Schopen shared his love for Matrix by showing us the Matrix-branded mugs he has had printed:

2020-12-11-8_-UX-IMG_20201209_160020.jpg

If you'd like to buy some OFFICIAL Matrix merch (we don't have mugs just yet), then please go to The Matrix Shop! Marcus also added:

People in Bielefeld can come over to my office at university and get one.

Dept of Spec πŸ“œ

wbamberg told us:

New spec platform: we've asked the spec core team to spend some proper time with the new spec so we can decide if it's ready to ship.
You can also file bugs at https://github.com/matrix-org/matrix-doc/labels/spec-redesign

It's looking really good!

Spec

anoa offered:

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

MSC Status

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've continued to be quite busy with implementation during holiday crunch time. There were some constructive ideas for the team to carve out more time for spec work during this week's Spec Core Team retro, which will hopefully lead to an improved cadence this week and into the new year.

As such, the focus remains at MSC2844 (global versioning), MSC2366 (ready and done in key verification), and MSC2790 (modal widgets).

2020-12-11-9fxga-stacked_area_chart.png

Dept of Servers 🏒

Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

Hello, friends! On Wednesday we released Synapse 1.24.0 and 1.23.1, which include security fixes. Please upgrade! (Also, if you've installed Synapse from source, be sure to pip install 'cryptography>=3.3' in your virtualenv to address the recent OpenSSL CVE).

This is our last full release for the year, as we don't want to do anything that might risk the stability Santa's federated command and control centre at the North Pole, but we're looking forward to lots of new features and improvements in the new year β€” more details on that next week.

We'd also like to remind you that we're planning on removing support for Python 3.5 early next year (a formal announcement and timeline will accompany the 1.25.0 release), and we'd appreciate and comments or concerns in this GitHub issue.

Strikes me that Santa has a more centralised operation, but who can say?

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.23.0 (1.23.1 available in branch testing)

Element Web integration had been updated to 1.7.14 (1.7.15 available in branch testing)

Kubernetes

Ananace offered:

Just updated my Synapse K8s-optimized image and Chart to 1.24.0, planning on deprecating the image at some point soon though, instead pointing people to upstream - or platform-optimized - images as I should be able to move all the Kubernetes-specific things into the chart itself to make it more compatible.

The image in question started off as a plain docker image, before there were official ones. I've since rebased it onto the official Matrix image with just the modified scripts and volume points.

My plan is to move all the Kubernetes-specific scripts into configmaps (which are a K8s way of storing text files/environment variables/etc), and then build my own launch arguments through the chart to get it to run on any image that has a Python interpreter and the Synapse modules available in the Python search path.

With all that done, it means I won't be a bottleneck in pushing updated image tags for people to be able to update, and I won't have to finagle multi-arch images πŸ˜ƒ

Docker ARM images for Dendrite

TR_SLimey reported:

As the PR from last TWIM is still awaiting review, I have once again updated the Docker ARM images for Dendrite for version 0.3.3. As always, they can be found in my docker repo at https://hub.docker.com/u/trslimey

Direct links:

Monolith: https://hub.docker.com/r/trslimey/dendrite-monolith

Polylith: https://hub.docker.com/r/trslimey/dendrite-polylith

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood announced:

If you didn't catch it already, we did a full announcement this week for Gitter now speaking Matrix πŸŽ‰! If you're curious about how we made it and some more technical details, the blog post is a great read: https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix

In terms of bridge progress, we added support for m.emote status messages which means your /me says hi messages will bridge back and forth properly. On the Gitter side, we fixed the browser notifications so they show properly from the virtualUser instead of the generic matrixbot.

mautrix-instagram

Tulir offered:

I made an Instagram DM bridge: https://github.com/tulir/mautrix-instagram / #instagram:maunium.net

It's a bit barebones still, but text bridging and backfilling works. The main advantage over mx-puppet-instagram is that it uses the realtime MQTT API instead of polling.

There was a second update from tulir, he added more features as of today:

After the initial announcement on Monday, I added bridging of reactions, redactions and photos in both directions and also typing notifications, read receipts and all types of messages from Instagram to Matrix.

Dept of Clients πŸ“±

Element Client Work

Compiled by the team

  • Spaces

    • We’re making more progress on implementing Spaces.. On Web, we’ve made progress on creating spaces and switching between them. On mobile, we’ve laid down the foundations in the Android SDK. If you missed it, we gave a preview in this weeks Open Tech Will Save Us.
  • Social login

    • We’ve been working on server-side support in synapse for picking an MXID during login with SSO, and also implementing support in iOS to gain parity with Android & Web, to launch together in future.
  • VoIP

    • We’ve been working on implementing hold & resume (line 1 / 2) support on Web, iOS & Android. Web has something sneak previewable on develop.element.io!

Web

  • Element Web 1.7.15 released
    • Improved voice / video call UI
    • Notifications are now ignored from rooms you've been active in recently
    • Login / registration flows redirect inside the app if you are already logged in
  • JS SDK browser build steps now only run on release (instead of every install) to save time

Android

  • URL Previews are coming in the next release! There will also be a brand new Emoji keyboard accessible from the timeline composer.
iOS
  • The new background service has been merged. Messages from notifications will be displayed faster within the app. A TestFlight build for testing will be available tomorrow.

Dept of Ops πŸ› 

axon

kaiyou announced:

This is a first update regarding a very small project named "axon", aimed at operating the synapse admin API from Python, either as a library or a CLI tool. It is currently in use everyday on our synapse instance for managing users and looking for suspicious rooms, and is being integrated into a prototype Web interface for managing synapse.

Admin API coverage is currently about 50%, mostly focusing on users and rooms management (get, list, update, delete). It is still enough to delete a user, edit an offensive avatar, or run as a cron to periodically purge remote media.

Our main repository: https://forge.tedomum.net/tedomum/axon

Github project mirror for contributing: https://github.com/kaiyou/axon

I asked if there was a GUI:

Not currently, but we are integrating it with another of our tools named "hiboo", which is a general indie hoster user manager (provides SAML & OIDC authentication with config templates for many projects including synapse, and integrates the account workflows and moderation features). Currently it provides room navigation and purging, plus deleting accounts either on moderator decision or when the user deletes her SSO account.

Sounds promising! Synapse Admin would benefit from this kind of tooling...

... so it was a surprise to find another project designed to help in this area!

Announcing synadm

jojo told us:

Well, maybe it's about time for "synadm - a CLI frontend to Matrix-Synapse admin APIs" to be announced more officially. As the name implies it's a CLI tool that eases the usage of admin API commands for Synapse admins. It currently covers everything the room and user API's can do: https://github.com/JOJ0/synadm#implementation-status--commands-list

It can be configured interactively and/or using a config file in yaml format: https://github.com/JOJ0/synadm#configuration

It's configurable whether the responds of the API are shown in pretty printed JSON or in a table format (using Python tabulate).

It's well documented via it's online help and supposed to be quite self-explanatory to the admin.

Any thoughts, ideas, feature-requests are very welcome in #synadm:peek-a-boo.at or as usual by filing PR's or issues in the project repo https://github.com/JOJ0/synadm.

Dept of Bots πŸ€–

Advent of Code 2020 bot

AsbjΓΈrn told us:

This one might be interesting to those participating in Advent of Code 2020:

I made a (quick and dirty) bot that posts whenever somebody on a private leaderboard solves a challenge. https://gitlab.com/AsbjornOlling/aocbot

I imagine that we're not the only private AoC Matrix room around, so I figured I'd share - even though it's not anything particularly remarkable πŸ‘¨β€πŸ’»

Dept of Events and Talks πŸ—£οΈ

Matrix talk at Open Source Summit EU

Oleg reported:

The recording of the Matrix talk from the annual Open Source Summit EU is online! πŸŽ‰

I talked about Matrix 101 and showed different bridging capabilities with Slack and IRC and, of cause, showed some bots. πŸ˜‰

Thanks benpa and Half-Shot for your support! ❀️

▢️ Check it out: https://www.youtube.com/watch?v=cD8xbci4wAY

NLUUG talk from Matthew

Matthew offered:

I gave a talk to NLUUG the other week: https://www.youtube.com/watch?v=gY2PCKEaKlM

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.dev298
2comsys.rwth-aachen.de341
3pc.koesters.xyz:59003444
4maescool.be446
5bordum.dk465
6jauriarts.org505
7dendrite.matrix.org554
8casavant.org717
9matrix.sp-codes.de758.5
10envs.net913

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-04

04.12.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

In which Nad & Matthew go through the new consolidated Element roadmap at https://github.com/vector-im/roadmap/projects/1

Dept of Status of Matrix 🌑️

Open Tech Will Save Us 9

Taking place NEXT WEDNESDAY, the ninth edition of my favourite monthly Open Tech-themed live video broadcast! Subscribe to the calendar on https://matrix.org/open-tech-will-save-us/ and check out the lineup:

  • Angie Gaudion, Coordinatrice at CHATONS, presenting Mobilizon: a new libre events management tool https://joinmobilizon.org/en/.
  • Ben Francis, Founder at Krellian, presenting the relaunch of WebThings (previously from Mozilla)
  • Nad Chishtie, Product Lead at Element, presents Matrix Spaces: a new vision for room groups in Matrix

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:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've mostly been focusing on implementation. Thus the same 3 MSCs are in focus: MSC2844 (global versioning), MSC2366 (ready and done in key verification), and MSC2790 (modal widgets).

2020-12-04-3rO5x-stacked_area_chart.png

Anoa also provided a revised, more festive version of the chart, but it's too jolly to render inline, so needed to be linked instead.

New spec platform

wbamberg offered:

Still at https://adoring-einstein-5ea514.netlify.app/

  • Dean has started work on design updates for the spec

  • We've written replacements for all the templates and updated all template calls

  • We've implemented a mechanism for representing different spec versions and changelogs

Seriously progressing! Much more readable than what we have.

Dept of Servers 🏒

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander's Dendrite mxid announced:

This week we released version 0.3.2, which contains some bug fixes. Changes this week include:

  • Checking if a server is allowed to see an event has been optimised somewhat

  • The ability to disable federation has been added

  • Application services are now sent correctly formatted client events

  • create-account has been simplified so that you can just point it to your Dendrite config

  • /unpeek support has been added (for MSC2753)

  • Event IDs are now calculated far less often in the roomserver, since this is an expensive operation

  • The federation sender now caches events in memory to reduce load on the database

  • The "since" parameter is now checked more thoroughly in the sync API, which led to a bug that could cause forgotten rooms to reappear (thanks to kaniini)

  • The polylith now proxies signing key requests through the federation sender correctly

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.

Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

⚠️ The OpenSSL project has pre-announced a high severity issue that will be disclosed on Tuesday. We will be regenerating Docker images and releasing Synapse 1.24.0 and 1.23.1 on Tuesday following that announcement. Note that these releases contain security fixes of their own, and you are encouraged to upgrade.

In other news, Synapse 1.24.0rc2 is out and includes numerous bug fixes and internal improvements, especially around our OpenID Connect (OIDC) and SAML providers. Of note, the OIDC provider can now re-try generating MXIDs when there's a collision, reaching parity with the SAML provider.

We've been talking about MSC2403: Add "knock" feature for a few weeks, but the end is in sight: the PR is reviewed and the tests pass, so we're on track for including it in 1.25.0! We're also on the cusp of a finishing a new algorithm for calculating the auth chain difference in State Resolution v2, which should significantly reduce worst case performance.

Lastly, the deprecated /_matrix/client/*/admin Admin API endpoints have been removed. If you have tools which target these endpoints, please update them to use the /_synapse/admin URL prefix instead.

Homeserver Deployment πŸ“₯️

Docker ARM images for Dendrite

TR_SLimey offered:

The Docker ARM images for Dendrite have been updated for version 0.3.2. As always, they can be found in my docker repo at https://hub.docker.com/u/trslimey

Direct links:

I have also submitted a PR for automated multiarch docker builds for Dendrite, so if that gets accepted, no more unofficial images for me :P

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.21.2 (1.23.0 available in branch testing)

Element Web integration had been updated to 1.7.13 (1.7.14 available in branch testing)

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood reported:

We've soft-launched the new bridge to all public Gitter rooms! You can now find any public room on Gitter checking out the room directory for gitter.im or directly by replacing the forward slash in the URI part of the Gitter room with an underscore and joining #*:gitter.im(replace the *). If you come across any bugs, feel free check the list of known problems and create an issue. There will be a full announcement next week so stay tuned!

We've also added a few more features this week and now transform :emoji: syntax from Gitter to Unicode so they're compatible in Matrix, propagate the room topic/description, and some bug fixes around threaded conversations and replies. You can track our full progress from the GitLab epic for the native Gitter-Matrix bridge.

Massive milestone! Great work Eric, it's been such fast progress!

Dept of Clients πŸ“±

Fractal

Alexandre Franke announced:

After I ran out of ways to break it, we finally merged Our Hugestest Merge Request Ever. This concludes the β€œPort to matrix-rust-sdk” saga (see these three links for previous episodes).

2020-12-04-2yOTb-01-celebration.png

Just kidding.

This was actually just the beginning, the ground work needed to lay the foundations for A Better Future. We already have a bunch of other merge requests to continue down that path. Hopefully there shouldn’t be such large ones in the (near) future. So what’s next? The work that landed this week was a switch to the SDK for almost all endpoint queries. Now need to handle the syncs with it. Later on, we will use it to handle storage, and then enable E2EE as well, but that will take quite some time.

Big progress from Fractal here! Will be good to hear more from the Fractal club to see what the ETA is for storage and E2EE.

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:

While I've actually not had much time to work on Nheko, I did at least fix most of the UTD (Unable to decrypt) issues, when sending encrypted messages. This has been a long standing annoyance, but it should now finally not be an issue anymore (well... at least it should not be caused by Nheko as often anymore)! With this there are only a few tickets left to finally bring E2EE out of beta in Nheko (SSSS and bootstrapping cross-signing, as well as a general review for potential issues).

And while I have actually not been doing much work, we actually had more Pull Requests (and merged them too) this week than I have ever seen before in Nheko! Thank you very much to everyone who contributed. A short summary:

  • Nheko now uses the Nheko icon from your system theme, if available

  • You can finally look at avatars in their full resolution!

  • Megolm sessions are now lazily loaded from disk.

  • The registration page now also has nice inline error messages, hinting at why a specific input is unacceptable.

  • Updates to the russian translation

  • The README now lists all required GStreamer plugins for voice and video calls.

It feels super great, when you have so many people contributing, I love it! <3

Nheko really seems to be doing something right when it comes to attracting PRs!

Element Update

As compiled by the team:

  • Public Roadmap
    • We now have a public roadmap! We’ll be covering more details on it in this week’s Matrix Live, as well as a blog post on element.io soon.
  • Spaces
    • Work has started in earnest on the web and android implementations.
      • On the web side T3chguy completed the Spaces creation flows and is now looking at the Space landing page and Space post-creation prompts.
        • We have noticed that prefixing any word with β€˜Space’ makes it sounds 20% cooler.
      • The mobile MVP will be read only and Valere will start with the ability to respond to invites and select Spaces.
    • So far it is looking very promising with lots of feedback from user testing informing the design.
  • Social login
    • We plan to ship this as a cross client feature this month. This week we completed the implementations for web and android with iOS and Synapse ongoing.
  • VoIP
    • Line 1 / 2 support is almost ready on web: ironing out some bugs and cosmetic issues, then PR will be ready for review. VoIP V1 support and hold/resume is getting close on Android & iOS, along with stability fixes.

Web

  • Element Web 1.7.15-rc.1 is now available at https://staging.element.io, including
    • Improved voice / video call UI
    • Notifications are now ignored from rooms you've been active in recently
    • Login / registration flows redirect inside the app if you are already logged in
  • Supporting tools like CI scripts are now using the correct branding
  • React SDK PRs now have experimental preview sites, which makes it easy to try out changes during review

iOS

  • We can now use XCode 12.2 to build all projects
  • We are still working on 2 big changes:
    • Introducing a background sync service to display notifications quicker in the timeline
    • Introducing XCodeGen to stop having bad merge conflicts in pbxproj files

Android

  • Release 1.0.11 in production (roll out to 10% for now)
  • Feature Parity / URL preview
  • Coming next Social logins
  • Bug fixes

Aleks Kissinger added:

LaTeX support will be available under Labs in the next release of Element: https://github.com/vector-im/element-web/blob/develop/docs/labs.md

cryptovoxels client

Matthew offered:

cryptovoxels released a cute little preact matrix client for all your VR needs: https://github.com/cryptovoxels/chat

We don't have much information about this one yet, other than that cryptovoxels have been interested in developing a Matrix client for their world for a while.

Dept of Bots πŸ€–

Hemppa

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

Cos offered:

Hemppa the Bot is a multipurpose bot for writing modules super easily in Python. Last week Hemppa received a useful feature of printing files! You can set up a room for a specific printer and invite anyone you wish to it to allow printing. Any attachments uploaded to the room will be automatically printed. It's actually one of the easiest way to print from a phone and very useful if you have a printer that does not have drivers for modern Windows or MacOS versions. https://github.com/vranki/hemppa#printing

Matrix-Alertmanager

A bot to receive Alertmanager webhook events and forward them to chosen rooms.

jaywink announced:

Matrix-Alertmanager has a new release v0.4.0 with improved formatting of alert messages and an update of Node to v14. Find more information 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
1tum.de451
2nerdsin.space568.5
3envs.net572
4matrix.sp-codes.de785
5mgp.ax.lt888
6selea.se896
7casavant.org918
8nobelium.no1089.5
9chatserver.ca1189
10mailstation.de1254

Final Thoughts πŸ’­

This is a pretty cool, Matrix-ish video! Doug shows Element-iOS and Nio running side-by-side, natively (!) on an M1 Mac Mini.

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-11-27

27.11.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

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

Closed MSCs

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're switching from QR Code verification to key verification additions. Otherwise things remain the same: MSC2844 (global versioning), MSC2366 (ready and done in key verification) and MSC2790 (modal widgets).

2020-11-27-4wL5N-stacked_area_chart.png

Dept of Servers 🏒

Synapse

callahad offered:

On behalf of the Americans on the Synapse team: Happy Thanksgiving! This past week saw us land some improvements to the OpenID Connect SSO provider, bringing it closer to parity with the SAML provider. In particular, #8801 made it possible to gracefully handle username collisions when creating a new account over SSO.

We've also merged a pull request (#8785) from @dklimpel which removes deprecated paths for the Synapse Admin APIs. As of the next Synapse release, all Admin APIs will be accessibly only under the /_synapse/admin/v1 path prefix.

Otherwise, much of our time has been spent on getting pull requests like #6739, implementing MSC2403: Add "knock" feature, ready to merge. It's coming to a Synapse release soon!

Speaking of releases, we're looking forward to cutting a first release candidate of 1.24.0 early next week; keep your eyes peeled for that!

I'd be remiss in not mentioning that we started the week by disclosing CVE-2020-26890, which is a denial of service affecting Synapse versions prior to 1.20.0. If you've not upgraded, please do.

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood offered:

Lots of features added this week including Gitter threaded conversations and Matrix reply bridging, image/file uploads, transforming mentions so notifications flow, and better looking flairs!

Not everything is available on production yet but you can try out the bridge for yourself at https://gitter.im/gitter/testing-matrix-bridge: #5faa0809d73408ce4ff3ad8e:gitter.im

We'll be working through some of the bridge oddities and hoping to open up the bridge to all public rooms on Gitter soon. You can track our full progress from the GitLab epic for the native Gitter-Matrix bridge.

2020-11-27-sCDuB-ScreenShot2020-11-27at1.37.40AM.png

MX-Puppet-VK (Na Zdorovie!)

Alexey offered:

The MX-Puppet-VK bridge for VK (Vkontakte) social network via this commit have added initial support for User tokens. This means that we now can use it for puppeting the real user account, to automatically bridge all "VK Messenger" private dialogs and groups into Matrix. Previously bridge worked only with VK community tokens as bot, to bridge only conversation with specific communities.

To get the VK User token without registering new app (and waiting approve from admins), users can reuse the "Kate Mobile" app token (or other app, that have access to Messages API) and receive it via https://vkhost.github.io/ service.

Support room: #mx-puppet-vk:inex.rocks

matrix-sms-bridge

Benedict offered:

The matrix-sms-bridge can finally be used with an Android smartphone as SMS-Gateway instead of gammu and a modem. @rebekka:imbitbu.de developed the app android-sms-gateway-server, that the bridge uses to send and receive sms messages. The new bridge version is used in combination with the app in production (medical care centre) for a week now. We have a throughput of 50-100 SMS message a day. The update is also integrated in matrix-docker-ansible-deploy.

Dept of Clients πŸ“±

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:

The new completer is now on master. Please try it out and report any issues you may find. It now actually inserts a user link, keeps a per room message history and should look quite a bit nicer and be faster, when completing emojis or user names.

There were also quite a few cleanups, most of them done by Kirillpt! Some spacing here and there, saturation changes, the login page should now be less confusing, when you don't enter a valid mxid and toggles should now not get stuck in confusing intermediate states. There is also a russian translation now and some VOIP fixes. Pretty busy week, but I like it!

2020-11-27-LCo9S-Screenshot_20201127_162000.png

FluffyChat

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

krille reported:

FluffyChat 0.23.0 is out now with password recovery options and a lot of minor fixes and UX improvements. Now also available on Flathub!! πŸ™‚ Learn more at: https://fluffychat.im

2020-11-27-nO6wZ-fluffychat-screenshot.png

Element

Nad offered:

In development

Improving usability

On mobile, we’re busy adding better suggestions to empty/starting views of screens, improving searching for contacts, improving adding other users by QR code scanning, and improving deep link integrations on Android. Expect releases for iOS & Android soon!

Spaces

Spaces UI designs & user research testing are underway, with initial development for the Element Web client kicked off too. We've been doing research & testing in private to avoid advance bias from the people we're testing with, but hope to share things publicly soon.

Social login

Social login is in review for Element Web, with synapse & mobile support hot on the tails for next week prior to releasing.

VoIP

We’ve been focusing on implementing UI for call holding, and general UI polish across the VoIP experience, to be released soon!

Releases

Element Web

Element Web 1.7.14 was released this week, which includes:

  • Several tweaks and improvements to the room list filter

  • Improved registration based on user feedback

  • Improved invite / create DM flow.

  • Future releases will no longer publish element-web to NPM, and the package is marked as deprecated

  • Renamed build artifacts from riot-.tar.gz to element-.tar.gz

  • Experimental LaTeX maths rendering support is available via a labs flag on develop. Thanks to akissinger, thosgood, uhoreg, and others who have worked on various pieces of this puzzle!

Element iOS

Element iOS 1.1.1 has been released:

  • It contains contains several major bug fixes, including end-to-end encryption bug fixes.

  • Full history available on GitHub viewing the 1.1.1 & 1.1.0 tags.

Element Android

The Element Android 1.0.11 release is pending:

  • We're working through final bug fixes.

  • Separately, we’re also working on adding missing features to the client like; managing room aliases, room history visibility, join rules, etc.

  • In the SDK, the migration of the services API from MatrixCallback to coroutines is going well, tracked here.

Vtx

CraftedCart offered:

In addition to boring stuff like being able to persist events (hopefully) right, so we don't have to initial-sync every launch, I've been making a start towards multi-account support!

You can sign in as multiple users and switch between the "active" user you want to send messages as - iit's a bit flaky for now, esp. when scrolling up to read past messages, but hey it's a start I guess

Asked if they were using an SDK:

Preeetty much doing it from scratch, though I am loosely basing the matrix-api side of it on Ruma

Source is at https://gitlab.com/CraftedCart/vtx

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix.

jplatte announced:

We gained a new contributor, kiwidu38, who added the server-default push rules, paving the way to Conduit supporting push notifications.

I improved compatibility with some commonly-broken DAG events and added rudimentary support for message edits to help Fractal finish their move onto matrix-rust-sdk.

Dept of Guides 🧭

Matrix introduction series (German)

Samuel offered:

I published the second part of the Matrix introduction series on my blog (in German). It deals with end-to-end encryption, contact verification and cross signing. https://blog.sp-codes.de/sichere-chats-mit-matrix-matrix-teil-2/.

I have not read this series so I must trust that Samuel is saying nice things! Anyway it seems like a useful resource for telling kameraden about getting started with Matrix.

Matrix in the News πŸ“°

Niklas Zender offered:

Today there is a German article about Famedly on GrΓΌnderszene -> https://www.gruenderszene.de/health/famedly-kommunikation-app-gesundheitswesen. Famedly is developing a solution based on Matrix to enable healthcare providers to communicate securely with each other and to facilitate intersectoral processes such as patient transfers or the integration of IomT devices. We have also almost completed a successful financing round and hope to support the Matrix ecosystem more and more. It would be so cool to use FluffyChat, Element, or a Matrix Messenger of your choice to start a video consultation with the doctor of your choice, or to be integrated into existing clinical communication flows concerning you!

Congratulations to Famedly on the progress they're making! If you're ready to graduate from TLAs (Three-Letter-Abbreviations) to the next stage, you'll be please to learn "IomT", which means "Internet of medical Things".

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
1maescool.be357
2heitkoetter.net367
3matrix.47q.de445
4matrix.thedisco.zone455
5kif.rocks477.5
6matrix.sp-codes.de605
7matrix.rubberboat.xyz713
8nuclearlemons.uk732.5
9casavant.org754
10dodsorf.as764

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-11-20

20.11.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

Something different this week as we welcomed the community to submit their own demos!

  1. Oleg presents his Matrix home-automation setup, which uses Opsdroid, home-assistant and the reminder maubot.
  2. Nico gives presents a selection of small-ish new features in Nheko
  3. Timo gives a tour of the current state of the Conduit homeserver
  4. MTRNord (Marcel) presents the time-tracking bot used by Famedly
  5. Sorunome presents bootstrapping (creating cross-signing keys and online keybackup) in Fluffychat.
  6. Bala from Noteworthy presents Deploy a Matrix home server in 2 minutes with Noteworthy (set to royalty free music!)

Dept of Status of Matrix 🌑️

Bundeswehr deployment and app goes live

Matthew reported:

The Matrix deployment for the Bundeswehr (German Armed Forces) has gone live - details (in German) at https://messenger.bwi.de/ and https://www.bwi.de/news-blog/news/artikel/open-source-matrix-ist-einheitlicher-messenger-standard-fuer-die-bundeswehr and further coverage at https://www.egovernment-computing.de/bwi-und-bundeswehr-setzen-auf-open-source-a-980033/

Oleg (same fellow from the video - wow!) added:

Heise (German news portal) also quoted the news: https://www.heise.de/news/Matrix-steht-als-Messenger-fuer-Soldaten-und-zivile-Angehoerige-zur-Verfuegung-4963211.html

David Mehren linked to Element's own coverage:

https://element.io/blog/bwmessenger-goes-live-for-bundeswehr/

Dept of Spec πŸ“œ

New spec platform

wbamberg said:

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:

Personally I would find that last one quite helpful!

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're sticking with the same three MSCs: MSC2844 (global versioning), MSC1544 (QR code verification) and MSC2790 (modal widgets). MSC2844 in particular I personally found quite interesting.

2020-11-20-M8ArJ-stacked_area_chart.png

Dept of Servers 🏒

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander said:

We started out this week by releasing Dendrite 0.3.0 and then ended the week with a bug-fix Dendrite 0.3.1 release.

I'd like to say thank you especially to our community contributors who have been adding new features and filling gaps!

Changes this week include:

  • Memory optimisation by reference passing, significantly reducing the number of allocations and duplications in memory

  • A concurrency bug has been fixed in the federation API that could cause Dendrite to crash

  • A hook API has been added for experimental MSCs, with an early implementation of MSC2836

  • Forgetting rooms is now supported (thanks to S7evinK)

  • The last seen timestamp and IP address are now updated automatically when calling /sync

  • The last seen timestamp and IP address are now reported in /_matrix/client/r0/devices (thanks to alexkursell)

  • An optional configuration option sync_api.real_ip_header has been added for specifying which HTTP header contains the real client IP address (for if Dendrite is running behind a reverse HTTP proxy)

  • Partial implementation of /_matrix/client/r0/admin/whois (thanks to DavidSpenler)

  • The error when registering a username with invalid characters has been corrected (thanks to bodqhrohro)

  • The -version command line flag has been added (thanks to S7evinK)

  • Backfilling should now work properly on rooms with world-readable history visibility (thanks to MayeulC)

  • Some more client event fields have been marked as omit-when-empty (thanks to S7evinK)

  • The build.sh script has been updated to work properly on all POSIX platforms (thanks to felix)

Spec compliance is unchanged, although some Synapse-specific tests have been removed and some new tests have been added:

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

Synapse

callahad offered:

We released Synapse 1.23.0 on Wednesday! Read all about it on the Matrix Blog. Otherwise, we'd like to highlight a few developments over the past week:

  • We're discussing a policy for ending support for old versions of Python and PostgreSQL. If you have opinions, please let us know on GitHub.

  • Our initial implementation of MSC2403: Add "knock" feature is undergoing review, and will likely land soon.

  • We've been looking at ways to improve the efficiency of state resolution, and Erik has managed to devise some algorithmic improvements that yield an order of magnitude speedup for a handful of pathologic cases. We hope to have a better idea of how this might work for real world workloads soon.

Lastly, we'd like to take this opportunity to remind you to please regularly upgrade your Synapse. Especially if you're not yet on 1.20.0, as we'll be disclosing a denial of service issue which affects older versions on Monday.

maunium/synapse

Tulir said:

mewmew wanted to use my fork of Synapse, so I made the changes there configurable (instead of hardcoding to my user ID) and even added a readme to list the features. It might also be useful for other people who want custom room IDs and other fun stuff.

The fork is available at https://mau.dev/maunium/synapse

Homeserver Deployment πŸ“₯️

Kubernetes

Ananace offered:

And just to be on time, I just pushed an updated tag and new version of my K8s container image and chart for Synapse 1.23.0

Dendrite

Dendrite is a next-generation homeserver written in Go

TR_SLimey offered:

I've updated the Dendrite ARM docker images to v0.3.0. They can be found at https://hub.docker.com/r/trslimey/dendrite-monolith & https://hub.docker.com/r/trslimey/dendrite-polylith

and later

I have once again updated the Docker ARM Dendrite images for version 0.3.1.

Dept of Bridges πŸŒ‰

mx-puppet-bridge

mx-puppet-discord is a (double)puppeting and relay bridge for discord, based on mx-puppet-bridge

sorunome told us:

Support for receiving EDUs from matrix (typing, read indicators and presence) has been added. Protocol implementations can start using the new events, if they want to. Version 0.1.0 has been released along with this. You have to enable the de.sorunome.msc2409.push_ephemeral flag in your registration file

mx-puppet-discord

Added support for bridging typing and presence matrix->discord

Gitter

Eric Eastwood offered:

The native Gitter <-> Matrix bridge is in production! πŸš€πŸš€ We're only testing it out in a single room but feel free to come by and send a message πŸ˜€

https://gitter.im/gitter/testing-matrix-bridge <-> #5faa0809d73408ce4ff3ad8e:gitter.im

We also have edits from the Gitter side flowing to Matrix and soon to support edits from Matrix. You can track our full progress from the GitLab epic for the native Gitter <-> Matrix bridge.

2020-11-20-YVtF0-editingmessages.gif

mx-puppet-vk

Coma Grayce told us:

Hey, our team of colorful ponies proud to introduce you a new Matrix bridge to VK.com chats. It's powered by mx-puppet-bridge and so far supports almost all of core features people want to see, like replies, message edits and file attachments.

Project home: https://github.com/innereq/mx-puppet-vk

Video introduction: https://www.youtube.com/watch?v=nBRBUA9beXs

Dept of Clients πŸ“±

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:

  • Profiles should now open again on older versions of Qt.

  • I've been slowly rewriting the message are to be qml, to make it easier to do fancy styling. As a result emojis in the emoji-completer are now colorful and the avatars in the username completer now match the avatars used in the timeline. It also open up a few other improvements, like finally sending mentions as links instead of plain text.

  • We have now CI running on our self hosted gitlab instance. We will probably switch of the travis CI, once this is more battle tested. Repositories are now also automatically mirrored between gitlab and github.

  • Fixed a bug, where we tried to read the internal world group on your server instead of keeping that to ourself.

Konheko

Nico (@deepbluev7:neko.dev) offered:

I released 0.0.3 a few days ago bundling a few smaller improvements like redactions, copying messages and the ability to click on more links as well as some visual cleanups. Nothing radical, but also nothing breaking (I hope).

2020-11-20-2M9RA-Bildschirmfoto_20201120_001.png

Element

Neil said:

Delight (Rich vdH, Michael (t3chguy), Valere, Steve, Nique, Nad)

  • Improving usability

    • Last week

      • Observed user tests of people trying to use Element for the first time for personal and professional use cases
    • This week:

      • Began work on fixing several of the issues observed, like:

        • adding an invite people button to new rooms, so users can more easily add people;
        • changing copy to help people understand what DMs are
  • Spaces

    • Communities are coming back with a bang! Last week we said we renamed them to Spaces, and this week, we’ve started designing what MSC1772 would look like for users on Element, to start user testing next week.
  • Social login

    • To make authentication easier, we’ve started initial implementations of SSO in Element, exploring how homeservers & Matrix clients can support multiple SSO providers. Most of the work so far is captured in MSC2858.

VoIP (Dave, Brendan, Ismail, Francois, Simon, Nad)

  • Web

    • PR up for new look in-call UI, now looking at line 1 / 2 support
  • Mobile

    • Work ongoing to update both platforms to v1 VoIP
  • Design

    • Some tweaks as implementation is ongoing

Web Platform (Ryan)

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

    • Several tweaks and improvements to the room list filter

    • Improved registration based on user feedback

    • Improved invite / create DM flow

iOS Platform (Manu, Gil)

  • Last week:

    • The release has been blocked because a bug has been found in the end to end encryption module. It has been fixed but we want to fix damages it created on one time keys before releasing the new app version.

    • The new background sync service mechanism PR has been updated

    • We started to integrate tuist to stop to be annoyed with merge conflicts on the Xcode project file

  • This week:

    • Release!
    • Merge the background sync service mechanism PR and make more people test it

Android Platform (Benoit, Onuray)

  • Last week:

    • We’ve just merged a lot of PRs, to improve room creation form and fix some bugs.
    • SDK side, Dominaezzz is converting some of the Service API methods to coroutines, for a cleaner code. See for instance https://github.com/vector-im/element-android/pull/2414 . 9 out of about 45 services have been migrated so far. We have about a 45 services in the SDK (!)
  • This week:

    • Release including a new way to invite friends to Matrix and to Element.

Hydrogen

Bruno reported:

Released 0.1.30 with image uploads. There is also a new preference in the settings to scale sent images down.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a Rust project to create a comprehensive set of APIs for Matrix. Previously there was a Ruma homeserver project.

jplatte said:

Since our last update four weeks ago,

  • iinuwa created issues for all of the identity service api endpoints (w/ suggested module names!) πŸŽ‰

  • I updated lots of enumerated types to allow unspecced values, for future compatibility & robustness

  • Devin R made sure a custom Content-Type in responses overwrites the default rather than creating a duplicate header. #339

  • gnieto fixed a bunch of bugs in ruma-federation-api

  • Alejandro DomΓ­nguez added support for deserializing string power levels (requires the unstable-synapse-quirks feature because these events are invalid according to the spec but Synapse used to (?) accept them)

Ruby SDK

Ananace reported:

Just released version 2.2.0 of the Matrix Ruby SDK with the help of the community, with this release support for JRuby is improved - though still not perfect, in the higher-level abstraction direct messaging rooms are now exposed for all users - as well as all that the current user has, and the lower-level abstraction sees the addition of the CS API method to get an event context.

And just to reiterate; if you're using the gem - or have questions/comments about it. please do drop into the discussion room at #ruby-matrix-sdk:kittenface.studio.

Dept of Bots πŸ€–

You can see demos of both bots in this section by watching Matrix Live \o/

home-assistant-bot v2.0.0 released

Oleg told us:

Opsdroid bot for triggering home-assistant automations.

Changes

  • ⚠️ Possible breaking change: change behavior how messages are matched

    • Before: messages were matched only if a message starts with !

    • In this version: the whole message is matched. This means in v2.0.0 this will work Hey, please !turnon light1

      • You can override this by using ^ in the config for. For example: regex: "^!turnon"
    • This allows one bot trigger another. See this TWIM video for details. πŸ˜‰

  • Add howto for setting up wakeup-light with home-assistant

  • Update Opsdroid to v0.19.0

  • Update opsdroid-homeassistant to 0.1.8

  • Add debug config parameter to display messages in the chat, that the bot is getting but, maybe, is not processing/matching

Feedback

Famedly Timetracking bot

MTRNord announced:

As seen in the video I am working at famedly on a bot to track our work hours.

Until this happens the video gives you a sneakpeak on the functions of that bot.

Current (implemented) functions

  • Tracking of time using !in and !out commands with forced usage of a description as well as ISO 8601 timestamps.

  • Verification if a time is logical based on the known data

  • Saving the times tracked inside of postgresql

  • Tracking durations using a !record command

  • Responding to only allowed users. (Including ignoring invites if a user is not allowed to use the bot.)

  • Using !delete to remove entries from the database as needed

Planned functions

  • Handling of timezones based on users

  • !stats command which prints you the tracked durations based on a predefined or custom range of time

  • CSV Export based on a defined range

  • !break command. Putting a break in between a record or a in/out combination.

  • Better handling of multiple !in commands

  • Improved responses

  • Reminders to call !out and to take breaks

Fell free to join us at #timetracking-bot:famedly.de . As soon as the repo gets opened up to public we will announce it in TWIM. Feel free to give suggestions or wishes in our room :)

Get it at: https://gitlab.com/famedly/bots/timetracking

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.net297
2neko.dev297.5
3maescool.be346
4sorunome.de396
5apetre.sc439.5
6maunium.net503
7midov.moe520.5
8matrix.sp-codes.de603
9matrix.thedisco.zone608
10casavant.org609

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-11-13

13.11.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

This marks the start of Season 6 of Matrix Live (S06E01), a decision M+A apparently made on the fly just now. Incrementing a mostly-arbitrary counter... Imagine wielding that kind of raw power!

Dept of Status of Matrix 🌑️

IETF three-way bridge

Matthew reported:

The IETF have been continuing to experiment with new chat systems, and #xmpp_bridgingmeta_jabber.ietf.org:matrix.org exists as a three-way bridge to discuss the initiative spanning Matrix, XMPP & Zulip. Really fun to see open chat converging like this :)

Dept of Science πŸ§ͺ

Analysis of the Matrix Event Graph Replicated Data Type

Florian announced:

Fresh off the arXiv presses comes our

β€œAnalysis of the Matrix Event Graph Replicated Data Type” preprint! This time, it is a deep dive into the data structure properties of the event graph:

What type of consistency guarantees does it provide, how many of the other homeservers you share a room with can be faulty or malicious without violating those guarantees (short answer: all of them!),

and how is it possible that a frayed-out event graph ever laces back to just a few current events, while there is a probability larger than zero for growth to arbitrarily high limits?

To shed light on those questions, we had a great cooperation between my Decentralized Systems and Network Services Research Group and Prof. Dr. Norbert Henze from the Institute of Stochastics.

While we are still in search of the right venue for peer-reviewed publication, we went for a preprint this time to share our results with the scientific and the Matrix community in a timely manner.

2020-11-13-WTJwJ-next-step-expectations.png

In this figure, k is the number of participating servers, U_n is the current width of the event graph.

For example, with a current width of U_n = 1000 events and k = 200 servers, we can expect that the width goes below E(U_{n+1}) < 600 events in just one step.*

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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, MSC2744 has entered FCP. As such we're switching it out for MSC2844, which aims to define a global versioning system for all spec documents. Note that MSC2844 does not currently have FCP proposed. Its purpose for being in the focus this time around is for asking the team whether ideas proposed are plausible.

Thus this week's focus is MSC1544 (QR Code verification), MSC2790 (modal widgets) and MSC2844 (global versioning).

We've also started making use of a Github board to track the state of an MSC through the currently somewhat ambiguous process of putting up an MSC that is ready for review to starting FCP. You can find the board here: SCT Backlog.

Some explanation of the columns:

  • Awaiting SCT Input - These are MSCs that are deemed reviewable by the MSC author, and require review by a subsection of the Spec Core Team (usually one or two people) that are most familiar with the scope of Matrix that the MSC is relevant to.

  • Ready for FCP ticks - At least one individual from the Spec Core Team has signed off on the MSC. It is not time for others to give a cursory review - mainly sanity checking from the perspective of the part of Matrix that they work on. Note that fundamental flaws may still be found in this stage, requiring the MSC to be reworked.

  • In FCP - The MSC is in Final Comment Period, where everyone has a last chance to get their ideas in. This happens after most of the Spec Core Team have given their ticks from the previous column.

  • Done - These MSCs no longer need immediate attention by some portion of the Spec Core Team.

These definitions are all flexible as we continue to see what works for the limited resources we have available for review.

Do not be alarmed if a particular MSC is not on this board, we're placing things on here as deemed necessary, and more will certainly be added in time.

2020-11-13-IBXkM-stacked_area_chart.png

New spec platform

wbamberg reported:

Working on the new spec platform: this week we've been simplifying the toolchain that builds and renders the spec, to make spec authoring easier and faster.

Dept of Servers 🏒

Synapse

callahad offered:

Note: We are aware of a trivially exploitable denial of service vulnerability in versions of Synapse prior to 1.20.0. Complete details will be disclosed on Monday, November 23rd. If you have not upgraded recently, please do so.

Happy RC day! The first release candidate of Synapse 1.23 is now available. For Synapse admins, we've added numerous new APIs thanks to contributions by @dklimpel, and we now support generating structured logs in a standard manner. The structured and drains logging options are now deprecated in Synapse's configuration.

Synapse 1.23.0rc1 also includes several significant bugfixes, especially around regressions in the SQLite-to-PostgreSQL database porting script, as well a fix to an issue that would prevent Synapse from recovering after losing its connection to the database. Synapse will also now reject modifications to access control lists which would otherwise result in a server blocking itself from a room. This is a particularly interesting case of unintended consequences in protocol design, and we hope to write more about it soon.

Next week should see the full release of 1.23, followed by a first implementation of MSC2403: Add "knock" feature landing in the development branch for 1.24. Look for more information in next week's edition of TWiM!

Dendrite

Dendrite is a next-generation homeserver written in Go

kegan said:

Neil is still working on P2P routing schemes and I am still working on Cerulean, but that doesn't mean nothing has happened this week! We've been busy reviewing PRs and have landed a big one this week:

  • Read receipts are now implemented (thanks @S7evinK!).

  • Usernames with = can now be created, in accordance with the spec.

Spec compliance has improved as a result:

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

  • Server-server APIs: 83%, up from 81% last week.

Synapse Deployment πŸ“₯️

YunoHost

Pierre offered:

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.21.2 (1.22.1 available in branch testing)

Element Web integration had been updated to 1.7.12 (1.7.13 available in branch testing)

Dept of Clients πŸ“±

Hydrogen

Bruno said:

Hello all. Hydrogen gained emotes (/me) this week, together with file uploads and downloads! Also, encryption keys are setup while typing instead of after sending, so you should see less momentary "the sender hasn't sent the keys yet". Also a good number of bugs were solved. Next up: image uploads!

As expected, /me commands brought a chorus of:

now that you support commands, you must add the single most important command in any decent Matrix client

- tulir

Bruno got the idea pretty quickly:

/rainbow perhaps?

Element

Nad announced:

Hello TWIM! From this week on we're changing how we're reporting updates on the Element clients. Each week, we'll include a section for cross-platform feature work the Element team is working on, and some sections for platform specific work too.

Spaces (previously known as Communities)

Communities are back! They've been renamed to Spaces, and on the Element team we've been busy exploring user experience and critical thinking for MSC1772, to allow users to organise rooms into useful groups.

Social Login

In an effort to reduce friction in authentication, we've been R&Ding how to allow homeservers & Matrix clients to support multiple SSO providers.. Most of the work so far is captured in MSC2858 and we're starting initial implementations in Element web next week.

VoIP: Voice & Video Calls

We've started foundational research, design and engineering to improve both the usability and stability of native matrix VoIP in Element. We've also started to look at how we can improve the continuity of the user experience between native Matrix calls and our current implementation of Jitsi.

Usability

We've been focusing on improving post-registration actions all round to make Element provide better prompts for first actions, and empty states for views on all platforms, with a multitude of fixes having landed on Element Web, iOS & Android in the last week. We've also started paid user testing to better understand specific pain points in the first time user experience, which we're looking to improve significantly in the coming weeks.

Web platform

v1.7.13 is now live! Which includes a bunch of fixes & improvements on VoIP.

Android platform

v1.0.10 is now available on the Play Store. We're also doing ongoing work to catch up with feature parity to Element Web, and Dominaezzz is migrating SDK APIs to suspend functions: no more MatrixCallback!

iOS platform

v1.1.0 is soon to be live on TestFlight for beta testers, and we'll soon be turning our attention to fixing end-to-end encryption regressions.

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:

  • You can now see yourself too during a video call.

  • You can change the ringtone, as the default can be a bit annoying.

  • Avatars should now not look as pixelated in some weird edge cases.

  • You can now add text after a /shrug command.

That's all, thank you trilene and MayeulC for the contributions!

Dept of SDKs and Frameworks 🧰

matrix_app_service.ex (Elixir SDK)

pierre told us:

We've (finally) released a first version of matrix_app_service.ex, an Elixir library for the application service API (hex, GitLab)

uhoreg (known Elixir fan, asked):

that's cool. Do you have any projects that are using it?

Pierre:

I don't want to "sell" it before there's some kind of poc, but with a few friends we're trying to build a bridge for ActivityPub. we're using the library of the same name by the people behind CommonsPub, of which a lot of code comes from Pleroma, so the application service appears as an ActivityPub server. it's still the beginning, and I'm just starting to think about which information a bridge needs to keep (I guess sometime I'll ask Half-Shot a big list of questions 😁)

Today might be our highest-ever Pierre-ratio in TWIM!

matrix-spring-boot-sdk

Benedict announced:

A new release integrates an embedded h2 database into matrix-spring-boot-bot, which makes it a lot easier to write bots with persistency. You only need a few lines of code to write simple bots (e. g. a ping bot). I also changed a lot under the hood (e. g. using type-safe Matrix-Id-classes instead of Strings).

matrix-sms-bridge

The matrix-sms-bridge now uses the h2 database from matrix-spring-boot-bot instead of neo4j, which makes it a lot more stable and fixes some bugs. We are using it in production with hundreds of target telephone numbers without problems. I also added an optional feature to use room aliases (e. g. #sms_4901234567:homeserver) to prevent multiple rooms with one target telephone number (which is still possible).

In a few weeks you can use this bridge with an old Android-Smartphone, which acts as an sms gateway with rest api.

Dept of Ops πŸ› 

matrix-docker-ansible-deploy

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

Slavi announced:

Thanks to Scott Crossen's work, matrix-docker-ansible-deploy can now manage Dynamic DNS using ddclient.

To learn more, follow our Dynamic DNS docs page.

Dept of Bots πŸ€–

New Matrix chat bot, Mozilla-focus first

bnjbvr announced:

I've written a small blog post about a Matrix chat bot I've developed with matrix-js-bot-sdk, it was started to address Mozilla specific features first, but then I've added a few other generally useful features too! Hope you'll like it and find it useful!

#botzilla:delire.party is the room for discussion (thanks Davo)

Dept of Built on Matrix πŸ—οΈ

gurlic.com, new social network getting Matrix integration

ahq said:

Hello Matrix friends. I've been asked to share this here. I'm currently building a platform for building communities. I'm focused on deeper matrix integration with communities, private messaging built on top of matrix, and custom domain support. Feel free to check out https://gurlic.com. The matrix community is at https://gurlic.com/matrix, but I haven't had the time to post much.

We have communities (https://gurlic.com/space -> https://gurlic.space)

We have galleries (https://gurlic.com/art -> https://gurlic.art) We have publications (https://gurlic.com/classics -> https://classics.wtf)

We have user pages (https://gurlic.com/bob -> https://bob.monster)

The UI is a little confusing now because we have longform articles (https://gurlic.com/homer/the-iliad-book-ii) and short social media posts (https://gurlic.com/privacy/post/324848317844422661).

I pretty much want all resources to have custom domain support, and matrix rooms for all communities, and nested communities. In the near future, I hope to have matrix servers for custom domains too. And of course, the source will also be open if folks want to host.

Right now, users on gurlic get a matrix account, and communities/galleries/publications get a room too, but i'm hoping to take some time to look at much deeper integration. Dendrite and hydrogen are great to build on top off...

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
1maunium.net318
2neko.dev363
3finallycoffee.eu364
4chatcloud.net384
5envs.net586.5
6acmelabs.space640
7matrix.sp-codes.de696.5
8kernelpanic.cafe750
9casavant.org834
10matrix.thedisco.zone904

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-11-06

06.11.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™ Demos Week

Demos week is fun! Reminds me of walk-around-the-office-interrupting-people week, which we don't have any longer. :(

Dept of Status of Matrix 🌑

Open Tech Will Save Us #8 will take place next Wednesday, join us! Calendar event coming soon.

  • Muhammad Radwan, on behalf of Tactical Tech, will present their work on The Glass Room Misinformation Edition. What happens when we increasingly rely on social media and the web for nearly all our information? What information do we see, and what do we miss? How do we know if a picture or a tweet is genuine or truthful? And what can we do if we can’t be sure?
  • Popi from CHATONS will present the work done by CHATONS ("Collective of Alternative, Transparent, Open, Neutral and United Hosters") CHATONS has been initiated by Framasoft, in the wake of the success of its campaign "De-google-ify Internet". A CHATONS member pledges to propose fully FLOSS-based online services, in an ethical and united spirit.
  • Hubert|Uhoreg Chathi will present on the state of encryption in Matrix, and more broadly Why the PGP model is insufficient, what properties we want from encryption (e.g. why we want perfect forward secrecy), how the newer protocols (OTR, double-ratchet, megolm) give us some of the properties we want, and then what's coming in the future (MLS, and what that gives us)

Dept of 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:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're switching out MSC2765 (widget avatars) for MSC1544 (QR code verification), and keeping

MSC2774 (widget URL template param), and MSC2790 (modal widgets).

2020-11-06-w-Fgj-stacked_area_chart.png

Dept of Servers 🏒

Synapse

callahad offered:

Happy November from the Synapse team! As mentioned last week, we pushed a small v1.22.1 release last Friday which fixed two regressions:

  • Fix a bug where an appservice may not be forwarded events for a room it was recently invited to. Broke in v1.22.0. (#8676)

  • Fix Object of type frozendict is not JSON serializable exceptions when using third-party event rules. Broke in v1.22.0. (#8678)

If you haven't upgraded your Synapse in a while, please do.

A major focus of Synapse is being able to meet the performance and reliability needs of massive homeservers like matrix.org. If you're curious about how Synapse's architecture has evolved over the years to meet these scaling challenges, check our our blog post from Tuesday: How we fixed Synapse's scalability!

Lastly, we anticipate releasing 1.23.0 in the next fortnight; keep your eyes peeled for release candidates and let us know if you have any feedback. For a preview of what's coming, check out GitHub for the new commits that have landed on the develop branch since our last release.

PLUS Matthew said:

Synapse now horizontally scales across multiple python processes, as of 1.22: you can configure it so that events are no longer sent through the main proc, eliminating the single biggest bottleneck for large scale Synapse deployments. Read all about it at https://matrix.org/blog/2020/11/03/how-we-fixed-synapses-scalability

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander told us:

Things have been quiet for Dendrite over the last week as I have been working on Pinecone/P2P and Kegan has been working on threading.

That said, a couple of minor changes have been merged:

  • Forgetting rooms is now supported (thanks S7evinK!)

  • The gjson dependency has been updated for correct integer safe ranges

Spec compliance is the same as last week:

  • Client-server APIs: 57%

  • Server-server APIs: 81%

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

Synapse Deployment πŸ“₯️

YunoHost

Pierre announced:

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.21.2 (1.22.1 available in branch testing)

Element Web integration had been updated to 1.7.9 (1.7.12 available in branch testing)

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood told us:

Exciting visual progress this week with actual bridging between Gitter and Matrix utilizing the virtualUser feature,

we've been iterating on the past couple weeks. Check out the image with all of the user avatars and display name goodness to make both chats on Element and Gitter feel one in the same!

You can also check out the live demo in Matrix Live!

2020-11-06-pC5bp-ScreenShot2020-11-06at12.23.37PM.png

Dept of Clients πŸ“±

Hydrogen

Bruno reported:

As mentioned in the sync on Monday, I was mostly distracted from Hydrogen this week. (sorry Bruno -BP) I did release the picture lightbox on Monday, and yesterday managed to close 4 bugs. There's also a community PR for better usability and accessibility in the login screen (keep those coming!) and after some work to make encryption more robust, I hope to do a release with all those goodies tonight.

Check out the demos vid for more Hydrogen!

Fractal

Alexandre Franke said:

Since a couple of weeks ago, we have merged a couple of branches that do a couple of things:

And here’s another nudge, calling for reviewers for that mega merge request for us to switch to matrix-rust-sdk.

Element for Android 1.0.10

benoit said:

Element for Android 1.0.10 has been released to the beta channel of the PlayStore. We will push it to prod if there is no major problem with it. Full release notes: https://github.com/vector-im/element-android/releases/tag/v1.0.10.

#1921 being fixed! ❀️

Element-iOS

Manu offered:

This week, we came back to the background sync work to quickly display a notified message in the app. In parallel, we created a profiling tool at the SDK level to track performance like this one.

Element Web/Desktop

Neil enunciated:

We are working through some low hanging fruit around post registration, blank screen interaction prompts and toast tweaks. We are also experimenting with SSO for matrix.org. Meaning that Element will give the user the option of either username/password or SSO. Finally, we are continuing our VoIP efforts and nailing down the designs, checkout Matrix Live for all the details. Next week we'll carry on with post registration UX, VoIP improvements.

Dept of SDKs and Frameworks 🧰

Matrix SDK for Elixir

cognitive_tea reported:

Hi all! I think this is the right place to share this 🀞. I've been working on a Matrix SDK for Elixir over the last few months as a side project, it's very early days and it's currently just a bare-bones wrapper for the Client-Server API. I've also written the Elixir/Erlang bindings for Olm (currently missing group sessions) which should be added to the SDK soon. The repo can be found here: https://github.com/niklaslong/matrix-elixir-sdk and the Elixir bindings for Olm are linked in the readme.

It is the right place! Thanks cognitive_tea :D

Asked if there were big plans for use of the project

Not as yet, though a few people have reached out to me already and are building on top of it. I started it as a way to get going with Matrix dev and as a fun side project. That being said, I think providing the tools to Matrix-enable Elixir apps might lead to some interesting things. If anyone has any precise ideas on how they would want to integrate their Elixir apps with Matrix, I'd be super happy to have a chat πŸ‘οΈ Less precise ideas are also welcome, of course πŸ™‚

Dept of Bots πŸ€–

Hemppa

Cos announced:

Hemppa the bot is a generic bot for writing modules as easily as possible in Python. Thanks to issues with Freenode IRC bridge Hemppa got a new module for basic relaybot bridging of any Matrix rooms. Relaybots are stupid, but sometimes there's no working alternative. https://github.com/vranki/hemppa#relay-bridge

Dept of Events and Talks πŸ—£οΈ

Arch Conf 2020

Brendan Abolivier reported:

I did a talk at Arch Conf 2020 last month, on a generic introduction of Matrix and how to install a Matrix homeserver on Arch Linux. The recording has just been uploaded; it can be found on CCC's media site as well as YouTube πŸ™‚

YES BRENDAN!

Matrix in the News πŸ“°

Oleg's talk, the article

emorrp1 told us:

New Matrix coverage in LWN via an Open Source Summit Europe talk https://lwn.net/SubscriberLink/835880/bd73956d4ceb6cf5/

See last week for the talk!

Final Thoughts πŸ’­

TeeCee reported:

I stumbled upon this: https://www.reddit.com/r/linux/comments/jozg0v/how_i_got_my_group_chat_to_move_to_matrix/

I love that the comments, even on Reddit, are mostly positive. A really nice report.

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.net556
2privacytools.io579.5
3maescool.be621
4casavant.org750
5apetre.sc750
6matrix.thedisco.zone1113
7matrix.org1159
8zemos.net1256.5
9matrix.sp-codes.de1263
10halogen.city2616

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-10-30

30.10.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

sometimes you'll come across us at FOSDEM and we'll say "oh it's the future", and we're trying to make this an actual thing

- Half-Shot on getting from sci-fi to reality

Dept of Spec πŸ“œ

Spec

anoa told us:

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

MSC Status

Closed MSCs:

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Also heads up, the nomenclature for Communities v2 (groups-as-rooms) is now Matrix Spaces! Check out MSC1772 for the details!

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're continuing with the widget theme: MSC2774 (widget URL template param), MSC2765 (widget avatars), and MSC2790 (modal widgets).

2020-10-30-3sOdI-stacked_area_chart.png

New spec platform

wbamberg told us:

Updates on the new spec platform: we can render HTTP APIs (https://adoring-einstein-5ea514.netlify.app/spec/client-server/#login) and events (https://adoring-einstein-5ea514.netlify.app/spec/client-server/#room-events).

Dept of Built on Matrix πŸ—οΈ

Chupacabra Social

patrick told us:

From the creators of Noteworthy, introducing Chupacabra, a Matrix powered content sharing and discussion layer.

Video demo: https://youtu.be/hAouGTL7XAQ

Github: https://github.com/decentralabs/chupacabra

Join us in #chupacabra:chupa.social to learn more.

Dept of Servers 🏒

Conduit

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

Timo announced:

Hello everyone, I have some amazing news to share with you! While Conduit is getting better at federating, Famedly (https://famedly.com) has agreed to support me working on Conduit financially. With this news come some organizational changes:

Conduit development now happens at https://gitlab.com/famedly/conduit, please submit new issues and pull requests over there. I will update all links in the coming days.

Note: Famedly does not own the project and Conduit will stay free and open source forever!

matrix-media-repo

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR announced:

v1.2.1 of matrix-media-repo, a third-party media repo for large homeservers, is out now. It's primarily a maintenance update though also has support for audio files if for some reason you need that.

2020-10-30-e_ntN-image.png

Synapse

callahad said:

Synapse 1.22.0 is out! We announced its first release candidate last week, and after a small rc2 the final release was published last Tuesday. We anticipate a small 1.22.1 release later today with fixes for messages not always being sent to app services (#8673) and serialization errors with third-party event rules (#8678).

We continue to see improved client join Apdex scores for matrix.org, indicating that our work in 1.22.0 to split background tasks into separate workers and allow for sharded event persisters successfully improved the user-visible performance of large homeservers.

In other news, we pushed a temporary hotfix to the matrix.org homeserver earlier this week, instructing it to drop all cross-user m.key_share_request messages. This was necessary to mitigate a bug in a third-party library which caused some clients to flood the server with requests. We'll re-enable these messages once we resolve issue #8677. In the meantime, we strongly encourage FluffyChat users to upgrade to version 0.21.1.

We're hard at work on the next release of Synapse, and the development branch already includes many bugfixes, several new admin APIs, and support for structured loggingβ€”stay tuned!

Dendrite

Dendrite is a next-generation homeserver written in Go

kegan said:

There is no release this week, be sure to have v0.2.1 installed for a more stable experience! A few documentation changes have been made this week:

  • Docker sample configs are now correct.

  • The MaxMessageBytes for Kafka messages is now configurable - thanks @S7evinK!

  • A reverse-proxy sample now exists for Hiawatha - thanks @ErgoPoe!

Spec compliance remains unchanged:

  • Client-server APIs: 57%

  • Server-server APIs: 81%

Things have been quiet this week because Neil has been working on new P2P routing schemes and I have been working

on a Threading proposal which will be tried out in Dendrite in the coming days.

Synapse Deployment πŸ“₯️

Kubernetes

Ananace announced:

Just pushed the Synapse 1.22.0 versions for my K8s-optimized image and Helm chart.

... πŸ•› time πŸ•— went πŸ•Ÿ by πŸ•₯ ...

Updated my Synapse chart and K8s-optimized image to 1.22.1 as well, and got the element-web chart updated to 1.7.12

YunoHost

Pierre reported:

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.20.1 (1.21.2 available in branch testing)

Element Web integration had been updated to 1.7.9 (1.7.10 available in branch testing)

Dept of Bridges πŸŒ‰

πŸŒˆπŸŒ‰ Bifrost reaches 0.2.0

Half-Shot reported:

Hey folks, today I bring you a gift wrapped rainbow coated present, which could only mean Bifrost 0.2.0 is out!.

We've been making major progress trying to align bifrost with the many XMPP clients out there like Gajim and Swift, by improving it's compatibility with the various XEPs. I've also noticed a few users have started using it to bridge their Matrix and XMPP communities together which is super cool :)

Please read the latest changelogs over at https://github.com/matrix-org/matrix-bifrost/releases/tag/0.2.0 and upgrade away!

Gitter

Eric reported:

The merge request for the native Gitter bridge has just got underway and we're making progress towards sharing all Gitter messages in public rooms across to Matrix.

We'll continue to iterate on the Gitter virtualUser support as we go along.

mautrix-telegram

Tulir said:

v0.9.0-rc1 was released last weekend. Changes since v0.8.x include:

  • Prometheus metric names are now prefixed with bridge_

  • Support for Telegram QR code login

  • Support for double puppeting for users on other servers

  • Options for automatic backfilling of missed messages and old messages when creating portals

  • Switched end-to-bridge encryption to use mautrix-python instead of the previous hacky matrix-nio solution

This week I fixed some bugs, so I'll probably make a rc2 in the near future.

Dept of Clients πŸ“±

Fluffychat 0.21.1 is released!

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

sorunome announced:

It is already in fdroid, google play and ios should follow shortly. We highly encourage people to update, as it contains an important bugfix of sending out way too many key requests, which can cause bad server performance

Features

  • New user viewer

  • Add code syntax highlighting in messages

  • Updated translations: Thanks to all helpers

Changes

  • Stories feature removed

Fixes

  • Fixes sentry

  • Fixes Android download

  • Minor fixes

2020-10-30-8rQ9F-img_20201029_152401.jpg

2020-10-30-DESJ--screenshot_20201029-152256_fluffychat.png

quotient

kitsune reported:

Hot on the heels of 0.0.9.5 beta, Quaternion 0.0.9.5 beta2 is released, fixing a couple of blunders, notably inability to build with external libQuotient. Keep testing, keep translating!

Hydrogen

Bruno announced:

Hydrogen can now show images in encrypted rooms! I hope to also release a lightbox feature this afternoon to show a zoomed version of an image.

Element-iOS

Manu announced:

This week, we have almost finished the authentication for widgets and jisti in particular. The project is now fully compatible with Xcode 12.

Element Android

benoit offered:

We are making progress on the performance side. Now sending an event is much faster than before. We also are optimizing the crypto code. All those improvements will be available in the next release (v1.0.10), maybe next week?

Besides that, we are implementing the remaining features, we are trying to have the same level of functionality (= parity) than Element Web. We know that we have a great number of bugs to fix on the existing feature, we are also trying to fight them.

As a reminder, the new Android Matrix SDK is available at https://github.com/matrix-org/matrix-android-sdk2 and a nice sample application has been developed and is available at https://github.com/matrix-org/matrix-android-sdk2-sample.

You had me at "progress on the performance side"! I am looking forward to the new Element Android :D

Element Web

Neil reported:

This week we shipped Element 1.7.12 which contains some high priority fixes, specifically:

  • Fixes secret storage / cross-signing reset to avoid asking for the previous key you no longer have
  • Fixes widget pinning and Jitsi calls when custom themes are used

Aside from that we continue to work on the voice and video calling experience as well as improving the initial onboarding experience of the app.

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:

This was an exciting week again. Trilene did the usual and just opened a PR, that implements the video part of call support. In my testing so far this seems to work amazingly well (ignore, that my webcam is crappy in the video, I only have so many devices...)! It's hard to overstate my satisfaction, if I am allowed to quote songs without getting a DMCA! If you want to try it out, you will need the qmlgl plugin at runtime (I had to patch some ebuilds on Gentoo to do so) and build Nheko from source. Support in our AppImage and Flatpak and for our Windows and MacOS builds will come at a later date. A big shoutout to trilene, who just works on VOIP in Nheko, without saying a word, and then drops a ready PR.

Another exciting new feature by lorendb, you can now specify --profile <profilename>, when you start Nheko, to create a separate profile. This allows you to open multiple instances and use multiple accounts at the same time (but it still uses separate instances of Nheko). This is pretty useful, if you have multiple accounts on different homeservers or are testing stuff for example. He also added a shortcut to delete the current content of the message area (Ctrl-U).

We also fixed a long standing bug, that crashed Nheko when pasting an image on mac OS, prevented copying text in some cases and build times should be about halfed again.

That's all I got today. I guess we should do a new release at some point?

I asked about trilene, who is a reliable Nheko contributor, Nico replied:

trilene seems to be a bit camera shy and prefer to work on code than take credit and talk about upcoming features. I'm surprised everytime, when a new PR is opened or trilene asks a weird question, that can only end up in an amazing contribution :3

\o/

Dept of SDKs and Frameworks 🧰

matrix-bot-sdk 0.5.8 out now

TravisR told us:

matrix-bot-sdk v0.5.8 is out now with experimental support for EDUs being sent to appservices (per MSC2409).

To enable it you'll need Synapse 1.22.0 (released this week) and v0.5.8 of the bot-sdk. Then, add "de.sorunome.msc2409.ephemeral": true to your appservice registration file (at the root level) and turn on the de.sorunome.msc2409.ephemeral flag in your IAppserviceRegistration supplied to the bot-sdk. If all goes according to plan, you'll be able to use appservice.on("ephemeral.event", (ev) => {}) to start processing EDUs.

Dept of Ops πŸ› 

Icinga End-to-End Check

Nik said:

I hacked together a maubot-based roundtrip test that leverages the echo bot's ping command reply and reports rtt to Icinga as a passive check result. Its practical use is scientifically questionnable, but it gives a hint on end-user experience. Find it here: https://edugit.org/nik/maubot-pingcheck

Dept of Services πŸš€

Enabling encryption for bots on t2bot.io

TravisR offered:

Starting November 28th and 29th of this year, many bots on t2bot.io will be supporting end-to-end encryption. Though not all bots will be supporting it, this is an important milestone towards getting end-to-bridge encryption enabled on t2bot.io as a proof of being able to scale to the higher demand of encrypted rooms.

The eventual goal is to support encryption on all of t2bot.io’s bots and bridges, however we need to take small steps to get there πŸ™‚. Note that in order to function, bots will decrypt all messages they see, but only respond to the ones they care about - this can still be uncomfortable for some rooms though, so feel free to kick them out.

For more detail on which bots are getting support and what all this entails/means, please see the dedicated blog post.

We teased this a little on Matrix Live last week (I think?), but so awesome to see this publicly announced.

Keymaker (Serverlist Project)

MTRNord reported:

Keymaker is a new WIP Project of some people (over at #serverlist:nordgedanken.dev ) that aim to provide a mastodon alike Server List and we would love to get some more input from the Community for this project on whats wanted, whats needed and whats maybe not that good to base on the mastodon counterpart.

This means we are building:

  • A list of Servers where Owners can add their servers

  • We try to do Quality controls (No fully self add. Servers get reviewed.) using a Code of Conduct Ruleset

  • Verified Listings using well-known files on serverside (Also allowing Admins to modify server data themself)

  • Server Details like:

    • Ping and Avalibility Stats (thanks to tulir for providing a API)

    • Public Room Lists fetched from the Server

    • NSFW Ratings (A NSFW tag was too generic for us)

    • A Section to list Rules

    • Admin addresses for easy ways of reaching the Server admins

  • Allowing to select registration state ("Open", "Invite Only", "Closed")

The Code is fully written in Rust and using Postgres as a backend. Have a look at: https://github.com/daydream-mx/keymaker

Join us at: #serverlist:nordgedanken.dev

In a further post we plan to announce the launch of this Project as a Website. Server owners might get a ping before that to allow for setting up servers for this. This Project is not yet deployed to be used.

This is really cool. I suggested it might start to kickstart people hosting their own small, publicly open servers.

MTRNord replied:

As we also allow non public servers (registration -> closed) it may also be a nice way to find communities that federate and have a look if they have a interesting room to join in the public rooms list. :)

Dept of Bots πŸ€–

Bubo

kapina-jaywink reported:

Bubo, the community helping bot-in-progress, gets releases and a new command: breakout. The command can be used to create a breakout room from the current room. Bubo will create the room, invite and make the requester an admin, and confirm in the original room. Anyone who reacts with an emoji to the confirmation will get an invite to the breakout room. Currently breakout rooms are non-public and non-encrypted by default.

Find Bubo v0.2.0 here.

Dept of Events and Talks πŸ—£οΈ

Neil on being an eng manager

Neil announced:

Hey all, I do engineering managery stuff at Element, if you ever wondered what on earth that actually means, here is a video of me going on and on about it. https://www.youtube.com/watch?v=2NflccKdGqU

Sell it Neil! This is an insightful chat - if you're interested in the dilemmas and thoughts of an eng manager, be sure to check this out!

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
1maescool.be653
2aragon.space707
3envs.net800
4matrix.vgorcum.com828
5elcyb.org1044
6neko.dev1104
7fab.network1112
8mailstation.de1128
9aragon.sh1364
10dodsorf.as1605

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-10-23

23.10.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

Dept of Spec πŸ“œ

TravisR offered:

Hello everyone, normally anoa would be doing this update but today you get me (TravisR) instead. Luckily anoa has left me a script to run, so here's hoping I haven't completely messed up this week's update πŸ˜…

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:

  • Nothing to report 😒

MSCs in Final Comment Period:

New MSCs:

Closed MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're still focusing on the same MSCs from previous weeks to get widgets over the line. This includes MSC2774 to have widgets aware of their widget ID, MSC2765 so widgets can be pretty in clients like Element, and MSC2790 to support a form of user input with widgets.

Normally there would be a graph here of our MSC progress, however my machine refuses to accept that line graphs are a real thing today. As a replacement, here's a snowfall accumulation graph for Banff as reported by Environment Canada.

Dept of Servers 🏒

mauliasproxy

Tulir told us:

I made a simple room alias proxy: https://mau.dev/tulir/mauliasproxy. It can be used to create room aliases on custom domains without having to host an actual Matrix homeserver there. The proxy basically just responds to federation room alias queries using data from another homeserver (that data is fetched with the C-S API).

Synapse

callahad reported: >

A new release candidate appears! Synapse 1.22.0rc1 was published yesterday and includes support for running background tasks in separate worker processes, as well as fixes to sharded event persisters which were first introduced in 1.21.0.

These changes significantly improved our client join Apdex score for matrix.org by making join performance both faster and less variable.

2020-10-23-q7nrn-twim-synapse-2020-10-23-sparkles.png

Synapse 1.22.0rc1 also includes support for a few experimental MSCs:

  • MSC2732: Supporting olm fallback keys

  • MSC2697: Supporting device dehydration

  • MSC2409: Allowing appservices to receive ephemeral events like read receipts, presence, and typing indicators.

Lastly, the default room version is now version 6, per MSC2788.

In the coming weeks we'll focusing on improving Synapse's resilience in smaller to medium-sized deployments, primarily through improvements to state resolution. Stay tuned!

Thanks Dan!

Today's update comes courtesy of Dan Callahan (@callahad:matrix.org), who joined Element on Monday as an engineering manager supporting the Synapse team. Dan previously worked in Developer Relations at Mozilla, and he's excited to help Matrix realize its ambitious vision for private, secure, and standards-based communication for all.

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander offered:

This week we released v0.2.0 on Tuesday, a reasonably big update containing various improvements over the initial beta release, and then followed it up with a bug-fix v0.2.1 release on Thursday.

Thanks to everyone who has been running Dendrite and reporting their findings, and also to contributors who have been submitting pull requests!

Changes this week include:

  • Dendrite no longer builds separate binaries for each polylith component, but instead has one multi-personality binary

  • Our Docker images have been simplified into two images: dendrite-monolith and dendrite-polylith

  • Internal HTTP API calls are now made using H2C (HTTP/2) in polylith mode, which resolves some head-of-line issues with the connection pool

  • Forward extremities have been refactored, which should fix some cases where room state can end up corrupted

  • A couple of bugs when handling state rewrites have been fixed

  • The sync API no longer sends old state events to clients as if they were new

  • SQLite locking bugs around the latest events updater have been resolved

  • Notification levels are now parsed correctly in power level events (thanks to Pestdoktor)

  • Invalid UTF-8 is now correctly rejected when making federation requests (thanks to Pestdoktor)

Spec compliance for v0.2.1:

  • Client-server APIs: 57%, up from 56% last week

  • Server-server APIs: 81%, up from 80% last week

As always, please feel free to join us in #dendrite:matrix.org for general Dendrite chat, and #dendrite-dev:matrix.org if you are interested in contributing!

Conduit

Timo stepped in to tell us:

This was another productive week:

  • Improved thumbnailing algorithm (higher quality, less stored data, correct)
  • Allow unjoined users to read state of world readable rooms (this makes shields.io work with conduit)
  • Docs for cross compiling conduit
  • Fixed stuck / double-join over federation
  • Fixed random timeline reload bug
  • Welcome message in admin room
  • More frequent flushing

Some WIP things:

  • Provide Conduit binaries for most platforms to make setting up or updating a Conduit instance even easier
  • More reliable sending over federation
  • Bring all features of our Ruma fork upstream

Thanks to everyone who supports me on Liberapay or Bitcoin!

Homeserver Deployment πŸ“₯️

Dendrite docker images

Dendrite is a next-generation homeserver written in Go

TR_SLimey offered:

I built some unofficial Dendrite docker images for Linux/ARM64, for those trying to run Dendrite on a Raspberry Pi, RockPro64 or others. They can be found here: https://hub.docker.com/r/trslimey/dendrite-monolith & https://hub.docker.com/r/trslimey/dendrite-polylith.

balaa reported:

Cool, we run Synapse on Pi0, Pi2 and Pi4 -- works reasonably well on each of them, i'm excited to try Dendrite

Synapse running on a Pi zero..?

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood announced:

The initial iteration of virtualUsers is in shape to merge(check out the flair πŸ”₯) and will probably deploy in a release next week. We've split the rest of the virtualUser work into follow-up issues we can iterate on. We're working on adding room ban and spam detection support for virtualUsers to stop any bad actors. Then want to start on the actual Application Service bridge (Gitter <-> Matrix).

2020-10-23-REdrD-5b2mZhH.png

If you're curious about more of the details, you can track the greater GitLab epic.

πŸŒˆπŸŒ‰ Bifrost* 0.2.0 is (nearly) out

Half-Shot offered:

I couldn't really wait to talk about before we actually hit 0.2.0 so here is a sneak peek at what's happening. We've spent a ton of time working on ironing out the bugs and making the bridge more XMPP complaint. The major headlines are:

  • Support Matrix -> XMPP edits

  • Set XMPP user displayname in the room based on their nickname (thanks uhoreg for mucking in there)

  • Improve performance of Matrix -> XMPP gateway messages and joining

  • Improve support for multiple devices for XMPP users connected to the gateway

  • maaaany bugfixes

You can read about (and run!) the latest release over at https://github.com/matrix-org/matrix-bifrost/releases/tag/0.2.0-rc1.

Incidentally, if you've not yet, then try joining some rooms such as #twim#[email protected] from XMPP and see it live!

*rainbum, as Mathijs prefers

Dept of Clients πŸ“±

Hydrogen

Bruno said:

Hydrogen gained a settings panel this week with a better session backup UX and your end-to-end device information, which should make the manual verification easier. Messages with multiple lines are also rendered as such now, which makes a big difference in usability. The app also works offline again after session backup broke that. Apart from that, several smaller fixes also landed.

2020-10-23-wMcAA-image.png

Also, image decryption is well on it's way with a prototype working. πŸŽ‰

Fractal

Alexandre Franke reported:

The massive MR to switch to matrix-rust-sdk is still being reviewed and help is still welcome. We have been working on other stuff as well. Actually, since our last news piece for the release of 4.4, quite a lot happened (around 60 commits) that we haven’t reported here yet:

  • Users can now go to the room settings to toggle notifications for each room individually.

  • Rounded corners around everything to match the latest upstream design tweaks (in Adwaita, the official GNOME theme).

  • Many maintenance changes: several dependencies have been updated, cleanups in various places, tightened flatpak permissions for better sandboxing…

And that’s not all! Good progress has been made towards rendering formatted_body. Hopefully that should be merged soon.

2020-10-23-yBL4B-image.png

Element Web

Ryan offered:

We released Element 1.7.10 on Tuesday with some high priority fixes:

  • Several bugs fixed for both all widgets as well as a few specific to Jitsi call widgets

  • Widgets are now working again in Safari 13.1 (regressed by 1.7.9)

Quite soon after that on Wednesday, Element Web 1.7.11-rc.1 made it's way to staging:

  • Improved state management for voice / video calls

  • Revamped pinned widget UI to support resizing and more flexibility

Fluffychat

sorunome told us:

Fluffychat 0.20.0 is out! It should be available in fdroid, google play and on iOS soon!

Features

  • Added translations: Arabic

  • Add ability to enable / disable emotes globally

  • Add ability to manage emote packs with different state keys

  • Add swipe to reply - Thanks @inexcode

  • Initial support for compiling to desktop

  • Initial snap metadata - Thanks @RAOF_47

  • Add latex parsing as per MSC2191 - $tex$ for inline and $$ for blocks

Changes

  • Re-scale images in a separate isolate to prevent the UI from freezing

  • URLs without https:// now linkify

  • Parse all URIs, not just URLs

  • emails will linkify now

  • Make sure login to dendrite is working properly

Fixes

  • Fix amoled / theme settings not always saving properly

  • Show device name in account information correctly

  • Fix tapping on aliases / room pills not always working

  • Link clicking in web not always working

  • Return message input field to previous state after editing message - Thanks @inexcode

2020-10-23-ufb7O-img_20201023_180547.jpg

MTRNord added:

perfect for university start. Finally I can write the thesis in the University matrix ;P

Element Android

benoit offered:

Element Android v1.0.9 is now available on the PlayStore. For the next release (1.0.10), we will optimize the performance (again!). We already have made some progress when sending a message to a room. We are now working on the crypto module and also we will probably upgrade the Realm database library, which seems more stable now. Besides that, we are still implementing the remaining features with the objective of getting a good feature parity with the other Element Matrix clients.

Element-iOS

Manu reported:

This week, we have been working to upgrade libs and tools to be compatible with Xcode 12.

We are making good progress to revive a kind of background sync so that a message appears quicker in the timeline when you tap on its notification. Authentication for widgets is still in progress.

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:

  • Nheko now shows the filename of an image on hover. (Contributed by kamath_manu)

  • Nheko now shows the fontname in the font selection rendered using that font. This makes it easier to know, how the font will look, once you select it. (Contributed by lorendb)

  • Fixed a crash when closing Nheko. While this didn't really cause issues, since you were closing it anyway, it's just bad form to crash instead of exit properly.

  • Removed the membercache. Nheko used to load all members on startup and store them in memory. This made startup slower. Removing it sped up the start by a nice chunk and freed about 30MB of RAM on my system. One step closer to using reasonable amounts of RAM!

  • Fixed excessive clipping when rendering the timeline. This prevented all batching of text messages. Now it only clips the replied to message, which makes scrolling much smoother again!

Finally, some controversial change, which is currently in master but may be reverted at some point: Nheko now automatically forwards keys to verified devices, when they request the keys, without prompting you. While that can be toggled off in the settings, it currently defaults to on. This weakens backward secrecy of e2ee a bit, but it makes it possible to recover from e2ee issues much more easily. Currently I'd argue, that it is an acceptable tradeoff. It is very hard to verify room membership of users at any point in time but the current one and room membership is not verified end to end in any way, so you need to trust the server to provide you with the correct memberlist or you just send keys to verified users. While Nheko still sends keys to all members of a room, when creating the session, it only forwards your own keys to trusted users without prompting you. Currently I think this is an acceptable tradeoff, as opening a popup with "user x wants to have session y shared in room z" is unlikely to be understood by anyone properly either. I'd be glad to hear your opinions though!

That's it for this week, but next week will be interesting too. Lorendb has been hacking on profile support, allowing you to run multiple login sessions of Nheko in separate windows and some other UI features.

Dept of SDKs and Frameworks 🧰

Ruma

iinuwa reported:

In the past couple of weeks we implemented the last endpoint for the Federation

API. We are working on smoothing out some rough edges in the ruma-federation-api crate, like a few that @Timo addressed this past week, so it will be a little while

before it's completely finished.

We've also created a milestone to track implementation of Identity Service API,

the last Matrix API we have to complete.

Finally, we've created a new Matrix room focused on Ruma development,

#ruma-dev:matrix.org, focusing the original room #ruma:matrix.org on Ruma usage.

quotient

kitsune told us:

Quotient 0.6.2 has been released, with a couple of minor bugfixes. This release is used as a foundation of Quaternion 0.0.9.5 beta that's also getting out today - with support of (proper Matrix subset of) HTML, rich text user links (like pills, only lighter), initial Markdown support (if you build with fresh enough Qt), reactions (thanks to Karel Kosek @krkk), navigation to earlier events (thanks to Roland Pallai @rpallai) and quite a few other improvements. To make this release Quaternion had to gain its own basic HTML parser and Matrix-to-Qt-to-Matrix converter, which is likely to end up being a separate micro-library, in the hope that it will be useful for other Matrix projects building on Qt (even non-Quotient ones). A separate call to translators - quite a few strings got updated, so please head to Quaternion project at Lokalise and push the numbers at least to 80%!

Dept of Events and Talks πŸ—£οΈ

Three talks this week!

Matrix talk at Open Source Summit EU (virtual)

Oleg announced:

If you are visiting the OSS EU next week - come to the Matrix talk. πŸ˜‰

Or join us at #welcome:osseu2020.fiksel.info !

dette er pΓ₯ utenlandsk

dandellion reported:

In august I held an introduction to and demo of matrix talk during a conference hosted by my local makerspace.

This week the talk was uploaded! (Norwegian) https://www.youtube.com/watch?v=s9Xd0Wg_XqA

AstriCon Plan (9) on building Omnichannel contact centers with Matrix (and other tech)

Matthew said:

Jose Franco gave a great talk at AstriCon Plan (9) on building Omnichannel contact centers with Matrix, Asterisk, Kamailio and friends. You can see the video at https://youtu.be/7S6GZz8f91o?t=18558 and the talk details at https://astricon2020.sched.com/event/e0GA/blending-open-source-rtc-tools-to-build-an-omnichannel-contact-center

Dept of Interesting Projects πŸ›°οΈ

Noteworthy (matrix powered distributed overlay networks via WireGuard)

balaa told us:

hey TWIM peeps! we’ve updated the README for our project Noteworthy (matrix powered distributed overlay networks via WireGuard) https://github.com/decentralabs/noteworthy - join us over in #noteworthy:tincan.community with questions / comments!

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
1maescool.be528
2chatcloud.net533.5
3matrix.thedisco.zone654.5
4pc.koesters.xyz:59003779
5shortestpath.dev817.5
6helderferreira.io851.5
7aragon.sh898
8pleasecuminside.me1176
9dodsorf.as1253
10envs.net1304.5

That's all I know 🏁

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

This Week in Matrix 2020-10-16

16.10.2020 00:00 β€” This Week in Matrix β€” Ben Parsons

Matrix Live πŸŽ™

In which I chat with Kitsune about the work done to get a Matrix URI schema agreed, and the state of the work.

See also, Open Tech Will Save Us #7 took place this week! Go watch.

Dept of Status of Matrix 🌑️

Meta-counting

As a crude measure of growth, Matthew commented about #twim:matrix.org:

I love that this room has ~700 people in it, spread over ~350 servers :D

That is something to love. Come join us in the room to share your news and see what's new from others.

Elokapina (Extinction Rebellion Finland) migrates to Matrix

kapina-jaywink told us:

In recent weeks the XR Finland community has been moving over from Wire to our own Matrix homeserver for encrypted secure chat. This was something that had been planned for a while but kicked off in recent weeks due to Wire suffering from serious encryption key delivery issues, causing messages for many to be unreadable in large groups. Currently we've migrated almost 300 rebels with more to come. Feedback has mostly been very positive, people generally like the Element clients 🀩 One of the interesting changes has been a huge uptick in the amount of discussion, which can be taken as a good sign. The plan is to next start bridging to some of the international XR chapters, for example those on Mattermost, Telegram and Slack. And maybe get them over to Matrix too eventually ;)

To aid in community management, we've started creating a bot called Bubo. Right now it mostly helps with maintaining rooms and allowing mass invites, but more features to help the community cooperate are coming. We were planning to utilize (actual) communities so it has some functionality for those, but decided then to wait for the communities rewrite. It doesn't yet have any releases, will update in coming weeks as features are added and releases made.

kapina-jaywink also

wants to clarify that XR is a decentralized movement and this does not mean other chapters will adapt Matrix - but we can hope and for sure here in Finland we'll be spreading the good experiences to other chapters ;)

Dept of Spec πŸ“œ

New Spec Website!

wbamberg told us:

We're working on a new platform for the specification docs, aimed initially at improving navigation and general usability.

The initial demo site is at https://adoring-einstein-5ea514.netlify.app/spec/ and the main tracking bug is at https://github.com/matrix-org/matrix-doc/issues/2822

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:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, widgets are still the main focus: MSC2774 (widget URL template param), MSC2765 (widget avatars), and MSC2790 (modal widgets).

2020-10-16-KA5Yo-stacked_area_chart.png

Dept of Servers 🏒

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander reported:

We released our first beta last week and we've been busy taking feedback from the community and fixing problems as they have been reported to us. We will be cutting a v0.2.0 release candidate later today, which contains a significant number of important fixes and performance improvements.

We didn't publish a full changelog last week due to the beta announcement, therefore the following list includes changes from the last two weeks:

  • Database migrations are now ran automatically at startup

  • State resolution v2 performance has been improved dramatically on large state sets, seen to be running up to 20x faster in some rooms

  • Dendrite no longer runs state resolution over single trusted state snapshots

  • Monolith deployments with Kafka now work again (each component sets up connections independently to avoid duplicate consumers)

  • Dendrite now correctly rejects invalid UTF-8 - thanks to Lesterpig

  • Fully read markers are now handled - thanks to Lesterpig

  • The completed field is now returned properly for user-interactive auth - thanks to Lesterpig

  • The devices table now tracks last seen timestamps, IPs and user agents - thanks to S7evinK

  • A bug has been fixed in the reverse topological ordering algorithm which resulted in us giving up on inbound references after the first prev/auth event

  • A bug with concurrent map writes in the rate limiting in the client API has been fixed

  • Forward extremities and their previous events are now checked fully against the database

  • Typing events are now ignored if the sender domain doesn't match the origin

  • Duplicate redaction entries no longer result in database errors

  • Some bugs in /send have been fixed where the full room state wasn't requested properly before sending a new snapshot to the roomserver

  • The membership updaters now use database writers properly, which fixes some SQLite locking issues

  • The sync API no longer burns CPU processing unnecessary device key change notifications

  • QueryStateAfterEvents now resolves state from multiple snapshots properly

  • Cumulative room state is now sent to the roomserver when creating rooms locally

  • Missing auth events will now be retrieved from multiple servers in the room if necessary

  • Federation requests now have variable timeouts, allowing us to wait much longer for a remote server to process certain tasks

  • The /send endpoint now returns 500 errors far less often, reducing the frequency that other servers back off from sending to Dendrite

  • Backfill no longer uses the request context for persisting events, which was resulting in us failing to store those events sometimes

  • Invite stripped state from the sync API now includes the stripped invite itself, so that Element Web can display who sent the invite properly

  • The signing key fetch mechanism no longer gives up if it is unable to fetch specific keys

  • Handling of invalid display name or avatar URLs in membership events has been improved

Spec compliance has improved a little:

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

  • Server-server APIs: 80%, up from 79% last week

As always, please feel free to join us in #dendrite:matrix.org for general Dendrite chat, and #dendrite-dev:matrix.org if you are interested in contributing!

Good grief that's a big update! For a video discussion of the status and future of Dendrite, check out Open Tech Will Save Us #7.

Matthew added:

my personal dendrite is now in roughly the same set of rooms as my personal synapse. Dendrite is idling at 180MB of RAM, Synapse is idling at 1.8GB of RAM :)

Conduit

Timo:

Hello everyone, this week we merged the federation branch into master. It's not ready to be used properly yet, but we're merging it as it seems stable enough for now. We also improved performance of the federation branch a lot by turning off debug logs.

Other news:

  • I opened two issues on element-ios which currently break register and login support on Conduit, making it completely unusable. Hopefully they can be resolved soon (https://github.com/vector-im/element-ios/issues/3736, https://github.com/vector-im/element-ios/issues/3737)
  • I'm working on an MSC for threading. It's still WIP, but you can take a look here: https://demo.codimd.org/s/SykbuAUwP

Thanks to everyone who supports me on Liberapay or Bitcoin!

Synapse

Neil offered:

Stonking week for Synapse as we landed sharded event persisters and deployed to matrix.org. This is the last significant component other than the main process to go through the sharding process and a major hurdle in horizontal scalability of Synapse.

Initial results look good with event persistence apdex improving, however we think there are still some significant performance improvements available through configuration and will continue to experiment.

2020-10-16-I-Plk-Screenshot2020-10-16at17.23.31.png

We also moved off background processes from the main process. This is significant because it means that while the main process is not shardable it really doesn’t do anything anymore other than orchestration.

Again the initial impact looks very promising and we will continue to tune. Having moved the background processes away it also makes profiling the main process that much easier.

2020-10-16-fuKDh-main-cpu2.png

Aside from all of that we continue to progress room knocking put out a 1.21.2 - a bug fix release though please please ensure you are running at least Synapse >= 1.21.0 since 1.21.0 contains a XSS security fix.

Next week we will carrying on tuning matrix.org and start to look at improving state resolution performance.

Synapse Deployment πŸ“₯️

Kubernetes

Ananace told us:

Just pushed the updated image tags and chart version for my K8s-optimized Synapse image for version 1.21.0, as well as a chart update for element-web 1.7.9

then later

And to expand on my previous update, got Synapse 1.21.2 up on the chart and K8s-optimized image.

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.20.1 (1.21.0 available in branch testing)

Element Web integration had been updated to 1.7.8 (1.7.9 available in branch testing)

Dept of Bridges πŸŒ‰

Bridges increase their presence

Half-Shot told us:

Small bit of news I wanted to talk about from Bridge Island. My implementation for MSC2409 has been merged which means appservices / bridges can now listen in for incoming presence, typing and read receipt events! This means that the Slack bridge can now reliably send your typing status to Slack, and Bifrost can reliably bridge your everything to XMPP. The MSC is still in flux and could change, but for now this could really improve the native feeling of bridges :)

(Oh and I should mention anyone using matrix-appservice-bridge v2.2.0+ can use this behaviour for free)

mautrix-python implements Half-Shot's new features

Hot on his heels, Tulir announced:

I've been adding support for the MSCs Half-Shot implemented in Synapse to my bridges:

  • Enabling end-to-bridge encryption now uses appservice login (MSC2778), which means setting up the shared secret login module is no longer required for e2be.

  • mautrix-python has support for receiving ephemeral events via MSC2409 in a branch, which will be merged once Synapse v1.22 is released. After it's merged, /syncing with double puppets will no longer be necessary to bridge ephemeral events.

Both of these will also be implemented in mautrix-go/whatsapp soon.

Now I just need Half-Shot to make synapse send to-device events to appservices, after which bridges won't need any hacky /syncing at all.

Dept of Clients πŸ“±

Hydrogen

Bruno offered:

Several releases this week (0.1.11 to 0.1.15) with lots of changes:

  • url-based navigation has landed! All navigation in the app is now done through urls, meaning you can also bookmark any UI state (e.g. grid configurations).

  • fixed 2 memory leaks (exposed now because you can unload your session without refreshing the page)

  • fixed an issue with libolm running out of memory if you send a message to more than 44 devices (see issue #150).

  • some logical additions now we have url navigation: restoring the last url when opening the app with the default route, and a button to close your session and go back to the picker.

  • the app now blocks concurrent access to the same session from different tabs (it just closes the session in the non-active tab). This will prevent multiple syncs tripping over each other writing to indexeddb (e.g. ConstraintErrors and friends).

  • updates are announced in the app (for now through a confirm dialog, but will use an in app notification once we have it)

  • fixes updates not installing on iOS, by having an update prompt. To get this update on iOS though, you'll need to unpin the app, and pinning it again. You'll need to login again after this. All future updates should be installable through the update prompt once you have 0.1.15 though, you won't have to do this again normally.

  • uses the hydrogen icon when pinning on iOS

I really recommend hitting https://hydrogen.element.io/ - what great progress!

Element Android

benoit reported:

We are currently preparing the release of the version 1.0.9 of Element Android, which contain searching messages in clear rooms and a lots of other improvements and new features.

The SDK 1.0.9 will also be released, with an updated readme, and a brand new sample app, written by Ganfra. It will help developers to start using the new SDK and can be found here: https://github.com/matrix-org/matrix-android-sdk2-sample. This sample app is able to let the user connects to an existing account on any homeserver with password login, display the room list, display a room timeline and send message to a room. a brand new sample app

YES! This is the best documentation

Element-iOS

Manu offered:

This week, we released 1.0.16 on the App Store (and TestFlight).

Konheko (Sailfish client)

Nico (@deepbluev7:neko.dev) offered:

I published the first preview of my Sailfish client called Konheko. While you can run Android applications on Sailfish, they usually are a subpar experience, since they really don't fit the platforms design and style and also usually don't properly send notifications.

So about a year ago I started working on a Matrix client for SailfishOS, but I never really made much progress. Well, last weekend I did, and so it can now send plain text messages as well as various forms of media messages, I made a basic application icon and I've been using it this week already (for unencrypted rooms).

It is still missing a lot of features, but if you want you can install it from OpenRepos. Sources are available here. Just be aware, that it currently stores all messages in RAM, so every restart will take forever to load your rooms and it may run out of RAM at some point. Storing messages in some database will come at some point. Also, a lot of menus may lead nowhere, since those are just placeholders for me atm.

2020-10-16-QApie-Bildschirmfoto_20201016_002.png

2020-10-16-I5_7M-Bildschirmfoto_20201016_007.png

SchildiChat Web/Desktop

SpiritCroc announced:

Recently, I tweaked Element-web to feature a few changes similar to SchildiChat for Android.

For now, it's probably best seen rather as a proof-of-concept than a finished product, as there are still some layout bugs, and no settings available for the added features (I know some people prefer separate lists for direct and group chats). I consider it usable though.

Particular changes compared to upstream Element-web include:

  • A common section for groups and direct chats in the overview

  • Message bubbles

  • Bigger items in the room overview

  • A different dark theme, similar to SchildiChat for Android

I don't know how much I will work on this in the future, but I figured it might be interesting to share either way. Maybe even someone with more web-development skills than me might want to help improving it :)

For further discussion, I have created #schildichat-web:matrix.org .

The current version of SchildiChat-Desktop is available for Desktop here, and I host the web variant here. If you want to build it yourself, check out this repo.

2020-10-16-oMUqR-1.png

Element Web

Neil offered:

Element 1.7.9 has landed, highlights include

  • Many small fixes with edits and replies

  • Fixed a race during cross-signing key upload at registration time

  • Clarified when you have unsaved changes in profile settings

Aside from that has been pushing on with the widgets project. A picture says a thousand words, so here you go.

2020-10-16-wZher-image.png

As you can see T3chguy was really pleased to have me interrupt him to take this picture. Expect the new design to merge next week.

Finally we will most likely ship a new release next week to fix some Jitsi bugs.

Dept of Ops πŸ› 

Wake-on-LAN bot

JCG announced:

I wrote a Wake-on-LAN bot to wake up hosts by sending a matrix message. It is configurable with multiple hosts and has a list of users per host who are allowed to wake it up. It's using the matrix-rust-sdk, source is available over at https://git.jcg.re/jcgruenhage/matrix-wol, and if anyone has questions, feel free to join #matrix-wol:jcg.re.

When I asked what this is used for:

I have stuff on my workstation that I need access to most of the time, but keeping it running uses too much power (but I did it anyway so far), this is so that I can suspend it when I leave but can still power it on when I need something from there on the got

Dept of Events and Talks πŸ—£οΈ

Talking about Bridges and Bots in Matrix (German)

Oleg announced:

I was invited to the German Podcast MacMittwoch (no, it's not only about Macs) to talk about Bridges and Bots in Matrix. It was a very interesting and funny round.

Here is the recording:

Dept of Interesting Projects πŸ›°οΈ

matrix-emoji-upload

mewmew offered:

This is a script I've created for use with MSC2545. It allows easy uploading of emoji packs to Matrix rooms. Feel free to check it out on Gitea, or join the project room #matrix-emoji-upload:blob.cat if you have any questions/comments/issues.

n8n.io support

Matthew announced:

n8n.io (FOSS extendable workflow automation) just added Matrix support! https://n8n.io/integrations/n8n-nodes-base.matrix and https://github.com/n8n-io/n8n/pull/1046

Exciting! Yet the saga that followed only adds to the excitement!

First Oleg noticed a problem:

Could it be that only matrix.org as HS currently is supported?

I'm getting Matrix credentials are not valid! and I see the request to matrix.org on a traffic capture.

jaywink discovered the alarming truth:

the original PR mentions mantrixorg indeed: https://github.com/n8n-io/n8n/pull/1024 .. sounds like PR time for someone :)

Tulir, like a coiled spring, provided a PR:

well now it's a pull request https://github.com/n8n-io/n8n/pull/1065

...

oh nice it got merged already

Faelar noticed:

For those not following on github, n8n released a new version including the fix for homeserver

Oleg, who brings us back to the start said:

Just tested it.

It works! πŸ₯³

Open Source!

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.net466.5
2midov.pl531
3mdpnd.ch540
4chatcloud.net569
5elcyb.org801
6fab.network967
7conduit.rs1168
8envs.net1863.5
9blob.cat2660
10aragon.sh2743.5

That's all I know 🏁

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