Dept of Spec 📜
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 were accepted this week.
Matrix 1.9 is due out next week. Keep your eyes peeled for an update.
Dept of Bridges 🌉
A multi purpose multi platform bridge, formerly known as matrix-github
Andrew F announces
Hookshot 4.6.0 & webhook responses
Get ready for another Hookshot release! The flagship new feature is the ability for Hookshot to respond to webhooks with custom response data, once Hookshot has handled the webhook message. This feature exists because while some services expect an immediate response to webhooks, others wait for the request to complete. With this release, Hookshot can now handle both cases. For more details, refer to the documentation.
The release is available at https://github.com/matrix-org/matrix-hookshot/releases/tag/4.6.0, or by doing
docker pull halfshot/matrix-hookshot:4.6.0. And as usual, feel free to direct any questions about Hookshot in our Matrix room: #hookshot:half-shot.uk
Dept of Clients 📱
Matrix messaging app for GNOME written in Rust.
Kévin Commaille announces
We just released Fractal 5! It is a full rewrite compared to Fractal 4, that now leverages GTK 4, libadwaita, and the Matrix Rust SDK. The two-and-a-half-year effort brings a new interface that fits all screens, big 🖥️ or small 📱, but should still look familiar to users of earlier versions.
It still offers the same old features you know and love, with a few additions. Highlights (italics is new✨ in 5):
- Find rooms to discuss your favorite topics, or talk privately to people, securely thanks to end-to-end encryption
- Send rich formatted messages, files, or your current location
- Reply to specific messages, react with emoji, edit or remove messages
- View images, and play audio and video directly in the conversation
- See who has read messages, and who is typing
- Log into multiple accounts at once (with Single-Sign On support)
It will be available in a few hours on Flathub.
For our next version, we intend to add missing key features, like notification settings, room settings and moderation… We also plan on improving the accessibility and polish the rough edges. Any help is greatly appreciated!
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
This week was mostly about tweaks and bug fixes, and we even managed adding a couple new features too:
- Read receipts are out of labs and we even implemented a summary sheet for them
- Polls can now be edited
- We have made a lot of fixes around the rich text editor and message composer
- and more, too many to enumerate here
Element X Android (website)
Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
- RC 0.3.2 is in the open testing and should go to production on Monday.
- Still stabilising and polishing the application
- Writing more tests to help avoid as many regressions as possible and also have a great code coverage metric.
- The application is now using the dynamic room list API, and in particular it will fix the issue where left rooms were still displayed.
- Also fixing issues on the Rich Text Editor library and work on mentions.
- Regarding polls, it’s now possible to reply to them. And very soon it will be possible to edit them, if they get no votes.
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- A bug has been fixed, which was causing incoming calls to ring forever if answered on another session.
- We will prepare a release candidate 1.6.8 next week
Everything related to Element but not strictly bound to a client
Johannes Marbach announces
- Our receipt handling rewrite has entered code review. We're still testing the impact of this and while things are certainly not fixed entirely, we're noticing a meaningful reduction of the stuck notification pain with this change applied. Meanwhile we also started exploring UX improvements around thread notifications that could help lessen the pain further but haven't concluded yet.
- Work on the new room header and details has progressed and we're going to default the labs flag to true on develop.element.io to source feedback
- We kicked off testing for native OIDC. So far we've identified only one bug around token refresh but we'll give it some more scrutiny next week.
- Our exploration of replacing Cypress with Playwright for end-to-end tests is looking really promising so far. Other than tests running faster, we may also be able to re-enable visual / screenshot tests using Playwright's built-in support rather than Percy.
- Lastly, while we're not exactly proud to still be using Webpack in 2023, at least we've managed to upgrade from version 4 to 5
Dept of Encryption 🔐
Libolm 3.2.16 has been released. This release only fixes some installation issues with the Python bindings. Thanks to Alfred Wingate for the fix. If you don't use the Python bindings, or you already have it installed, there is no reason to update.
Dept of SDKs and Frameworks 🧰
Rory&::LibMatrix (.NET matrix bot/client library)
Emma [it/its] ⚡️ says
No new major features this time around. Any help I can get is super appreciated!
A lot of time this week has been spent working on an example bot with a real use case: Rory&::ModerationBot! The code for this can be found in the ExampleBots/ModerationBot directory.
Things I'm not sure I mentioned last week
- Added license file (AGPL 3) as I forgot to add this (same license as where the code originated from)
- Updated to .NET 8, as that's been released
- New "SetReplaceRelation" function in TielineEventContent, so one can easily send edited content
infofield to RoomMessageEventContent, so one can properly represent files
PolicyRuleEventContentinto the 3 types (user, room, server)
- Add HTML formatting shortcut for links to events
- Improved the process of uploading files and sending them in rooms internally
CreatePublicshortcut for createRoom data
- Utility function to call /messages multiple times in order to get a certain amount of events (useful if you want to eg. export an entire timeline!)
- Add fallback to
JoinAsyncon rooms to handle already being a member (fixes sending additional join events)
- Allow specifying contentType on file uploads
- 10 second timeout on resolving well-knowns
- 300 second timeout on sync requests for command handler instead of 30 (reduces pointless traffic)
And, as always:
Multiplatform Kotlin SDK for Matrix
Trixnity 4.0.0 has been released. This release contains many breaking changes making the API more clear and consistent. Among many other improvements and features there are also some performance optimizations regarding the memory usage and sync processing speed. The initial sync processing (logic and persistence) on my 250+ rooms Matrix account is up to 50% faster (depending on the device and database).
If you want to know more details, check out the release page containing a huge list of changes.
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte announces
- Fix read receipt event handlers not being called with Sliding Sync
- Correctly set/unset room avatars with Sliding Sync
- Many small improvements and bug fixes for
- Room list service: add a new filter to get all rooms but the left ones
Dept of Events and Talks 🗣️
Rejoice, there will be a Matrix booth at FOSDEM! I can't wait to see all of those who can make it to Brussels in February 🎉 https://fosstodon.org/@fosdem/111447848642391129
Dept of Interesting Projects 🛰️
Synapse Super Invites
SynapseSuperInvites (sources on github) is a synapse-matrix-server pluggable module that allows any user from your homeserver to create invitation tokens they can share with others (on the same homeserver) to be automatically added to a range of rooms. It does that by providing a few new API-end-points that any client can use to implement a UI for it. Any invite token is bound to the creating user and any redeeming is tracked, so it isn't redeemed again later. Additionally the tokens can also automatically be created as registration tokens, and if the client pings the API with the registration token right after, they are "automatically" added to the configured range of rooms right from the start -- as it is common among other team messaging apps. Which is the behaviour we are aiming for in Acter, where we are implementing this flow right now (contains an example video).
Matrix Federation Stats
As of today,
8236Matrix federateable servers have been discovered by matrixrooms.info,
25.3%) 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!
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