matrix.org/content/blog/2023/11/2023-11-03-twim.md

14 KiB
Raw Permalink Blame History

+++ date = "2023-11-03" title = "This Week in Matrix 2023-11-03" path = "/blog/2023/11/03/this-week-in-matrix-2023-11-03"

[taxonomies] author = ["Thib"] category = ["This Week in Matrix"]

[extra] image = "https://matrix.org/blog/img/matrix-logo.png" +++

Matrix Live

{{ youtube_player(video_id="ZJsFEG26Wmc") }}

Dept of Social Good 🙆

Josh Simmons announces

The Matrix.org Foundation is proud to join with Mozilla, the Electronic Frontier Foundation, and over 400 security experts, researchers, and NGOs in sounding the alarm about the EU's proposed eIDAS reform.

As written, the proposal radically expands the ability of governments to surveil their citizens and residents across the EU.

We encourage citizens and residents of the EU to pay close attention and look for ways to get involved urgently.

Dept of Spec 📜

Andrew Morgan (anoa) reports

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

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

IETF 118 is happening next week, and as per usual we'll be there participating as the Matrix.org foundation! We're working away at drafts in the hopes of converging with the MIMI design team and working group on a new MIMI protocol. Said protocol will hopefully allow the various gatekeepers and other players to have interoperable instant messaging, under the requirements laid out by the EU's Digital Markets Act.

Travis, Matthew and others have been spearheading this work in various areas, with myself helping out on the content format side of things. More to come post-IETF 118!

Random MSC of the Week

The random MSC of the week is... MSC2413: Remove client_secret!

This is an MSC written by yours truly! I have no influence over what the script chooses, the script is it's own master.

This (quite old now) proposal aims to argue that the client_secret parameter on various third-party ID-related endpoints in the spec is not necessary. As we already have a server-generated session_id which can be used to identify a particular client's session and validate that the client is allowed to interact with the session (by way of knowing its ID).

Essentially, we have two values in play where we only practically need one. This spec aims to simplify things, as well as reduce the amount of client-controlled parameters are involved in third-party ID processes (which can be a bit finicky as they often interact with external systems).

I have yet to update this or really do anything with it for the past few years. But it exists, and now you know!

Dept of Servers 🏢

Synapse (website)

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

Erik reports

This week released a patch release (v1.95.1) that fixes a moderate security issue in Synapse. See the advisory for more details.

We also released an RC (v1.96.0rc1) with some new module APIs, experimental support for running multiple receipt workers, and the usual tranche of bugfixes.

The team has also been looking at performance improvements, and some low-hanging fruits have already landed on develop.

Dept of Clients 📱

Nheko (website)

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

Nico announces

This week was mostly polishing trying to make the Qt6 version of Nheko stable enough for a release. However I also got to close some ancient issues like search stopping pagination randomly.

One fun issue was, that you currently can't sign in with any mxid longer than 128 characters... When we first started to persist data in Nheko (before I joined the project), we ensured the database was unique by storing the database in a file named after the hex encoded mxid. However most filesystems have a file name limit of 255 characters or so... However, we are not in 2017 anymore, so we switched to hashing the mxid, which ensures the database name will always have a constant length, that is legal on most filesystems (sorry, no DOS support for you!).

Another fun change is that Nheko now reduces how often it syncs, when the window is unfocused for a while. This decreases how much power Nheko uses on my system by quite a bit, since it used to sync 5-10 times a second before just to process typing notifications in some unimportant room... Now it will at most sync once a second (if the window is unfocused for 30s or more). This means you will still receive important messages immediately unless someone was typing immediately before it, in which case it might be delayed by up to one second. I guess most people won't even notice this change.

We also tried to get a working msix package of Nheko. The biggest blocker currently is signing it with a useful certificate, but there are also a few minor issues like notifications not showing the pretty app name and the protocol handler not forwarding the url. If we can resolve those, we might provide an MSIX in the future instead of the traditional installer, which should allow for automatic updates on Windows, might make Nheko on the Windows Store possible and is also a smaller package with more security options. Half of the time was spent on reducing our compile times though, since with this new build step we hit the 1 hour build time limit quite a lot (on a clean cache run).

Nheko now also uses im.nheko.Nheko as the appid on all platforms and there are also some fun, non-code things happening behind the scenes, which might show up in TWIM in the future!

I wish you all a wonderful weekend and maybe give the nightlies a go and report regressions you want fixed before a potential release!

Element X iOS (website)

A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.

Doug announces

This week weve been focused on releasing version 1.4, which is now available on TestFlight and should be making its way to the App Store next week. The following features have been enabled:

  • User Mention Pills and Suggestions.
  • Voice Messages.
  • Starting a Call from inside a room.
  • Screen Lock with a PIN code, Touch ID or Face ID.

This version also lays the groundwork ready for us to enable key backup support and you may find that after cross signing a fresh session, some parts of the backup start to work in the background (no promises though).

Element X Android (website)

Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose

benoit announces

  • We have released Element X Android 0.3.0 on Tuesday and its now available for beta testers on the PlayStore.
  • Voice Messages, Element Call, PIN code are available
  • We are also working on member suggestions in the message composer.
  • KeyBackup is also available but behind a feature flag for now, to give time to fix the latest issues.

Element Web/Desktop (website)

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

Danielle reports

Element Web/Desktop

  • This week we're back on track with notifications! Next week's release will contain fixes for problems that happen when messages are deleted, and the following release will contain fixes for editing messages.
  • On the new room header and right panel were nearly ready for a proper launch. Releasing the new version to all users, not just those on Develop or Nightly. Well continue to iterate once the first version has landed but were really proud of the new design direction.
  • And, work progresses on our project to automate some of our CI processes!

Dept of Widgets 🧩

NeoBoard

Milton Moura announces

We are pleased to announce that NeoBoard had it's first major release, v1.0.0!

NeoBoard is an open-source collaborative whiteboard widget for Matrix! It's an ideal tool for creating and sharing content, conducting presentations, and collaborating with colleagues or friends. All data is stored as Matrix events within the Matrix room, leveraging Matrix's native end-to-end encryption, decentralization and data privacy features.

This update is our first stable release and includes some new features:

  • Buttons to easily navigate to the next and previous slide in a presentation
  • Support for PDF file export
  • Editing slides while in presentation mode

If you are interested in the gory details, please watch our presentation at the Matrix Community Summit 2023 for a deep dive into what NeoBoard is and how it's implemented.

You can also try it out right now by adding it as a widget to a room following these instructions.

The NeoBoard is the latest widget from Nordeck. Please direct any questions to us at #nordeck:matrix.org.

Dept of Encryption 🔐

libolm

uhoreg announces

The JavaScript package for libolm is now available at npmjs.com. This means that your package.json files no longer have to include the full URL for the package, and can just include the version specifier. This was the last package type that was relying on the gitlab.matrix.org package registry.

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

Jonas Platte says

This week, we did a lot of bug fixing and refactoring, notably compile times and binary sizes should be down due to the trimming of our dependency tree. We also made a bunch of progress on key backup support, with the crypto-crate level support being moved out of its feature flag soon (stabilization of the functionality in the higher-level crate will follow).

matrix-bot-sdk (website)

A TypeScript/JavaScript SDK for Matrix bots

TravisR announces

v0.7.0 is here! The bot-sdk is generally fairly stable as it's a very low-level SDK over top of the Matrix Client-Server and Appservice APIs, meaning it gets few releases. This might change in the future, but for now its twice-yearly release has happened 🎉

This release's highlight is a PostgreSQL storage provider to accompany the existing filesystem storage provider. Like SimpleFsStorageProvider, it's not great, but it does work. Other changes and details are available in the changelog: https://github.com/turt2live/matrix-bot-sdk/releases/tag/v0.7.0

Matrix Federation Stats

Aine reports

collected by MatrixRooms.info - an MRS instance by etke.cc

As of today, 8679 Matrix federateable servers have been discovered by matrixrooms.info, 2096 (24.2%) of them are publishing their rooms directory over federation. The published directories contain 272740 rooms.

How to add your server | How to remove your server

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.

Rank Hostname Median MS
1 nerdhouse.io 254.5
2 damaj.tech 273.5
3 tcpip.uk 283.5
4 maescool.be 285
5 pain.agency 623
6 rom4nik.pl 630.5
7 matrix.its-tps.fr 667
8 mailstation.de 976
9 casavant.org 1060.5
10 matrix.netho.tk 1093

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

Rank Hostname Median MS
1 frei.chat 161
2 kanp.ai 183
3 spqr2gang.com 192
4 herkinf.de 221
5 matrix.org 231
6 777.tf 355
7 inu.is 436
8 matrix.its-tps.fr 446.5
9 shiftsystems.net 508
10 matrix.hirameki.me 526

That's all I know

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