Dept of Status of Matrix 🌡️
Matrix Community Year In Review 2023
(Please ignore, that I never know, what year number to attach to such a "Year In")
You may remember I organized a small blog post last year to collect stories from the different community projects and what they did in the year and maybe some sneak peaks at the next year. If not, you can find it here or on the Matrix.org blog.
Anyway, enough about 2022, I now encourage you to talk about 2023 and beyond! If you have interesting stuff to report about your projects or projects you have been involved in in 2023, feel free to join #year-in-2023:neko.dev and talk about it! The usual TWIM rules apply there, just that we talk about a whole year and it may involve lots of manual editing on my side, so don't try to break it. Also please be positive in your news and lets try to end 2023 with a bang!
And please share this with projects you want to hear about. :)
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.
- MSC4085: Improved CS-API Errors
- MSC4084: Improving security of MSC2244 (Mass redactions)
- MSC4083: Delta-compressed E2EE file transfers
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were accepted this week.
- MSC2700: Thumbnail requirements for the media repo
- MSC2704: Explicitly allow alternative origins in MXC URIs and specify deduplication requirements on uploads
There hasn't been a whole lot of spec progress this month due to holidays and other time constraints, but we have been hard at work preparing for the new year's first release: Matrix 1.10. Expected sometime late February to March 2024, Matrix 1.10 will hopefully bring a lot of forward movement on major projects like Extensible Events, Custom Stickers & Emoji, and Authenticated Media.
Our plan is published here, and is open for comment until about January 10th, 2024 - let us know if we missed anything, or if there's something unexpected there!
As always, if you have an MSC which is ready for FCP and not on the plan, let us know in #sct-office:matrix.org - we'll aim to get it included.
Thanks, and see you all in January :)
(P.S.: no random MSC of the week because I can't get the script to run - sorry)
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Hey there! I was basically blown away the last few days (because of the weather though), but maybe these small changes will have the same effect for you!
Emma (not that Emma, the other one!) enabled deletion of sticker and emoji packs in Nheko. I never thought about it, but some people might genuinely want to remove an old pack from a room! I guess that is the kind of polish, that a feature needs, once people have used it for a while and that is easy to miss at the start. Thanks a lot!
On the other hand q234rty modified our workaround to palette switching to have less of a performance impact on KDE6. If you were using the development versions of KDE6 (like plasma 6 or just its themes), it might have taken up to 7 seconds to open a new window. Now it should be less than one. Sadly the workaround itself is still needed, but we might figure out how to fix it properly some day.
Apart from that we finally figured out how to make our appinstaller work properly. Turns out you really need range requests in your file store! And Microsoft documentation is as good as ever! If you want to install the latest Nheko Nightly on windows, you can now just click here. Note that the icon still has a blue background there. Microsoft requires us to add 2 more app icons to allow us to make the background transparent and I really am not motivated to do that at this point in time... But installing Nheko that way will automatically check for updates one a week. Of course that means you will ping our servers once a week, so if you want to avoid that, please install the msix directly instead of going through the appinstaller.
That's everything for this year, see you in the next one! 🎉
Matrix messaging app for GNOME written in Rust.
Kévin Commaille says
Let's celebrate the winter (or summer) solstice with a new Fractal beta release! Even though Fractal 5 was released only 1 month ago, development has been going at a steady pace with a few new contributors, so we want our users to benefit from our progress.
The staff's picks:
- Restoring sessions from Secret Services other than GNOME Keyring has been fixed
- Times follow the format (12h or 24h) from the system settings
- Media history works in encrypted rooms
- The accessibility of the sidebar was improved
- More notifications settings were added, you can now set global and per-room behavior and even manage your keywords
- A bunch of refactoring, notably the port to the
glib::Propertiesmacro from gtk-rs that helped us removed almost 3000 lines of code!
As usual, this release includes other improvements, fixes and new translations thanks to all our contributors, and our upstream projects.
It is available to install via Flathub Beta, see the instructions in our README.
As the version implies, there might be a slight risk of regressions, but it should be mostly stable. If all goes well the next step is the release candidate!
If you find yourself with time to spare during these end-of-year holidays, you can always try to fix one of our issues. Any help is greatly appreciated!
Dept of Non Chat Clients 🎛️
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
Circles is an encrypted social networking app for families and friends. It is currently in open beta testing and will be launching early in 2024.
This week we released our biggest beta update yet on iOS. Circles iOS v0.9.0 (27) is available now on TestFlight and includes a long list of new features and UI improvements, including:
- Better navigation with less wasted space on iPhone
- New "pull down to refresh" on most screens
- More responsive UI for invitations
- Show search suggestions when inviting friends to a new circle or group
- Better UI for finding friends of your friends and inviting them to follow you
Source code and more information are available from the FUTO Gitlab
Dept of SDKs and Frameworks 🧰
That might sound a bit quick since beta version 1.0.0 was released last week - but in Elm, the compiler decides the version bump, not the marketing team. If you're curious what exactly happened that forced this major version bump, feel free to join the conversation at #elm-sdk:matrix.org!
This week, I would love to get your feedback on customizability. 🎚️ We released a
Matrix.Settingsmodule which allows you to configure the
Vaultwith certain variables. Take a look at the current two settings and please let me know what else you'd like to configure in an SDK before it starts talking to your homeserver.
Multiplatform Kotlin SDK for Matrix
I introduced a bot mode in Trixnity v4.1.1. It disables many features of the
MatrixClientand speeds it up significantly. It can be used for E2EE-enabled event processing. First integration tests showed a processing time of less than 1 ms per encrypted event in a sync (on my notebook).
- introduce bot mode
- add Kotlin/JS
- fix decrypt olm bug:
device_one_time_keys_counthas been processed before decryption -> one time keys were removed and could not be used for decryption
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte reports
- Process rooms' read status client-side (to be able to tell whether / how many unread messages a room has, whether there are mentions and such)
- Allow creating encrypted DMs
- Maybe trigger backup at end of sync (upload keys to backup incrementally / automatically)
- Fix regenerate_olm_machine losing backup state
- Fix a bug where the same keys would keep getting re-uploaded to backup
- Fix: don't update a
RoomInfoif the read receipts haven't changed
- Fix: revert notification count change from read receipts PR
- An internal but noteworthy development regarding the FFI crates: We are slowly making the necessary changes to enable UniFFI multi-crate builds where some parts of the bindings are generated from annotations in the regular Rust crates that non-FFI consumers use as well. Those annotations are by far the lightest-weight binding solution in terms of maintenance since there's a lot less boilerplate involved compared to the previous approach where every FFI function needs to be defined as its own Rust function (that oftentimes just calls a function from of the same name from another crate).
Matrix Dart SDK (website)
Matrix SDK written in pure Dart.
Matrix Dart SDK website
Nothing exciting this week as everyone glides into vacation mode, but we had a (very small) breaking change so here I am :D
If you used any of the
Timeoutsvalues from the sdk in your client, they are now renamed to something a bit more sensible (
otoh we had some sweet internal changes like finally having tests for calls in the sdk! Here's the whole changelog
Dept of Ops 🛠
jjj333_p [envs variant] reports
A project has been begun to make interfacing with Dendrite's admin endpoints easier has been begun. Currently administration of a Dendrite server requires interfacing with http endpoints (using curl or similar), and it is still essential to read directly from PostgreSQL in order to fetch some of the information necessary to properly maintain a public homeserver. The goal of Dendrite Admin Interface is to simplify this and add functionality by allowing admins to interface with these endpoints and read only operations of the database using simple bot commands in a dedicated administration room.
This project is still in the baby stages, and only the evacuateRoom endpoint has been implemented, however most of the base code has been begun and development is picking up speed. If you are interested in contributing or learning more please visit our GitHub: https://github.com/jjj333-p/dendrite-admin-interface
Dept of Bots 🤖
OpenAI Translate Maubot Plugin
Tom Foster reports
This is a simple GPT-based alternative to Maubot's Google Translate plugin to help people understand each other. 🤝
As we connect across different cultures and languages, understanding each other is crucial, and this bot is designed to help cross those barriers, making it possible to understand even very technical or nuanced messages in other languages.
I've configured over 200 language codes so far, including extended IETF codes like
ndsfor Low German (Plattdütsch), and so far the results are noticeably more natural and fluent than the Google equivalent, so I'm excited to see what the community does with it. 🚀
Considering the API has a cost, I've optimised the default prompt to minimise token usage, and added rate-limiting options so you can limit the requests each user can make over a given period of time to minimise abuse.
Through actual usage across several public rooms this week, I've observed an average of only about 45 input tokens and 15 output tokens per request. In real terms, that's just over 133 translations for $0.01 using the
gpt-3.5-turbomodel, making it a very cost-effective solution for communities of almost any size! 💸👍
You can add your own custom language codes (it comes with
lotr-sindarinas examples) and even use an alternative API if you have an OpenAI-compatible endpoint to use.
Visit the releases page to give it a whirl, contribute, or drop some feedback - I'm eager to make this as easy and flexible as possible, so would love to hear your suggestions! 🔧
Matrix Federation Stats
As of today,
8423Matrix federateable servers have been discovered by matrixrooms.info,
26.6%) of them are publishing their rooms directory over federation. The published directories contain
168349rooms (such difference with previous week is due to the enabled automatic retention policy in MRS for unpublished/removed rooms)
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