Matrix Live

Dept of Status of Matrix 🌑️

Digital Markets Act (EU)

Matthew reports

Happy DMA day everyone - here's our analysis of where messaging interoperability is at today, and where it might go in future: https://element.io/blog/the-eu-digital-markets-act-is-here/

Online Harms Act (Canada)

Matthew announces

more good crypto news this week from Canada: the Online Harms Act looks to be explicitly protecting end-to-end encryption and private communications - in contrast to the UK Online Safety Bill/Act. Looks like all attempts to educate around the UK OSB might have not been entirely in vain. You can see it direct from Justice Minister Arif Virani here: https://youtu.be/TjDrAlfhNAA?t=1766

Dept of Spec πŸ“œ

Andrew Morgan (anoa) announces

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:

Closed MSCs:

Spec Updates

Along with the typical rounds of review this week, there was a request on https://github.com/matrix-org/matrix-spec/pull/1739 for client authors to voice their opinion on whether they'd be happy with deprecating the <font> tag in the spec. The tag has been dropped from the WHATWG HTML standard, and replaced by <span>. We'd like to follow this standard where possible in Matrix, though understand that many clients have not made the switch yet.

If you're a client developer that's particularly interested in this bit of the spec, please do join in the conversation!

Random MSC of the Week

The random MSC of the week is... MSC3741: Revealing the useful login flows to clients after a soft logout!

This one is a real "how did we not think of that" moment. If you aren't familiar with soft logout, it's the mechanism by which the homeserver can sign out a client while hinting that it should NOT destroy the local client state (like encryption keys). This is useful for situations such as resetting your password, where you want your other devices to have to put in the password again, but don't necessary want to have to do an initial sync.

This MSC aims to address this issue, where upon being soft-logged out, the homeserver doesn't tell the client how to log in again. A homeserver can have multiple methods of logging in (via a password, SSO, etc.). Yet a user is typically only tied to one of them. Thus, if you logged in via password login, then were soft-logged out, and tried to log in again via SSO... well you'd end up with a very confused client indeed!

The solution is to allow access tokens that have been soft-logged out (but not yet deleted) to be provided to the /login endpoint. When the server recognises that this is a soft-logged out client, it will tell that client only the one flow that it used to login. Thus there can be no confusion.

Dept of Servers 🏒

Synapse (website)

Synapse is a Matrix homeserver implementation developed by Element

Andrew Morgan (anoa) says

This week we released Synapse v1.102.0. This release fixes a fairly annoying bug introduced in Synapse v1.100.0 for mobile users (particularly iOS) in which notification counts were incorrect. Thanks for your patience there!

Other bug fixes and performance improvements as well of course. See the link above for the full changelog.

Dept of Clients πŸ“±

kazv

nannanko announces

kazv v0.1.1 has been released.

Full Changelog

Fixed

SchildiChat (website)

SchildiChat is a fork of Element that 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.

SpiritCroc announces

This week, we published the first actual release of SchildiChat Next, our fork of Element X for Android. While previously, you could already download bleeding-edge beta releases from my testing F-Droid repository, this means we're now additionally starting to provide "stable" builds, that you can currently get either from my main F-Droid repository or from Google Play. (Of course, even with the introduction of "stable releases", SchildiChat Next should still be regarded as some kind of preview, while we're still missing functionality from the old client, just like Element X has not replaced the old Element client yet.) So if you prefer less frequently updated but more thoroughly tested builds, or were waiting for a Play Store release, feel free to give it a try!

Nheko (website)

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

Nico says

While there have been lots of theming fixes with the new plasma6 themes, I guess the most interesting change is that Nheko supports intentional mentions now. This means you can explicitly select who you want to notify and who not, when sending a message. This has a lot of weird interactions with the text input, so if you find any, please report how to reproduce them, so that we can fix them!

With this change we should be compatible with Matrix 1.9 now, which means we bumped our maximum supported version appropriately. Before that we were stuck on 1.5, so this is basically a jump forward by a whole year! Such a small change and such a big step, one could probably make a good quote out of that one...

Oh, and there is a new command to make your text glitch... Don't use it... it makes you text look bad!

Anyway, a bit of offtopic in the end: I have seen surprisingly many mentions of people being happy with Nheko recently. I always appreciate those, so thank you for saying that out loud for me to notice!

Have a nice day and I hope your cake will be plentiful!

Moment (website)

A Matrix client; forked from Mirage.

Maze says

Release 0.7.5 of the Moment client!

Moment gains the ability to author spoilers add reactions to messages! As usual, we are focusing on keyboard-use, so in Moment, you add reactions by replying to a message with the /react command. A great idea, contributed by Ellie Clifford!

We have also finally fixed those crazy graphical glitches, previously seen in many menu/settings screens!

Other than that, we're just keeping up with our dependencies, so you shouldn't get compatibility issues when installing Moment on an up-to-date system.

Element X iOS (website)

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

Doug announces

  • Room Filters, Mark as Favourite and Mark as Unread are finished and will be available in the next release.
  • Room Moderation features are nearing completion.
  • Auto-completion is being disabled in the message composer until we can fix the β€œdeath by scrabbleβ€œ bugs in the Rich Text Editor.
  • Legacy calls are now shown in the timeline and generate notifications.

Element X Android (website)

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

Jorge reports

Following last week's RC, version 0.4.5 of the app has been publicly released on the Play Store.

This week has been a really quiet one, focused on progressing through our ongoing work in several features that you can already test in the nightly version of the app:

  • Room moderation: you should now be able to change the roles of room members and promote and demote them as needed, from a new 'Roles and permissions' section in the room details screen. Note this is behind a feature flag you'll probably have to enable.
  • It's also possible to kick, ban and unban users from a room as long as you have the right power level.
  • The work on room filters continues, and we've been focused on tweaking the performance and UX for them.
  • We're also focusing on improving the localisation of the app: we've been working on an tool to quickly identify UI issues by comparing screenshots of the app in several languages. Please note it's under heavy development, so some parts of it may not be fully functional.

Dept of SDKs and Frameworks 🧰

Libkazv

nannanko reports

libkazv v0.3.1 has been released.

Full Changelog

Fixed

Matrix Rust SDK

bnjbvr says

  • It's now possible to get the unstable features of a server with Client::unstable_features(). Thanks to @hanadi92 for the patch!
  • One can now set a state store value without loading and returning the previous one. Thanks ben for the patch.
  • The UI Timeline now supports call invite events, showing such event as the latest room event too, if applicable.
  • The team keeps on focusing on the event cache, with PRs to extract the back-pagination logic from the UI timeline into the cache, and more preliminary work on storing events efficiently in memory and on disk.
  • and as usual, a few changes to the FFI, doc updates, and other goodies.

Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)

Emma [it/its] reports

Not too much to report on, mainly some work on HomeserverEmulator and light internal restructuring

Changes

  • Restructured layout of git repos on cgit
  • Fixed all submodule references
  • Changed all submodules to clone over HTTPS rather than SSH (also using cgit.rory.gay where relevant)
  • Fixed READMEs for multiple repositories

Additions

  • Added reference constants for error codes (You don't have to remember them off the top of your head anymore!)
  • Added a null check when trying to access event type with type=null
  • Changed origin_server_ts to be long instead of ulong (dotnet represents unix time as long)
  • HSE: merged state and timeline internally (where state is last event per type and state key, and statekey != null)
  • HSE: started implementing media repository
  • HSE: incremental sync should now work
  • HSE: explicit nulls should no longer be written on responses
  • HSE: non-implemented endpoints return M_UNRECOGNISED rather than M_NOT_FOUND

And, as always:

  • The code is available at cgit.rory.gay!
    • All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
  • Discussion, suggestions and ideas are welcome in #libmatrix:rory.gay (Space: #mru-space:rory.gay)
  • Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict reports

Another small Trixnity release:

features:

  • added more Regex
  • added m.location

bugfixes:

  • fix that Room::previousRoomId is not set correctly on invite

Dept of Ops πŸ› 

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

Thanks to FSG-Cat, matrix-docker-ansible-deploy can now install Draupnir for all (aka multi-instance Draupnir running in appservice mode).

This is an alternative to running Draupnir in bot mode, which is still supported by the playbook.

Matrix Federation Stats

Aine says

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

As of today, 9511 Matrix federateable servers have been discovered by matrixrooms.info, 2808 (29.5%) of them are publishing their rooms directory over federation. The published directories contain 20008 rooms.

Stats timeline is available on MatrixRooms.info/stats

How to add your server | How to remove your server

That's all I know

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

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