This Week in Matrix 2023-07-07

07.07.2023 19:00 — This Week in Matrix Thib

Matrix Live

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

Work to use Matrix as the standard for interoperable messaging at the IETF is continuing in full stride. At IETF 117 (July 22nd - 28th, 2023) we'll be talking about the precise requirements of an interoperable protocol, and encouraging Matrix be that protocol. Linearized Matrix is our proposal for the room model, with more updates expected in the coming days ahead of the submission deadline, meanwhile yours truly is working on using MSC1767 Extensible Events for a content format. Watch this space for updates leading up to IETF 117 🙂

We're also well on track to test interoperability of different Linearized Matrix implementations at the Hackathon - get in touch with us via the #sct-office:matrix.org if you're working on such an implementation so we can coordinate details. It's not too late to get started either; Linearized Matrix itself is relatively simple to implement compared to the full capability of Matrix, by design.

Random MSC of the Week

The random MSC of the week is... MSC3903: X25519 Elliptic-curve Diffie-Hellman ephemeral for establishing secure channel between two Matrix clients!

This MSC provides a means of establishing a trusted, secure communications channel across a potentially untrusted network. Subsequent MSCs could then use this channel to transfer details such as login tokens or key backup credentials in the context of setting up a new Matrix device. MSC3906 is one proposal that takes advantage of this.

This is just one piece of work building on the tree of MSCs supporting the shift of authentication in Matrix from home-brewed to OIDC. See https://areweoidcyet.com/ for more details on that effort.

Dept of Servers 🏢

Synapse (website)

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

Shay reports

This week we released 1.87.0. As a reminder, please note that this will be the last release of Synapse that is compatible with Python 3.7 and earlier. Now on to the highlights:

  • Improve /messages response time by avoiding backfill when we already have messages to returns
  • Fix a long-standing bug where media files were served in an unsafe manner
  • Fix joining rooms through aliases where the alias server isn't a real homeserver
  • Avoid invalidating a cache that was just prefilled

and much more. If you'd like to take a deep dive into the changes, you can find the release notes here and as always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.

Dendrite (website)

Second generation Matrix homeserver

Devon Dmytro announces

This week we released v0.13.1. Here are a few of the highlights:

  • A long-standing "off-by-one" error has been fixed, which could result in state resets
  • Roomserver Prometheus Metrics are available again

Check out the release notes for the full set of changes! As always, feel free to stop by #dendrite:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.

Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Timo ⚡️ reports

It's happening! I finally managed to implement some highly requested features in Conduit like the hierarchy and relations endpoints to finally allow users to:

  • Explore spaces locally and over federation
  • Read and write thread messages
  • View edit history

I also worked on some other improvements to make the overall experience smoother:

  • Significant memory usage improvement, smaller instances can be at 150MB or lower, bigger instances around 1GB. Try it out on your own Conduit instance and join #conduit:fachschaften.org to tell us what you find.
  • Fixed a state resolution bug. There should be fewer soft failing errors now.
  • Randomize server join order

Last but not least, I started working on Element X support for Conduit by implementing sliding sync. This is a bigger task, but a very basic version is already working: https://mastodon.social/@timokoesters/110665620551657280

Element X developers should prepare for native sliding sync support in the not-too-distant future and should try to detect this functionality instead of requiring a client well known file.

You can support me on https://liberapay.com/timokoesters

PS: I'm also looking for jobs and other opportunities for when I finish university at the end of the year, contact me if you have ideas.

Dept of Bridges 🌉

Libera.Chat Deportalling

Thib says

Libera.Chat asked the Matrix.org Foundation to "deportal" the bridge, only leaving plumbed rooms active by July 31st. This means the bridge could stop working if your room is not "plumbed". Plumbed? Portalled? What are we even talking about?

I wrote a guide to help you make sure the rooms you maintain will keep bridging after July 1st, and you can find it here.

Dept of Clients 📱

chooj (website)

Farooq announces

Many bugs when joining and leaving rooms has been fixed in chooj. Furthermore, many bug fixes and improvements happened in the underlying UI library, KaiUIng. And finally, a small guide has been added to chooj which shows up for the first launch and explains the Matrix network and its capabilities. I am still looking for sponsors to financially help with the development of the project. I am also considering publishing chooj to KaiStore. Meanwhile, you can download chooj from the BananaHackers webstore and try sideloading it, given that your KaiOS feature phone supports that.

Nheko (website)

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

Nico reports

I've had a lot of people reach out the last few weeks, that they wanted to know who can see their messages and how to control that. As a result I finally got around to implementing a history visibility selector in Nheko: You can toggle between anybody being able to see your messages without joining the room you sent them in or restrict visibility to joined users only. In the latter case you can then select visibility of past messages for joined members between all the past messages, from the invite on or from their join going forward. These are the standard Matrix history visibility rules, but we try to represent them a bit differently to make it clearer, what they mean. I hope this makes them a bit easier to understand.

However there are ways around visibility rules. If a room selects to not allow users to see its messages, unless the user joins the room, a user could possibly use a bot to proxy the messages and make them either visible or possibly even searchable to users, that haven't joined the room. This sometimes happens on Mastodon and you basically have 2 options to prevent it: approve each user individually after verifying they are not a bot or delete your messages after some time to prevent how much can be read by a bot.

The former is already available in Nheko for quite some time. You can set any room to require knocking and a user will have to knock before being allowed to join the room and view messages. You can even combine that with restricted joins, that allow a user of some room to join another room without knocking, which significantly reduces the overhead.

However knocking isn't always a great solution, especially if you don't control the room or it really should be public. So we also implement an option for automatically expiring messages now. This is EXPERIMENTAL and might cause significant strain on your homeserver when first enabled (and possibly even after that), as such please be careful and apply good judgement. Originally we were waiting for this to be part of the Matrix specification eventually and have the server handle the deletion more efficiently and with less load. However the effort on multiple of those MSCs has stalled and as such we now have a client-side solution until we can rely on server support for this. You can now in the settings of each room select when your old messages should be deleted (after some time or by only keeping a specific total of messages). You then enable the background job in the general settings and Nheko will periodically check for messages to delete and then delete them. In theory you can enable this also globally for all rooms, however Nheko does not expose a button for that yet, as this again is still experimental and might come with performance issues or worse. You can however enable it manually if you write the configuration by hand.

Apart from that we are still stabilizing the qt6 port. LorenDB fixed the Recaptcha and also qmlified that dialog (finally). And Satellia fixed some minor issue, where the focus didn't return properly to the input bar after sending files.

I hope this update was interesting. It does tick of some items I was always to lazy to work on, so I guess that is nice to have it over with! Have a nice and enjoyable weekend!

Element X Android (website)

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

benoit says

This week on the Element X Android team we’ve been implementing improvements to the room list loading time, invites and many more. Other new updates include,

  • Being able to swipe in order to start a reply to someone from the timeline
  • Having message actions responsive to the type of event or message

Element Web/Desktop (website)

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

Danielle reports

  • Our long-awaited improvements to the notifications settings screens are now available in labs! In the coming weeks we’ll be making the new view the default experience so let us know if you have feedback on it.

    • Other work on notifications continues with our team heads down on fixing stuck notifications issues. We’ve started drafting a new MSC we hope will make improvements - watch this space for more news.
  • Along with this our other projects have been making great progress, for example our more strategic improvements to accessibility are starting to take shape and you’ll soon see the typeface and colours in Element reflect that.

  • Our integration with OIDC is making massive strides forwards. We’re currently testing the login flow and work on logout is well underway.

Element X iOS (website)

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

Manu reports

It’s a big week for the Element X team on iOS as we’ve released the beta app live to the App Store! More info in our blog post. 🚀

While there’s a lot we’re still working on building, here’s my personal highlights:

  • Location sharing: Being able to send your location and view others’ locations in the timeline, being able to send a pin location, along with viewing it all in dark mode!
  • Notifications: We’re building out the settings screens, in app messages, push notifications etc. are all in the works and looking really great. You’ll be able to experience it soon. Remember; keep checking in for updates and keep sending over your feedback!

Dept of Non Chat Clients 🎛️

Circles (website)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright reports

Circles is a secure social network app for friends and families, built on Matrix.

This week we released a new beta build (v1.0.12) for Android, including:

  • Emoji picker now shows a quick list of the most recent or most common emojis
  • Added the option to re-send invites
  • New visual design for the timeline
  • Quick gesture-based navigation on the timeline (single, long, double tap gestures)
  • Added the ability to share rooms and profiles via deep links
  • Added loading indicators
  • Various bug fixes and performance optimization

In particular, scrolling the timeline is now much snappier, especially when new posts are coming in from the server.

The latest beta build is available on Google Play and from our own F-Droid beta repo.

Dept of VoIP 🤙

Element Call (website)

Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app

Jake B-B reports

The Element VoIP team are making a major update to Element Call with our release of a new version backed by the LiveKit SDK and SFU. This means that our SPA at call.element.io will now support much larger calls; 100 participants comfortably and potentially many more.

To support that, we have delivered new UI for large calls, with a scrolling grid that you can rearrange to your liking, dragging and dropping tiles and expanding them as you like.

It's worth noting that call.element.io will temporarily no longer be encrypted after this update, but we will be bringing back end to end encryption within the next few weeks.

This release requires running a LiveKit SFU and also a tiny service that will issue tokens for that SFU. Note that we don't currently offer a publicly available implementation of the latter. This means that if you currently run Element Call, it is probably advisable to remain on the 0.3.x releases rather than upgrade at this point.

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 announces

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

Tobias Fella says

Just half a year after the last minor release, here's libQuotient 0.8!

Here's what this release brings to you, other than a quicker release cycle:

  • Support for newer Matrix APIs
  • Generated documentation
  • Coinstallability of Qt5 and Qt6 versions
  • Stability Improvements Have a look at the release page for more information

Dept of Bots 🤖

flip-matrix-bot (website)

A Matrix bot for the Friendly Linux Players community.

HER0 announces

The greeting feature of the bot has been improved to detect when a user is rejoining the room (as their previous membership event was to leave), and to provide a much shorter "welcome back" message in those cases.

On the community website side, events scheduled by the bot now have schema.org event markup. This allows for events to potentially have fancy UI in search engines!

Dept of Interesting Projects 🛰️

deavid announces

If anyone finds it interesting, some time ago I made "Yarrosco" : https://github.com/deavid/yarrosco A simple app to get chats from Matrix and Twitch into OBS when streaming made in Rust.

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
1zemos.net286
2test.zemos.net349
3chat.braydmedia.de443
4keks.club449
5globohomo.co503.5
6maunium.net561
7pavot.ca604
8matrix.sp-codes.de639
9sietch.online674
10skladka.net870

#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
1test.zemos.net81.5
2d.mau.dev106
3zemos.net129
4777.tf143
5dd-home.ddnss.de172
6skladka.net196
7dendrite.kootstra.frl223
8matrix.org246
9aguiarvieira.pt249.5
10dendrite.s3cr3t.me356

That's all I know

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

Making Sure The Libera.Chat Bridge Keeps Working

07.07.2023 18:45 — Bridges Thib

Libera Chat recently announced their decision to opt-out of portalled rooms from the Libera.Chat bridge instance hosted by the Matrix.org Foundation (a decision we regret but respect). This means that for the bridge to keep working, all of your portalled rooms need to be turned into plumbed rooms before July 31st. All of this might be a bit obscure, so let’s walk together through these concepts and give you the tools to make sure the bridge keeps working for you.

Continue reading…

Deportalling from Libera Chat

04.07.2023 16:00 — Bridges Neil Johnson

On Monday 3rd July, the Libera.Chat IRC network shared that they would no longer accept portalled rooms over the Matrix.org <> Libera.Chat bridge. This change will come into effect between 25th July and 31st July.

We respect the decision but also recognise that this will be disruptive for matrix.org users accessing IRC over the bridge.

Practically speaking, if you currently use matrix.org as a bouncer into Libera.Chat this will no longer be possible unless the admin of every room you inhabit is willing to reconfigure the room for plumbing.

This post explains the situation as seen from the matrix.org side, what it means for matrix.org users and what to do next.

Continue reading…

What happened with archive.matrix.org

04.07.2023 14:24 — General Matthew Hodgson , Thib

We launched the Matrix Public Archive publicly on June 2nd, 2023. We decided to take it down on Sunday, June 25th out of precaution after a member of OFTC staff warned us that the archive made the content of two OFTC IRC channels bridged to Matrix available on the Internet.

After investigating the issue, we determined that the Matrix Public Archive's behaviour was expected for these channels, given an IRC chanop had explicitly configured the Matrix side of the rooms to be world-readable.

Let's talk about how room visibility works in vanilla Matrix, how it works with bridges, and what are the next steps.

Continue reading…

This Week in Matrix 2023-06-30

30.06.2023 00:00 — This Week in Matrix Thib

Matrix Live

Dept of Status of Matrix 🌡️

Thib announces

You might have seen the news already, but the Matrix.org Foundation is pleased to welcome the first public sector organisation as part of its membership: Gematik joined us as a Silver member!

If you're an organisation of the public sector it might not be obvious why spending money on an open source product is important: you will probably be interested in why it makes sense for gematik to contribute, and how it benefits the public sector in general.

Whether you're an individual, a business, a non-profit, a public sector organisation, you can join the Matrix.org Foundation as a member to support us in our mission and help us steer Matrix in the right direction!

Dept of Spec 📜

Andrew Morgan (anoa) [GMT-6] 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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

Room version 11 has been accepted! A gentle reminder for Matrix client and homeserver implementations to update and incorporate the new changes. The full list can be found in the MSC itself (mainly changes to redaction semantics and related fields).

While this means that room version 11 is now considered stable, it's not recommended that homeserver implementations set their default room version for newly created rooms to 11 yet. We recommend waiting a few months for client and other homeserver implementations to gain support first.

Random MSC of the Week

The random MSC of the week is... MSC3907: Mute Policy Recommendation!

Matrix has a concept of shared moderation policy lists - where you can create a room containing moderation actions that followers can apply to their own rooms, such as banning a particular known bad actor.

This MSC proposes to expand the list of possible types of recommendations with that of muting a user (removing a user's ability to send messages in a room). This could be especially useful if you moderate many, many rooms and have automation to apply moderation actions based off of a policy list room.

If such a policy change sounds useful to you, why not give the MSC a review and leave some feedback!

Matrix Spec v1.7 for Dash and Zeal

Christian Paul (jaller94) reports

I've updated the Dash/Zeal Docset which you can use to read the Matrix Spec offline.

If you use Dash and installed it through the application's settings, an update should be available now. If you use Zeal, check out the update procedure on gitlab.com.

Project on Gitlab.com: https://gitlab.com/jaller94/dash-matrix-spec

Note, this is not an official release distribution of the Matrix Spec. Enjoy at your own risk of this breaking or not getting updated.

Dept of Servers 🏢

Synapse (website)

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

Shay says

This week we released 1.87.0rc1. Please note that this will be the last release of Synapse that is compatible with Python3.7 and earlier. Now on to the highlights:

  • Add spam checker module API for logins
  • Fix forgotten rooms missing from initial sync after rejoining them
  • Remove experimental MSC2716 implementation to incrementally import history into existing rooms.
  • Fix a bug introduced in 1.57.0 where the wrong table would be locked on updating database rows when using SQLite as the database backend

and much more. If you'd like to take a deep dive into the changes, you can find the release notes here and as always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.

Dendrite (website)

Second generation Matrix homeserver

Till says

It's been quite a while since we last posted in TWIM. During that time we have been hard at work on Dendrite.

This week we released v0.13.0. Here are a few of the highlights:

  • Initial support for the highly experimental MSC4014: Pseudonymous Identities
  • Huge refactoring of Dendrite and gomatrixserverlib to pave the way for easier experimentation
  • A potential state reset when joining the same room multiple times in short sequence has been fixed
  • Several "membership" (e.g /kick, /ban) endpoints are using less heavy database queries to check if the user is allowed to perform this action
  • /3pid endpoints are now available on /v3 instead of the /unstable prefix
  • Support for connecting to appservices listening on unix sockets has been added (contributed by cyberb)
  • Admin APIs for token authenticated registration have been added (contributed by santhoshivan23)

...and a whole lot more. Check out the release notes for the full set of changes! As always, feel free to stop by #dendrite:matrix.org to join in on the discussion and if you encounter a bug make sure to report it here.

Dept of Clients 📱

chooj (website)

Farooq says

After long time of inactivity in chooj's repo because I was busy with other stuff, we now have many improvements. Two most important changes are not user facing yet very important for development of chooj in the long term. First, the UI stuff have their own repository and are a separate NPM library. Second, I have almost converted the codebase from Javascript to Typescript. There are other small changes. Many bugs have been fixed. If you had problem logging in with chooj on your feature phone, give the build specified in this issue a try. It should have solved the bug. And please let me know if it fixes the problem, or if you have any other issue.

Element X iOS (website)

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

Ștefan announces

This week was an absolute rollercoaster for ElementX and, at the end of it, we’re happy to report this huge list of features and improvements:

and as always an absolute ton of bug fixes and performance improvements that would’ve put the first list to shame

Element X Android (website)

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

benoit reports

  • Element X Android is making big progress to become the fastest Element application ever developed! The application is now using the new Room List API from the Matrix SDK.
  • The application is getting lots of UI / UX polishment, as we are integrating the latest design.
  • Last but not least, the app has been renamed to “Element X” (with a space) and got a brand new icon!

Element Web/Desktop (website)

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

Johannes Marbach announces

  • We've made further steps towards fixing stuck notifications on nightly. The unread dot is now more reliable -- especially when used with the "mark room as read" functionality. We've also fixed reactions gone missing when the reacted to event isn't yet synced. Our plan ahead consists of re-triaging existing issues to surface cases we haven't yet accounted for. Afterwards we'll push ahead with MSC3981 which is already implemented both client- and server-side but needs testing. For further details, please see the tracking issue.
  • Our work on improving the notification settings is being finalised. We've conducted user testing this week and are preparing for a labs'ed launch.
  • As part of our integration with Compound, our new design system, the first pieces of typography and colour updates are landing on nightly. More news in this area soon.
  • Finally, we've also progressed on integrating OIDC and managed to get the login flow working in a POC manner.

Element Android (website)

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

benoit announces

  • Element Android 1.6.3 is now available for 20% of the users in the PlayStore. We are confident that we will reach 100% deployment by the end of next week, and then we will release the app on F-Droid. The roll out is slower than usual since this version is integrating the Crypto Rust SDK (the new Matrix SDK developed in Rust and also used by Element X iOS) and the migration of user private data is quite a sensitive area.

Dept of SDKs and Frameworks 🧰

@sctlib/rtc (website)

unonde says

@sctlib/rtc now has support for Matrix /sendToDevice signaling.

It's a web-component that tries to offer a user interface for peers to connect via WebRTC

There are different "manual" signaling methods (such as copy/pasting the WebRTC connection data by hand, from one peer to the other), and the Matrix API /sendToDevice endpoint is the new addition.

It works with authenticated matrix users, as well as with guest user/device.

All this is a prototype and experimentation with client side browser based apps (with js/html/css/web-components/npm-packages), using @sctlib/matrix-room-element and its new api.js.sendToDevice method.

One of the thing I enjoy with this project, is that it is web-component based; meaning the new HTML custom DOM element, has a "clear API" through it's attribute api, methods, events (just like an <img/> or <video/>, or <form/> etc.).

<script type="module" src=" https://cdn.jsdelivr.net/npm/@sctlib/[email protected]"></script>
<rtc-user><rtc-user/>

Example jsbin

In future version I'd like to:

  • support to connecting to multiple peers
  • support for when connection is broken, to re-connect
  • not only data channels (video, audio)
  • matrix ecosystem and events, after the data channel is open
  • plugin system (web component slots)
  • yjs
  • prototype and decide with the communities what the APIs should be
  • work on more web components,

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict says

Because of some large refactorings we decided to release a beta of the next Trixnity version. We would be happy if you try out this version.

features/improvements:

  • allow to forget rooms (delete room specific content from database and cache) -> rewrite of the cache to allow indexes
  • PowerLevelsEventContent with type safe "events"-field (e. g. allow content.events.get<MessageEventContent>() additionally to the old way content.events["m.room.message"])
  • Introduce module trixnity-crypto-core and replace native crypto algorithms using native APIs (CoreCrypto on apple and OpenSSL on linux/mingw targets)
  • Own SecureRandom implementation using native APIs
  • upgrade logging (requires SLF4J 2)

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune announces

libQuotient 0.8 RC

The library is fast approaching the 0.8 with the process being much steadier than before, now that we actually practice smaller, more frequent releases - thanks in no small amount to NeoChat people, nicely prodding the author of these lines on a regular basis. The release notes (very short, apparently we've got the beta right) are, as usual, at the project's Releases page and the final release can be expected some time next week, if we don't have unexpected showstoppers. And just in case someone doesn’t know where to find us - you’re welcome in #quotient:matrix.org!

Dept of Bots 🤖

room-architect (website)

herkulessi reports

Have you ever had the need to set the same power levels for the same users in the a lot of rooms? It's fairly tedious. That's what room-architect tries to solve. You create groups of users and groups of rooms and set power levels to room-group<->user-group pairs, and this bot will keep the power levels there (as long as the Bot has the necessary power levels itself of course). I have more planned, and a few more ideas beyond those, if you want to help, open a pull request on the project's Codeberg repository or open an issue if you find a bug. There is no Matrix-Room for this project yet, but I might create one if there seems to be interest.

Gate Bot

dzlandis reports

Introducing Gate Bot, a Matrix bot that empowers Matrix room owners to create a safety gate between incoming users and their community. Through the use of verification checkpoints, including CAPTCHAs (with ongoing exploration of alternative methods), Gate Bot can effectively thwart automated spam bots while ensuring the protection of communities and their members. Invite Gate Bot to a room to get started, then follow our setup guide on Github.

flip-matrix-bot (website)

A Matrix bot for the Friendly Linux Players community.

HER0 says

Last weekend, I made a few small changes that fixed or worked around minor bugs and usability issues that were brought to my attention by community members. This should make interactions with the bot match expectations more closely. Hooray for collaboration and iteration!

Dept of Events and Talks 🗣️

Matrix on DevConf.CZ 2023

hoya says

DevConf.CZ, an annual, Red Hat sponsored, open source community conference in Brno, CZ, was held on June 16 - 18. This year, the conference was piloting Matrix as a primary communication platform and this is a short summary of how it went.

In the end, we went the self-hosting way! Our hero @duck:milkypond.org from Red Hat's open source program office team did all the heavy lifting by setting up the Synapse and all the necessary services around it, incl. Mjolnir.

We've tried to use conference-bot with schedule in compatible json, but DevConf not using Pentabarf turned out to be too limiting, at least for our use-case.

Taking advantage of the Spaces feature, we created #2023:devconf.cz with three sub-spaces: 'General', 'Sessions', and 'Workshop & Meetups'. Attendees were suggested to join the 2023 space and go from there, as opposed to sharing invites to specific rooms or sub-spaces.

@inknos:snag.social and myself, @mhoyer:snag.social wrote a simple bot that was creating Q&A threads for each talk. It also pinned this message/thread. Online and in-person attendees were suggested to use the Q&A threads to ask questions and session chairs asked them to the speaker(s) in the time dedicated to questions and answers.

'Sessions' space was a home for rooms, which were an extensions of the real-life auditoriums. These rooms had a widget with a Youtube live stream and Q&A threads.

All rooms had a widget with a schedule for said room. The widget was pointing to a website designed to be used as digital signage, so it reflected any schedule changes immediately.

Compared to FOSDEM, and given the size of the conference, we decided to have only one general-purpose public room, which I think worked well. This way, organizers are able to do @ room pings there instead of creating a dedicated "Announcements" room for example.

I should also mention we've put together a Matrix section at devconf.cz web FAQ section: https://www.devconf.info/cz/faq/#matrix

The organization team did a great job communicating everything to the attendees, even the fact that it is a "pilot" and things might break (they didn't, yay!). I don't have the exact numbers, but I believe there were 300+ users in the Main Chat room, which as far as I can tell is comparable to any chat platforms used in previous years. Not bad for a first year, especially since we only had a very limited time-frame to make it happen.

@dvolavko:matrix.org, the organizer of DevConf.CZ, shared this: """ Overall positive feedback. I think we should fully transition to Matrix after this experience. We were collecting attendees to telegram chat for the past 5 years and we reached a similar number on Matrix in 3 days. ""

I hope to you at DevConf next year!

Martin

Matrix @ Froscon (matrix room)

HarHarLinks says

  • Free and Open Source Conference
  • August 5-6 in Bonn, Germany
  • Will have a stand and a devroom hosted by the local Matrix community!
  • Submit your talks and workshops to https://matrix.to/#/#FrOSCon:fiksel.info now (or until July 2 23:59 CEST)!
  • English-language content welcome!
  • more info in earlier twims, https://froscon.org, and our room https://matrix.to/#/#FrOSCon:fiksel.info!

Dept of Interesting Projects 🛰️

TRBot (Website)

kimimaru reports

TRBot is software written in C# and .NET 7 for playing video games collaboratively through an easy to learn, hard to master text format - think Twitch Plays Pokémon to the next level and with any game. This week we released version 2.8.0, which adds support for reading inputs in unencrypted Matrix rooms! On top of TRBot's built-in Twitch, IRC, XMPP and now Matrix support, Matrix bridges will unlock a multitude of other services to run TRBot on for more players to join in on the fun.

Join our room at https://matrix.to/#/#TRBot-Dev:matrix.org for development discussion and updates! We also use TRBot to host collaborative play streams through a community called https://matrix.to/#/#type2play:matrix.org.

Many thanks to Hubert Chathi's excellent Matrix Client Tutorial for helping guide me to write a new C# Matrix SDK.

matrix-email-onboarding

fnwbr announces

Did you ever have a list of email addresses and Matrix rooms (or spaces) which you wish to invite them to? And you don't know their Matrix usernames or if they even have a Matrix account yet? Then this is going to be for you. ✨

For this year's edition of the Berlin University of the Arts open house day presentation (come visit July 21st - 23rd if you are around!) students and others are going to make use of Matrix once again to digitally present and announce their art pieces, installations, performances, events -- just like they did for the last two years. As part of the digital programme we kept running into the same issue: we have a big Matrix space structure representing an existing hierarchy of faculties, institutes, campus buildings, rooms, study programs, classes, seminars and so on. And with each of them we have a list of maintainers as in people who are responsible.

While we're still mostly working on other projects, we wrote the matrix-email-onboarding microservice to invite users to Matrix rooms (or spaces) via their email addresses, even before we know if they actually have a Matrix account or not.

  • It comes with a CLI tool to send out emails 📨 with a link (containing a secret token) for your users to click on (screenshot 1), and
  • A Node.js server-side application to handle web requests to
    • (1) check a given secret onboarding token 🔍 and list the linked Matrix rooms or spaces (screenshot 2)
    • (2) let the user sign in ☑️ with their Matrix account and automatically join the given rooms or spaces
    • (3) (optionally) promote those newly joined users to become moderators or administrators 🧑‍⚖️

We've decided to CC0 it. So go crazy, make use of it in your public institution, use it for your company, tinker around for yourself, create Issues or send Pull Requests on GitHub and do let us know what you think! Looking forward to all of it. 🥰

GitHub: https://github.com/medienhaus/matrix-email-onboarding Chat: #matrix-email-onboarding:medienhaus.dev

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
1test.zemos.net291.5
2zemos.net377
3daedric.net489
4nerdhouse.io576
5fluse.duckdns.org720
6matrix.ilab.zone738.5
7xerbo.net810
8kittenface.studio815
9chrrreeeeesss.com849
10075-141-169-120.res.spectrum.com:8446952

#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
1test.zemos.net85
2zemos.net133
3daedric.net160
4conduit.rs195
5matrix.org223
6herkinf.de253
7davralin.work254
8aguiarvieira.pt280
9777.tf350
10075-141-169-120.res.spectrum.com:8446379

That's all I know

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

The German Digital Healthcare Agency joins the Matrix.org Foundation

29.06.2023 07:00 — Foundation Thib

We were already proud to announce that the national agency for the digitalisation of the healthcare system in Germany (gematik) had selected Matrix as the open standard on which to base all its interoperable instant messaging standard, back in 2021.

We are now delighted to let the world know that they are doubling down on sovereignty and sustainability: gematik is the first organisation of the public sector to join the Matrix.org Foundation as a Silver member.

Collaboration in the public sector

Our friends at the FSFE have been calling for software used in public services to be free software in their Public Money Public Code campaign. As advocates of open standards and an open source project ourselves, this is something we can get behind.

Software development can be an impenetrable world for people who don’t work in the field. It can sometimes be difficult for people outside of our industry to understand the importance of bitrotting and refactoring. One very unfortunate effect of this is that new features are easy to fund because they feel very tangible, but the most critical housekeeping work is not as appealing.

Yet, without regular refactoring to clean things up, it gets increasingly costly and difficult to add new features. Counterintuitively, spending money on “the boring tasks” is the most efficient use of money: without it the technical stack would become either obsolete, bloated, or both, and it would be much more costly to move to something else or maintain an in-house fork.

We’re very happy gematik is doing the right thing by supporting the technical stack it builds TI-Messenger on. By supporting the Matrix.org Foundation, gematik contributes to the sustainability of the protocol powering the communications of the German healthcare system… but not exclusively.

Sharing costs across public services, and with the private sector

Matrix is an open standard, which means not only everyone can use it: when someone contributes to Matrix, everyone benefits from it. This makes Matrix particularly interesting for the public sector: if the German healthcare contributes to Matrix, the German Armed Forces benefit from it, and the other way around. It allows both to contribute less of their budget, instead of contributing each to an entirely different product. The German Federal Ministry of Defence already actively contributes to Matrix development and funding via its public IT services provider BWI GmbH, who relies on Element’s consulting services to develop their own Matrix-based messenger.

But Matrix being open source, it also allows the public and private sector to share the costs of maintenance by design. The public sector benefits from the contributions of the private sector to Matrix, and the opposite is true as well.

The Foundation plays a critical technical and social role in this system: it centralises and curates contributions to the protocol so it remains unbiased, coherent, and efficient.

This is just a beginning

We’re extremely happy to welcome the first public sector organisation in the Matrix.org Foundation! Given how popular Matrix is among governments and the public sector in general, we know this is just a beginning: it would be illogical to deploy any solution at a large scale without contributing to its sustainability.

Whether you’re an organisation from the public or the private sector, looking to cut costs down by building on a common, standard and reliable foundation, you can support Matrix and join the Foundation today.

This Week in Matrix 2023-06-23

23.06.2023 18:45 — This Week in Matrix Thib

Matrix Live

Dept of Status of Matrix 🌡️

Thib says

Not only have we formally launched the Matrix.org Foundation membership programme… we're happy to already welcome our first member: Beeper!

Wondering why it makes sense for Beeper to support the Foundation? In short: we're mission-aligned, and it's a strategic business choice.

Thanks again to Beeper for all their contributions to the Matrix ecosystem, and we can't wait for more prospective members to show that they really mean to stand for open, decentralised secure communications 🚀

Dept of Spec 📜

TravisR 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://spec.matrix.org/proposals.

MSC status

New MSCs:

MSCs in Final Comment Period:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec updates

The SCT has largely been business as usual for the last week: progress is being made on the MSCs we know about, things are entering/completing FCP, etc. There has been some activity around MSC3820: Room Version 11 though, largely to ensure Linearized Matrix has a clean place to start building its own room version. It's also been about a year since Room Version 10 was cut, making it a good time to push some cleanup work out into the world.

If you'd like to test room version 11, update your Synapse and join #v11-opt2:t2l.io. It should look largely the same as any other room, but has changes that client developers should note around redactions.

For Linearized Matrix news, there's effort going into specifying the complete semantics and behaviour of Matrix's transport. The in-progress draft can be read here and should be published as an 02 in the coming days. 03 is expected to contain specific details around the MLS constraints. For clarity: the draft is an IETF Internet-Draft (I-D), aimed at a different audience than MSCs normally would. While the I-D makes little mention of it, existing Matrix servers participating in rooms with Linearized Matrix servers will continue to be full mesh, though Linearized Matrix servers will rely on a hub to send their events. DAG servers are not to rely on a hub.

Random MSC of the week

This week's random MSC is MSC3160: Message timezone markup! If you've ever tried to say "does 15:00 CET/13:00 UTC/09:00 EST/06:00 PST work for you?", this is the MSC that fixes that problem.

Dept of Servers 🏢

Synapse (website)

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

Shay says

This week we released 1.86.0. Here are a few of the highlights:

  • Fix an error when having workers of different versions running.
  • Experimental MSC3861 support: delegate auth to an OIDC provider
  • Correctly clear caches when we delete a room
  • Expose a metric reporting the database background update status.

and much more. If you'd like to take a deep dive into the changes, you can find the release notes here and as always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.

Dept of Clients 📱

Hydrogen (website)

Hydrogen is a lightweight matrix client with legacy and mobile browser support

Midhun announces

We finally released v0.4.0 this week with support for device verification and cross-signing. Try them out at hydrogen.element.io by enabling cross-signing under Experimental Features in the settings. This release also includes numerous bug fixes, see the release notes for more info.

Element X iOS (website)

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

Ștefan says

We’re continuing work on the performance of our room list. It’s important to us that the app feels speedy and seamless so we’re spending the time to really nail these fundamentals. We’re also finalising some functionality around message actions (like forwarding) and improving the flow when leaving rooms

Element X Android (website)

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

benoit says

  • This week our team has been continuing to work on message actions, finalising forwarding messages and reporting messages. Next we’ll move onto the copy function.
  • We’re also refining the design on some of our settings pages.
  • And we are integrating the new Room list API from the Rust SDK.

Element Web/Desktop (website)

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

Danielle reports

  • The web team is still hard at work uncovering and fixing bugs relating to stuck notifications.
    • Along with fixing bugs we’re also about to start testing our updates to the notification settings pages and expect these to be in labs in the next release
  • Our team is also making progress against our accessibility goals. Our current focus is improving the colour contrast throughout the app by updating our colour palette.
  • Along with the above we’re also working on integrating the new OIDC pieces as this new auth system will bring many improvements.

Dept of SDKs and Frameworks 🧰

Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

td reports

Back again with another breaking change this week! :p Bump to v0.21.0, the main features/changes from last time (0.19.0) include:

  • Key verification using QR codes!
  • No more dynamics! (we switched to Object?) and also lots of cleanup
  • better handling of lastEvents for a room
  • some call state fixes
  • Lots of other minor fixes. See commits

Until next time :D

Dept of Events and Talks 🗣️

Matrix Salon podcast

Christian Paul (jaller94) announces

New German episode: Meet Simon Dürsch, who is a founder of https://clup.life and passionate about collaboration within associations, clubs and similar communities. Out of his own needs to bring together people on different chat platforms, he's built a service to create bridged community rooms.

As an active follower of Matrix news, chat bridging (e.g. from and to WhatsApp) is probably no news to you, however, the interview shows that Matrix still has a lot of untapped potential to enable communication of currently fragmented communities.

Episode link: https://podcasters.spotify.com/pod/show/matrix-podcast0/episodes/Simon-Drsch---CLUP-life-e263i15 Fediverse post: https://mastodontech.de/@jaller94/110593600916541507

For English interviews of Matrix community members, check out some of our previous episodes!

Matrix @ FrOSCon

HarHarLinks announces

On August 05-06 the annual Free and Open Source Conference (short FrOSCon) will take place at the German University of applied Sciences Bonn Rhine Sieg. There is great interest in Matrix in Germany and this year in particular one of FrOSCon's focus aspects is "Open Source in public administration" which seems a great fit with Matrix as well. Plus, of course it's always fun to meet the community! A small team of volunteers from the community has gotten together to organize both a Devroom and a Booth/Stand. Please find last week's announcement for more detail.

We need your help!

You can help us out by:

  • submitting a topic for a talk or workshop you want to give (🇩🇪 or 🇬🇧) - we need at least a title and duration until July 2 23:59 CEST!
  • helping out at the stand
  • helping to manage the devroom! E.g. if you are versed with recording and broadcasting tech, that would help us make the content accessible beyond the in-person devroom

To reach out, find us at https://matrix.to/#/#FrOSCon:fiksel.info (or by email [email protected])

Dept of Guides 🧭

Thib says

dgrig posted a nice wrap up of what happens when your Matrix server goes boom, and you just put a new one back online without restoring from a backup.

https://blog.erethon.com/blog/2023/06/21/what-happens-when-a-matrix-server-disappears/

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
1test.zemos.net348
2zemos.net443.5
3kittenface.studio691.5
4bgme.me1050
5wcore.org1398
6nerdhouse.io1812
7mindlesstux.com2422
8rom4nik.pl3085
9mailstation.de4673.5
10075-141-169-120.res.spectrum.com:84465396.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
1test.zemos.net79
2zemos.net137
3frai.se188
4daedric.net206
5herkinf.de253
6davralin.work254
7maximiliangaedig.com257
8777.tf295
9aguiarvieira.pt348.5
10lassegh.dk523.5

That's all I know

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

Beeper joins the Matrix.org Foundation

22.06.2023 13:12 — Foundation Thib

We're proud to announce Beeper is the first member to join the Foundation! Beeper is a universal chat app, built on top of Matrix. Beeper is strongly committing to support Matrix by becoming the first member in the Gold tier as well.

Matrix is a strategic choice

Beeper allows you to connect accounts from up to 15 different chat platforms to get a unified inbox in a single app. The core business of Beeper is to provide a polished app and service to their users. Beeper is built upon Matrix: behind the scenes, a Beeper account is a Matrix account on the Beeper homeserver, and the company hosts bridges for its users. The experience is completely transparent for them.

Matrix was an obvious choice in Beeper's stack because of its interoperable nature. Bridges are the core of Beeper's business: they are the most active bridges maintainer of the Matrix ecosystem, and most of them are open source too. It makes a lot of sense for Beeper to build on top of Matrix so they don't have to reinvent the wheel: homeservers exist, the AppService API that allows them to create bridges exists, and maintaining an in-house solution for this all would cost more than their contribution to Matrix.

Matrix also solves the difficult problem of End-to-Bridge Encryption: it allows bridges to decrypt messages from a third party platform like WhatsApp and re-encrypt it for Matrix users. This makes the homeserver completely oblivious to the content of the messages. It protects customers against passive leaks, and the most privacy conscious ones can even self-host their bridges to get total control of the messages making it through.

Mission aligned

Beyond the obvious business choice of relying on Matrix, Beeper and the Foundation have a lot of values in common. The Foundation is fighting for interoperability possible at a technical level… but it's also fighting to make it possible at a legal and systemic level. We've been very vocal in the Digital Markets Act discussions In Europe. Beeper's CEO Eric Migicovsky also took part in the consultation launched by the EU in the hopes of opening up the walled gardens of Gatekeepers. The regulation change brought by the DMA will accelerate the adoption of interoperability across the board, bringing the tools to make it sustainable and reliable, which is a direct business enabler for Beeper.

Join us

We once again welcome Beeper and congratulate them for being the first member to support the stack they rely on! As for organisations who depend on Matrix: we still need your support to make Matrix sustainable.

Join us in our mission to make Matrix the ubiquitous foundation for respectful products and services, become a member today!

Announcing the Matrix.org Foundation Membership program!

20.06.2023 13:00 — Foundation Amandine Le Pape

We shared back in December how we wanted to find a way for people and organisations to support Matrix in a more impactful manner. We wanted it to also enable the Foundation to be more autonomous and more powerful in growing the ecosystem. Well the day has come: the Foundation is now able to formally accept members!

So what is a member of the Matrix.org Foundation? It's an organisation or individual who financially supports the Foundation by paying a yearly membership fee, and in return gets some influence in driving the direction of Matrix and the Foundation's activities.

The key has been to create a balanced governance model, to make sure the Foundation stays aligned with the Matrix manifesto. For this we've created a Governing Board to set the direction of the Foundation whilst the membership fees will fuel our efforts to get us there.

So why become a member?

A common, durable platform

Matrix is an open protocol everyone can contribute to. However we believe that to remain healthy, a protocol is better off having a single spec that needs to be curated. The additions need to be debated, implemented in actual software, and the rest of the specification needs to be adapted to the new changes. Such curation and edition work take time and effort, but the benefits of it are enormous.

A curated protocol benefits individuals, digital rights activists, and philanthropic investors who believe in the fundamental right to control and privacy in online communication. As an open standard for real time communications, Matrix brings the sovereignty, security and interoperability, which are key to having full control over one's own communication. By financially supporting the project, people who are aligned with our beliefs allow us to keep fighting for our collective rights, be it by providing secure software or persuading regulators to protect their citizens (such as our DMA promotion work or our fight against the Online Safety Bill).

A curated protocol benefits profit-making companies building communication products and services. Decentralisation is a hard problem. End-to-end encryption is a hard problem. Decentralised end-to-end encrypted communications are a very hard problem. Matrix is doing the heavy lifting in these areas so companies can focus on building what they do best: creating great user experiences on top of it. By financially supporting the project, organisations building on Matrix rest assured it keeps evolving, being patched and staying secure. In short it ensures Matrix remains a competitive advantage over other products, at a fraction of what it would cost to maintain an in-house solution.

A curated protocol benefits entire governments, and large parts of the public sector, who have both adopted it widely. Public organisations can not only benefit from a sovereign, secure and interoperable solution - they can also ensure public money is spent for public good, not shareholder wealth. By joining the Matrix Foundation, public sector entities contribute to the stability, security and performance of Matrix. Investing into the project ensures that the open standard that is supporting their healthcare, defence and public administration continues to benefit from innovative open source software development.

Stay unbiased & vendor neutral

The Matrix manifesto hasn't changed. We still believe people should have full control over their own communication, not be locked in silos, be able to converse securely and privately, and that communication should be available to everyone as a free and open, unencumbered, standard and global network.

The Foundation maintains the Spec, which formalises the behaviour expected from the various software components of the Matrix ecosystem. We believe it's important for both individuals using the protocol - and organisations building products on top of it - to be part of the decision process when it comes to shaping the evolution and features of Matrix. So we have designed membership tiers catering for all budgets, and mapped the Governing Board representatives evenly across the tiers.

The Spec Core Team appointed by the Foundation's Guardians is particularly vigilant against features which only benefit particular players, or are designed to somehow cripple or fragment the open protocol and ecosystem in favour of competitive advantage. As such it is a guardian of the neutrality of the protocol, making sure it will serve the general public's interests and be a solid base to build robust products on for commercial organisations.

Delivering from the get go

The Matrix.org Foundation wants to take a more active stance in supporting the protocol. The Foundation needs to respond appropriately to the Governing Board's recommendations. We are hiring a Managing Director who will be in charge of identifying and building programmes the Foundation can deliver, obtaining funding for it, building a team and overseeing the delivery with the approval and support of the Governing Board.

Such programmes could include an accreditation process, to give more visibility and credibility to the organisations adopting Matrix seriously, organising more Matrix events, to promote the standard and share experiences amongst the community etc. Their mission will overall be to make the ecosystem thrive and grow.

A Managing Director working full time will also allow us to increase the Foundation's transparency by allowing it to report more often on such programmes, independently from any vendor.

Going where we're expected to

The Governing Board is the new compass of the Foundation: it refines the vision of the Foundation and steers the Managing Director and Spec Core Team in the right direction.

This gives the Governing Board a lot of power over the Foundation and Matrix, so we've put in place several safeguards to ensure the Foundation remains healthy.

For example, the Guardians remain the ultimate authority, should the Governing Board take decisions against the interest of Matrix, and the Governing Board cannot appoint or remove members of the Spec Core Team.

To ensure that the Governing Board is representative from every stakeholder in the ecosystem, we've included both representatives from every membership levels, including individuals, but also representatives of those who are rooted in its day to day operations (i.e. the MD and the Spec Core Team), and of the Guardians.

Since the Governing Board sets the direction for the Foundation, continuity is important. Therefore, members of the Governing Board are serving for two years, with yearly elections renewing only half of the board at once. This makes room for fresh ideas without losing context of the previous decisions.

Finally, this membership scheme is also meant to formalise and better distribute the relations of power in the Matrix ecosystem, to make it more independent of specific vendors. We believe this is a major next step to make Matrix thrive, and welcome everyone to join us in our mission. You can also check our Prospective Members presentation here for more details.

In short, become a member today!

Send an email to [email protected] or browse matrix.org/membership

This Week in Matrix 2023-06-16

16.06.2023 00:00 — This Week in Matrix Thib

Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) [GMT-6] 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:

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

This actually happened last week, but a huge shoutout to Kévin Commaille, aka @zecakeh, for their work on upgrading the OpenAPI schema data for the Matrix Spec to version 3.1. This schema describes all of the requests and responses for all endpoints in the spec, as well as various event types and other bits and pieces. It directly powers the Matrix spec website, the Matrix API Playground and several Client and Homeserver SDKs that generate code from it.

With a diff of +14,997 −12,660, this was a multi-month effort of both implementation and review (thank you @richvdh and @KitsuneRal!). This change will allow us to use all the new features that OpenAPI 3 has to offer, as well as generally keeps us up to date with modern tooling.

Thank you!

Random MSC of the Week

The random MSC of the week is... MSC3051: A scalable relation format!

This MSC describes a different way of describing how an event relates to other events. In the current Matrix spec, you can use the m.relates_to property to indicate that this event (say, a reaction) relates to another event (say, a message) in a certain manner. You can specify how it relates using the m.relates_to->rel_type key; a value of "m.annotation" for reactions.

But sometimes you may want to relate to multiple other events. For instance, what if that message you're reacting to is also in a thread? In fact, this MSC has come up recently as one possible way to solve the problem of efficiently discerning whether an event should belong in a thread or not (discussion). This MSC isn't the only option for solving such a problem - MSC4023 would also work, and both have tradeoffs.

MSC3051 could also allows for actions such as editing replies; both the text and the message it was a reply to. Neat!

Do read the MSC and give feedback if relations is something that excites you.

Continue reading…