Matrix Live

Dept of Status of Matrix 🌑️

Josh Simmons says

A couple months in, it’s a joy and a privilege to introduce myself as the first Managing Director of The Matrix.org Foundation! Read my intro post to learn more about me, the work ahead, what you can do to help, and how the leaders of other open source foundations are reacting to my appointment.

I’m thrilled to take this opportunity to also announce the Office of the Matrix.org Foundation, a new room that offers a direct line to me and the rest of the small but mighty team behind the Foundation. Come say hi! πŸ‘‹πŸ»

Dept of Spec πŸ“œ

TravisR 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:

  • No MSCs were accepted this week.

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

The Spec Core Team has mostly been working behind the scenes on things for the last few weeks, but expects visible progress to pick back up soon. Last week the custom emoji/sticker MSCs started getting reviewed, and this coming week those reviews are expected to continue (and get submitted).

As we welcome Josh to the Foundation, the SCT has also been thinking about the MSC process and how to best interface it with the upcoming Governing Board. The Governing Board doesn't have an ability to decide which MSCs get accepted/rejected, but can provide guidance on which MSCs might need more attention sooner than others. Watch this space for updates as we have them.

As always, we're hanging out during office hours in #sct-office:matrix.org and #matrix-spec:matrix.org , and in the meantime stay tuned for more/different news next week πŸ™‚

Dept of Servers 🏒

Synapse (website)

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

dmr reports

this week we released Synapse 1.95.0. It turned out to be a relatively small release. Admins may be interested in a change which improves the performance of purging rooms and a fix to the way media is served which should benefit bridged users. Behind these scenes, Patrick has been working to remove unnecessary memory allocations at the DB level. Many of those changes land in this release, which should help to reduce some of the spikiness of Synapse's memory consumption. We expect the impact to be small but consistent; if you have any particularly interesting graphs to share which demonstrate improvements, we'd love to see them.

On develop, Erik has been working on enabling multiple workers to handle receipts. We've also landed two new additions to the module API: the ability for Synapse plugins to control presence and to add their own fields to event unsigned payloads. Both of these should be available in Synapse 1.96, scheduled for release a week on Tuesday.

Thank you to this release's contributors, and to the Synapse Admins room for their continued efforts in supporting the community.

Dept of Clients πŸ“±

Nheko (website)

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

Nico says

Moin from the north!

This week was quite exciting, since we finally merged NepNep's ignore feature. This has been standard in quite a few other clients before and we did have a commented out button for this for ages already, but now you can finally ignore other users from within Nheko! Which reminds me, I should patch it so that nobody can ignore me, mwhahahaha!

LorenDB also landed his work on reporting messages. Hopefully the dialog makes it clear enough, that this only reports to your server admin, not the other server admin and not the room admin.

Apart from that we cleaned out some historical baggage about how we stored olm messages and you shouldn't run out of subdatabases randomly now, just because you were signed in for a long time (although I think only one person has hit that in the last 2 years). You can also now recompact the database with a single command, which helps speed up Nheko if the database has been in use for a long time. <hr/> tags now also render a line instead of the tag as text, the scroll position should not be ~~upset~~moved up by a small margin when switching rooms anymore.

Finally you can also now change your presence state explicitly in Nheko. We disabled that feature for a while, because it would cause excessive CPU usage on Synapse, but that bug has since been fixed. However Synapse currently does not allow you to mark yourself as offline, however you can patch your Synapse to allow that:

diff --git a/synapse/rest/client/sync.py b/synapse/rest/client/sync.py
index 42bdd3bb10..254c116894 100644
--- a/synapse/rest/client/sync.py
+++ b/synapse/rest/client/sync.py
@@ -201,12 +201,10 @@ class SyncRestServlet(RestServlet):
         # send any outstanding server notices to the user.
         await self._server_notices_sender.on_user_syncing(user.to_string())
 
-        affect_presence = set_presence != PresenceState.OFFLINE
-
         context = await self.presence_handler.user_syncing(
             user.to_string(),
             requester.device_id,
-            affect_presence=affect_presence,
+            affect_presence=True,
             presence_state=set_presence,
         )
         with context:

And lastly I wrote a small tool, that breaks down memory usage on linux in more details, so that I can see more easily, if Nheko is actually using a lot of memory or people just get confused by file caching on Linux again.

Have a nice weekend and don't forget to dance!

Element X iOS (website)

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

Doug announces

We interrupted our regular release schedule this week to spend more time finishing various features. Fortnightly releases will resume next week.

  • Much polish has been made to Voice Messages and we’re aiming to enable them by the end of today!
  • The appearance of Mentions Pills and Suggestions has been finalised and the feature will also be enabled today.
  • The Screen Lock setup flow is finished and we’re finalising support for Touch ID and Face ID.
  • Work on support for Key Backup continues.
  • Fixed a bug where the app could potentially send read receipts whilst in the background.

Element X Android (website)

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

benoit says

  • Element X Android 0.2.4 is live on the store, and the crash rate level is dropping.
    • We have made huge progress on lots of different features:
    • Key backup and secure storage management is nearly there
    • PIN and biometric unlock as well
    • The voice message feature is enabled by default. We've added support for waveforms, for a more pleasant user experience when rendering the event in the timeline, and when seeking within the voice message.
    • Element Call support has landed on develop
    • Also progressing on mention in timeline and composer suggestions when typing @
  • We also achieved Kotlin code coverage for the project of 63%!

Element Web/Desktop (website)

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

Johannes Marbach says

  • We, sadly, didn't make progress on Stuck Notifications this week due to absences in the team. We have, however, done some explorations around improving the unread experience between thread-capable and -incapable clients.
  • We've landed the initial PR to update the visual language on the right panel on develop and have progressed on making further touch-ups to the room summary tab.
  • We've decided to descope guest logins and cross-signing from the initial implementation of native OIDC and have started to plan final testing.
  • We've begun a mini project to automate more of our release process to free up some of our time for other work. If somebody is curious about just how complex our CI setup is, check out https://github.com/vector-im/element-web/pull/26432.

Cinny (website)

Cinny is a Matrix client focused on simplicity, elegance and security

Lozenge announces

Cinny v3.0.0

Hello everyone, We are thrilled to announce v3 of Cinny with exciting features like Rich Input Editor (aka WYSIWYG editor), even faster timeline with new features and improved People drawer. Rich Input Editor Message input has been completely rewritten to support rich text. It has now all the rich text buttons and key shortcuts for them as well. The new input also supports inline markdown. Also, it no longer supports LATEX rendering or sending. Input also support multiple file upload at one time now. Also, Emojiboard got refreshed look and combines both Emojis and Stickers and also include Sticker search. Refreshed Timeline Timeline is rewritten as part of our effort in moving the codebase to TypeScript and implementing the design system. As a result timeline scroll is 5x faster than before. It render almost all kinds of events now and has options to open various type of files right into the app itself, notably the pdf viewer. People drawer The side drawer listing people also has new features like sorting the members by Join/Left/Banned/Kicked etc as well as sorting the same alphabetically or date wise.

Release: https://github.com/cinnyapp/cinny/releases/tag/v3.0.0

  • Find more about Cinny at https://cinny.in
  • Join our space at: #cinny-space:matrix.org
  • Github: https://github.com/ajbura/cinny
  • Twitter: https://twitter.com/@cinnyapp
  • Mastdon: https://fosstodon.org/@cinnyapp

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

bnjbvr announces

This week, we've reached 80% testing coverage in the Rust SDK and associated crates πŸ₯³

In addition to that, we have:

  • improved the quality of the Widget API, that's used to integrate Element Call in the ElementX apps ☎️
  • landed secret storage improvements and other features required for the encrypted key backups πŸ₯·
  • improved compatibility of read receipts with other clients, thanks to the tireless KΓ©vin Commaille πŸ‘€
  • and we've done our fair share of refactorings, doc improvements, tests, and fixes πŸ› οΈ

Dept of Ops πŸ› 

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

To make public rooms on Matrix more discoverable via search engines like Matrix Rooms Search (see the matrixrooms.info demo instance run by etke.cc) and possibly other tools in the future, matrix-docker-ansible-deploy now enables allow_public_rooms_over_federation by default for Synapse - a change that goes against upstream Synapse defaults.

This reverts the change introduced in Synapse v1.7.0 (in 2019) which made public rooms non-discoverable via federation, in an effort to work around a problem described in the Avoiding unwelcome visitors on private Matrix servers blog post.

I'm hoping that with this change, Matrix federation will become more useful as a larger list of public rooms will be made discoverable. You can read the full changelog entry for more details and rationale for the change.

Dept of Services πŸš€

Aine says

Matrix Rooms Search project got The Biggest Update so far πŸ˜‰

That was a busy week at etke.cc - we've developed a matrix server inside MRS from scratch πŸŽ‰

MRS is a matrix server now. What does that mean? MRS got Matrix Federation APIs implementation (demo instance @ federation tester), and thus you can interact with it as with any other matrix server!

Of course, for the goals of the project, only the mandatory subset of APIs was implemented, so you can search all published rooms over matrix federation directly from your matrix client apps!

Documentation: MRS integrations, you can try the demo instance if you don't run your own - matrixrooms.info.

Specifically for etke.cc customers, we've prepared a customized Element Web (app.etke.cc, source code) to include the MRS demo instance as one of the room directory options by default.

Check the source code, try it yourself on MatrixRooms.info, and celebrate with us in the #mrs:etke.cc room!

Dept of Interesting Projects πŸ›°οΈ

Acter (website)

ben announces

Push Notifications

A long time in the making, we've finally been able to merg v0.1 of Push Notifications earlier this week. It is available in the latest nightly as well as on the App Store Version released yesterday under a labs flag for the Android and iOS version. Please go, check it out and leave any feedback you have in our #feedback:acter.global chat room.

Release cadence and focus

With the automation of the release process in place, we are intending to release a new version to the AppStores for Android, iOS and Windows (and every other target we are able to add over the coming weeks) every Thursday. For whom that isn't frequent enough, we continue to offer nightlies as well - but then it is your responsibility to upgrade them ;) . In general we have been focusing on cleaning things up and getting things into shape for regular usage. We had quite a success giving this preview to activism groups and get their feedback, with more coming up.

Fixes and Smoothing out

As such the majority of updates have been around fixing several UI/UX parts of the App: like the all improved and more refined chat creation flow, we just landed, or the overhaul of the calendar events that now show only upcoming events you RSVP'ed to in your dashboard. But also several smaller things to make things smoother, like hiding the bottom bar when the onscreen keyboard is shown, showing avatars of people for DMs or making it more straight forward to invite members when you are starting up your space.

Several team members are using Acter now as their primary day-to-day matrix app, so expect more usability fixes to come!

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
1maunium.net246
2matrix.chatpage.de326
3tcpip.uk369
4plocki.org388
5utzutzutz.net433.5
6maescool.be461
7nerdhouse.io489
8daedric.net678
9matrix.its-tps.fr755
10wcore.org845

#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.s3cr3t.me121
2spqr2gang.com176
3inu.is212
4herkinf.de236.5
5matrix.its-tps.fr406.5
6rustybever.be459
7shiftsystems.net602
8littlevortex.net688
9evilcyberhacker.net224469

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