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.
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were accepted this week.
- No MSCs were closed/rejected this week.
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_secretparameter on various third-party ID-related endpoints in the spec is not necessary. As we already have a server-generated
session_idwhich 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 is a Matrix homeserver implementation developed by the matrix.org core team
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
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
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+.
This week we’ve 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
- We have released Element X Android 0.3.0 on Tuesday and it’s 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!
- 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 we’re nearly ready for a ‘proper’ launch. Releasing the new version to all users, not just those on Develop or Nightly. We’ll continue to iterate once the first version has landed but we’re really proud of the new design direction.
- And, work progresses on our project to automate some of our CI processes!
Dept of Widgets 🧩
Milton Moura announces
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 🔐
package.jsonfiles 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 🧰
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).
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
As of today,
8679Matrix federateable servers have been discovered by matrixrooms.info,
24.2%) of them are publishing their rooms directory over federation. The published directories contain
Dept of Ping
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!