Matrix Live

Unfortunately no Matrix Live this week!

Dept of Spec πŸ“œ

Andrew Morgan (anoa) says

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

MSC Status

New MSCs:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

This week and the week afterwards, the Spec Core Team are mostly focused on improvements to Matrix that we'd like to show off at FOSDEM 2023 this year! That consists of MSCs related to Faster Room Joins (MSC3943 among others) and Extensible Events (MSC1767).

Random MSC of the Week

The random MSC of the week is... MSC3230: Spaces top level order!

This defines an algorithm and a data structure that can be used to order one's top-level list of Spaces and have that order sync across all of their clients. Rooms and spaces within a Space continue to have their order defined by an order key (and failing that, the origin_server_ts field) in the corresponding m.space.child event of their parent's Space's state.

I won't get into the details of the algorithm here (or its criticisms), but feel free to jump into the MSC and take a look!

Dept of Servers 🏒

Synapse (website)

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

dmr says

This week the Synapse team has been finishing a sprint on the faster joins project. As a reminder, this is a year-long project to make Synapse quickly join a new room by lazily loading some of its state history in the background. It is particularly needed when joining large rooms with lots of members: joining such rooms is bottlenecked on fetching, serialising, deserialising and validating a huge list of room member events. While the core logic and machinery has been in place for some time now, this sprint has concentrated on two pain points:

  • making faster joins to work on Synapse installations using workers, and
  • remaining edge cases needed for a good client UX.

Call for testers

We hope to ship the first iteration of faster joins support in Synapse 1.76.0. The release candidate 1.76.0rc1 will be released on Tuesday 24th Jan. We'd like to encourage homeserver administrators to try it out before the release proper. Once you've upgraded, try joining rooms which no-one else on your server is joined to. We graciously welcome any bug reports---please file GitHub issues if you find anything out of the ordinary after joining a room.

Synapse 1.75

We released Synapse 1.75 (see blog) this week. Its highlights include:

plus the usual selection of bugfixes, internal improvements and work on the faster joins project.

Our continued thanks to our community of admins, testers, contributors and end-users.

Dendrite (website)

Second generation Matrix homeserver

Till says

This week we've released two versions of Dendrite, 0.11.0 being the most recent one, and probably most exciting one, given we now reached 100% server-server parity to Synapse, with client-server parity at 93%!

Version 0.11.0 today:

Features

  • Added /_dendrite/admin/purgeRoom/{roomID} to clean up the database
  • The default room version was updated to 10 (contributed by FSG-Cat)

Fixes

  • The last three missing server-server Sytests - bringing us to 100% server-server Synapse parity (93% for client-server) πŸŽ‰
  • An oversight in the create-config binary, which now correctly sets the media path if specified (contributed by BieHDC)
  • The Helm chart now uses the $.Chart.AppVersion as the default image version to pull, with the possibility to override it (contributed by genofire)

Version 0.10.9 on Tuesday:

Features

  • Stale device lists are now cleaned up on startup, removing entries for users the server doesn't share a room with anymore
  • Dendrite now has its own Helm chart
  • Guest access is now handled correctly (disallow joins, kick guests on revocation of guest access, as well as over federation)

Fixes

  • Push rules have seen several tweaks and fixes, which should, for example, fix notifications for m.receipt
  • Outgoing presence will now correctly be sent to newly joined hosts
  • Fixes the /_dendrite/admin/resetPassword/{userID} admin endpoint to use the correct variable
  • Federated backfilling for medium/large rooms has been fixed
  • /login causing wrong device list updates has been resolved
  • /sync should now return the correct room summary heroes
  • The default config options for recaptcha_sitekey_class and recaptcha_form_field are now set correctly
  • /messages now omits empty state to be more spec compliant (contributed by handlerug)
  • /sync has been optimised to only query state events for history visibility if they are really needed

If you have a Dendrite homeserver, staying up-to-date is highly recommended so please upgrade when you can. Otherwise, if you want to play with Dendrite without having to set up your own infrastructure, the dendrite.matrix.org homeserver is open for registration (upon completion of a CAPTCHA, so you may need to register using Element Web).

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

Dept of Bridges πŸŒ‰

matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot reports

Hookshot 2.7.0

Howdy! This release features one change, but an important change: We've finally fixed the poor UX around adding new connections in rooms via widgets. Up until today, the project selector input was quite poor and flaked out a lot. Missing search results, clipping dropdowns or duplicated entries were a common occurrence.

The new input field features a much improved look, so now you see the project name, description and avatar when searching across GitHub, GitLab and JIRA. The search time and accuracy should be much improved too.

If you've updated to the previous releases, 2.6.0,1, then now is a good time to do so because those releases contained a whole range of cool new stuff!

Check out 2.7.0!

Dept of Clients πŸ“±

Nheko (website)

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

red_sky (nheko.im) announces

Nheko has another release already. Shortly after releasing v0.11.0, we discovered a CPU utilization issue that causes nheko to use excessive CPU, even when idle. We have released v0.11.1 to address this issue and also add a failure state for pending sent messages (to help avoid them getting stuck in the queue). Packages are available at https://github.com/Nheko-Reborn/nheko/releases/tag/v0.11.1 and on flathub for the flatpak users.

FluffyChat (website)

Krille says

I wrote a blog article about updomcing UX changes with DM rooms in FluffyChat here: https://ko-fi.com/post/UX-in-the-matrix--How-to-handle-direct-messa-M4M6HVHU6?justpublished=true&alias=UX-in-the-matrix--How-to-handle-direct-messa-M4M6HVHU6

Element Android (website)

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

benoit says

We are making big progress to set up ElementX. The new architecture of the project has land to develop, and we are making the final cleanup. Next steps will be to integrate the Rust Sdk in a more professional way. For now it’s an AAR built manually and copied to the project. We are also writing documentation to help onboarding developers on this project!

Dept of SDKs and Frameworks 🧰

matrix-rust-sdk (website)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

ben says

First and foremost: UniFFI async is all done and submitted for review πŸŽ‰ and first responses are pretty positive. Discussion has revealed some unlikely but possible undefined behavior that needs to be addressed and more review is needed. But overall, we are pretty confident that this will land soon. πŸš€

Where there is light, there is shadow: When trying to integrate the community sqlite db backend we ran into a terrible bug in the underlying library that led to eventually having to abandon that port and go with a fresh implementation based on a different library - we are confident to show something, at least for crypto-db, fairly soon. Talking about crypto, aside from a few smaller improvements the JS bindings on top have gotten some typing improvements this week, too.

Timeline has support for state events now, too.

On Sliding sync we are looking at stabilization (tracking issue) and optimizing for time-to-first-usage ahead of FOSDEM and getting a first iteration into the hands of people out there as part of Element-X. It’s a painstaking process with plenty of small fixes and improvements on all parts. Through that and debugging on the interaction with the higher layers we were already able to shave off 900ms at cold-start-display-time, with more to come and other fixes, like logging improvements, done along the way.

οΈπŸ‘‰ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Ops πŸ› 

jaywink reports

Matrix-Alertmanager, a bot to relay Alertmanager webhooks to Matrix rooms, got some new releases recently (latest v0.7.0). Basic auth is now supported for authentication and the Docker image size has been reduced by a large factor.

https://github.com/jaywink/matrix-alertmanager

Dept of Bots πŸ€–

matrixfy (website)

VaiTon says

Greetings, fellow music lovers (and matrix enjoyers)! I had a brilliant idea whilst lounging on my couch, stuffing my face with pizza, and realized that I was too darn lazy to keep opening Spotify every time I want to skip a song. And lo and behold, I discovered that there was no way to command my Spotify account from the comfort of my Matrix room. So, I decided to create a bot to do the job for me (how convenient, right?).

It's currently in its alpha state, but any contributions are welcome, especially if you're a coding wizard.

To use it, all you need is a bot account on your favorite homeserver and a bit of setup magic. Check out the GitHub link for more information: https://github.com/VaiTon/matrixfy

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

FOSDEM 2023 Matrix Community Meetup (matrix room)

HarHarLinks announces

Are you as excited for FOSDEM 2023 as we are? Do you want even more Matrix programming? (hehe)

Join us for our Matrix meetup and BarCamp at HSBXL (how to get there, how to get in) on Friday (3. February) before FOSDEM starting 13:00 (1 pm) local time (CET) until the beer tasting starts in the evening. Thanks to our sponsors, we will have Pizza πŸ• and drinks 🍻!

Find all the info here and join #fosdem23-community-meetup:matrix.org to stay updated and related discussion.

See you there!

Dept of Interesting Projects πŸ›°οΈ

bcorn says

Hello everyone! I’m a CS Ph.D. student at the University of Washington. My team is studying users’ privacy concerns when reporting unwanted messages on encrypted messaging platforms (e.g., WhatsApp, Signal, Matrix). We have already talked with 14 E2EE users but near the end of our project, we would to understand how community moderators actually moderate their communities. You can learn more about the study here (https://homes.cs.washington.edu/~leijiew/projects/privacy-of-reporting.html). If anyone who has moderation experience is interested to participate in our one-hour online interview study, please feel free to DM me on Matrix. We can use any preferred medium you like (such as audio calls or texting).

Dept of Guides 🧭

A guide on double-bridging a Matrix room with Signal and Whatsapp (website)

Ninananana announces

Hi everyone!

Some time ago, @james:ninasstuff.xyz and I became curious about using Matrix to bring together a split group of friends, of which half was on Signal and another half on Whatsapp. We knew that double bridging a Matrix room was possible, but we couldn't find a hands-on guide to do so. Therefore, we decided to write our own :)

Presenting it to you: How to unite Signal and WhatsApp groups using Matrix. Hopefully some of you will find it useful!

Dept of Ping

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1nognu.de342
2willy.club352
3skladka.net437.5
4trygve.me495
5rimfaxe.net545
6wcore.org578
7mindlesstux.com694
8samlord.me915
9rom4nik.pl1056
10bgme.me1172.5

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.matrix.org181
2dendrite.kootstra.frl304
3dendrite.s3cr3t.me395.5
4cringe.chat535
5rustybever.be572.5
6frai.se1353
7dendrite.beckmeyer.us1865
8evilcyberhacker.net4257

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates! And as always, the Matrix.org Foundation can only work with everyone playing fair game. If you can afford it, please consider donating via donorbox (individuals) or becoming a member organisation of the Matrix.org Foundation to support the core team behind Matrix.

The Foundation needs you

The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.

It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.

Support us