20 KiB
+++ date = "2023-12-15" title = "This Week in Matrix 2023-12-15" path = "/blog/2023/12/15/this-week-in-matrix-2023-12-15"
[taxonomies] author = ["Thib"] category = ["This Week in Matrix"]
[extra] image = "https://matrix.org/blog/img/matrix-logo.png" +++
Matrix Live
{{ youtube_player(video_id="5F2V-7bQHaM") }}
Dept of Status of Matrix 🌡️
Thib says
I'll start with a heads-up that the Foundation is going to clean-up all the
libera.chat
aliases on Matrix. You might want to check the rooms under your control to update the alias and the matrix.to links to it.You can find all the details on our blog
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:
- There were no new MSCs this week.
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
As you can make out from the stats, the spec process has been mostly quiet over the past couple weeks. In fact, the stats above are from the last couple weeks, as someone (cough, me) forgot to post a spec TWIM last Friday. All to be expected with the holidays looming however, including my own!
Random MSC of the Week
The random MSC of the week is... MSC3871: Gappy timelines!
This MSC actually gives background and summarises itself pretty well, so I'm just going to copy/paste from it here as an explainer!
/messages
returns a linearized version of the event DAG. From any given homeservers perspective of the room, the DAG can have gaps where they're missing events. This could be because the homeserver hasn't fetched them yet or because it failed to fetch the events because those homeservers are unreachable and no one else knows about the event.Currently, there is an unwritten rule between the server and client that the server will always return all contiguous events in that part of the timeline. But the server has to break this rule sometimes when it doesn't have the event and is unable to get the event from anyone else. This MSC aims to change the dynamic so the server can give the client feedback and an indication of where the gaps are.
This way, clients know where they are missing events and can even retry fetching by perhaps adding some UI to the timeline like "We failed to get some messages in this gap, try again."
It does this by adding a
gaps
property to theGET /_matrix/client/v3/rooms/{roomId}/messages
endpoint, which tells the client which events its missing, instead of the client just assuming incorrectly!Do check out the MSC if it sounds like something that would be useful to your client!
Dept of Servers 🏢
Dendrite (website)
Second generation Matrix homeserver
Devon Dmytro reports
This week we released v0.13.5. Upgrading to this version is highly recommended, as it fixes several long-standing bugs in our CanonicalJSON implementation. Here are a few of the highlights:
Fixes
- Convert unicode escapes to lowercase (gomatrixserverlib)
- Fix canonical json utf-16 surrogate pair detection logic (gomatrixserverlib)
- Handle negative zero and exponential numbers in Canonical JSON verification (gomatrixserverlib)
- Issues around the device list updater have been fixed, which should ensure that there are always workers available to process incoming device list updates.
- Fixes around the way we handle database transactions (including a potential connection leak)
- ACLs are now updated when received as outliers
Features
- Appservice login is now supported!
- Users can now kick themselves (used by some bridges)
...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 📱
Quaternion (website)
A Qt5-based IM client for Matrix
kitsune reports
The long-awaited Release Candidate for version 0.0.96 is finally out - not many changes as the last beta has been reasonably good. 0.0.96 release will be the last one supporting Qt 5.15; packagers are recommended to build it with the most recent Qt 6 at their disposal. Binaries for macOS and Windows are available from the GitHub Releases page linked to above, and a flatpak is already available from the beta channel at Flathub. Totally not promising the release before Christmas ;)
Nheko (website)
Desktop client for Matrix using Qt and C++17.
Nico reports
I didn't post many updates recently, but that was mostly because I was working on boring and tedious stuff, that isn't interesting to hear about. Nevertheless, I'll tell you about some of the things now.
On Wayland, if you want to activate your window (as in, bring it to the foreground), you are not allowed to do that. This is for security reasons, since when Wayland was designed, many people were dealing with bad web popups that always stole your focus. In itself that design decisions does make sense, but it does cause some problems. Want to open a notification? App will blink, but not come to the top. Want to open a url in your browser like matrix:r/nheko:nheko.im ? Well, the app will blink and open the url, but stays in the background! Want to run the app from the command line or an icon? Well, the existing window will blink, but not come to the foreground!
However, we fixed that. Usually you should get an activation token, but not all apps provide you with one (like X11 applications, KDEs Konsole, etc). Nheko will now try to use an activation token, when one is passed from your notification manager, but that didn't work reliably for the other ways Nheko could be activated. In those cases Nheko now creates a small window with a loading spinner to get an activation token (because launching a new window of course will bring you to the top...) and then uses that window after 100ms to create an activation token for the main app, sends it to the main app and now the main app can raise itself. Do you think this sounds like a terrible hack? Well, it is, but it works and that's better than nothing! Hopefully all the wayland users won't complain about the useless loading indicator in the future...
Also, on Windows clicking a notification didn't put you in the room. This is now fixed! And we have a shiny new Windows CI runner.
Speaking about Windows, we now also provide an msix for Windows users, that even has a valid signature (that costs quite a lot of money....)! This should make the installer experience quite a bit better for Windows users and soon even should provide auto-updates, but we still need to figure out if we want to enable the "ping nheko.im to check for an update every 15 days" or if we don't want to have our app call home... In theory that should be optional depending on how you install Nheko though. It will only be enabled when you use the appinstaller link, not the msix directly. Apart from that there is a small issue still in the notifications, where the App name now has a weird suffix... and possibly some issues with the protocol handler. If anybody has experience with Windows development, I would appreciate some help. I don't use the platform, so I am mostly flying blind there!
We also now use a different package to manage the single instance behaviour, which should work more reliably on Qt6. However that means you really shouldn't run Qt5 and Qt6 Nheko side by side!
There have been plenty of updates to the spanish translation by CM0use and leaving a space should now properly unhide its rooms again. Begasus also improved the Haiku support by a lot and plenty of smaller fixes!
At the current rate, see you next year, I guess? Thank you for reading our update!
Dept of SDKs and Frameworks 🧰
elm-matrix-sdk (website)
Bram says
The Elm SDK is an SDK in Elm that compiles to JavaScript and hence aims to be a competitor to the established matrix-js-sdk. This week, the SDK has released its beta 1.0.0 release on the public Elm registry!
The project has received funding from NLnet 💸 and it is now time to start releasing beta versions in an accessible way. The beta versions are experimental and unstable, but feedback is already going to be very much welcome as new versions are going to be released!
You can follow the progress in the Matrix room #elm-sdk:matrix.org and the project will also give you timely release updates on the Fediverse. 🦣
Dept of Services 🚀
etke.cc (website)
Your matrix server on your conditions
Aine announces
Attention: Changes to the Pricing Model at etke.cc
We're excited to announce a significant update to our pricing model at etke.cc, your trusted managed Matrix servers provider.
Transition to Pay-By-Complexity
In a move towards fairness, we're shifting from a flat-fee pricing model to a more dynamic, pay-by-complexity approach. This means you'll now pay based on the services you choose, allowing for a more tailored and equitable pricing structure.
Fair Pricing for Everyone
The previous flat-fee model sometimes led to discrepancies, where customers with different service needs paid the same amount. With pay-by-complexity, you'll only pay for the services you select, ensuring fair pricing for every user.
Introducing Base Matrix Server at $5/month
As part of this change, we're thrilled to offer a base Matrix server (just a Matrix homeserver and some core services, without bridges/bots, etc.) on your hardware for as low as $5/month—a 50% reduction compared to our previous Maintenance tier. This enables you to enjoy Matrix services at a more affordable rate.
New Services Available
Expanding beyond Matrix, we're reintroducing additional services, such as Miniflux, Radicale, Uptime Kuma, GoToSocial, Linkding, and Vaultwarden, available as paid add-ons. Your feedback will guide us in expanding this service portfolio gradually.
Hello, America and AMD-powered Servers
We're now supporting Hetzner Cloud's new AMD-powered
CPX
server line, offering improved performance-per-dollar and double the disk space. These servers are available not only in Europe but also in the US, opening up new possibilities for our customers.FAQs: Your Questions Answered
We understand you may have questions about these changes. We've covered topics ranging from pricing adjustments to server upgrades and service additions in the full announcement, and in the FAQ entry. For existing customers, there's no rush—current pricing remains in place until at least July 1, 2024.
Explore the new offerings and get started with the enhanced etke.cc experience. To stay in touch, join the #news:etke.cc room and keep an eye on etke.cc/news.
Dept of Events and Talks 🗣️
Matrix Foundation & Community Meetup (room)
HarHarLinks reports
There is a large interest in FOSDEM from the Matrix community, and we are very excited to see not just a stand, not just an online track, but an in-person Matrix devroom happening again this year! If you have been following the CfP, you know that the officially allotted time for the Matrix devroom at FOSDEM however is only half a day.
You may be wondering "wait, haven't I read this before?" and you would be correct. Last year, at this point a couple friends from the Community involved with organising several other Matrix events got together and started the "FOSDEM 2023 Matrix Community Meetup", and I dare say, to great success! So, this year again, we got together and sat down with the Matrix Foundation to plan yet another Matrix FOSDEM Fringe event, which is why this time around...
We are happy to announce the FOSDEM 2024 Matrix Foundation & Community Meetup at Hackerspace Brussels (HSBXL)! The meetup is set to begin on Friday February 02 around noon local time (CET) and will go into the evening. See https://hsbxl.be/enter/ for multiple well documented ways how to find the way there. Thank you HSBXL for providing a location for this! Further, we are also happy to announce that we have found some sponsors which again will enable us to provide some drinks and food for everyone! If you or your company are planning to attend and are able to contribute to the sponsoring, please contact Thib on Matrix or using legacy comms at mailto:thib@matrix.org!
More details will be announced soon in a blog post, so if you're not subscribed to the feed (https://matrix.org/atom.xml), do so using your favorite feed reader and watch this space!
In the meantime, you can already join #fosdem2024-foundation-community-meetup:matrix.org for all upcoming info, program suggestions, to follow the process & help out, general discussion and everything else related to the event.
See you in Brussels!
Dept of Interesting Projects 🛰️
Acter (website)
ben says
v1.23.1214 is now on the AppStore for Mac
After what seemed like forever we finally found and fixed the bug that prevented our submissions to be accepted by Apple. With the latest release from thursday Acter is finally available for Mac to be installed (and kept up-to-date) conveniently via the the preinstalled Apple Mac AppStore - 💥 whopwhop, pew-pew 💥.
message edit and improved multimedia previews
Additionally this release contains important improvements and fixes in the chat: for once, you can edit chat messages now from within the Acter app (before it would display them correctly but you couldn't edit yourself) on all platforms. Secondly, we have reworked the entire multimedia handling for chat messages allowing for inline preview and viewing as well as in full-screen now, as well as several fixes around posting media. Learn more about all that in our latest blog post
becoming an Acter supporter
Some of you might already are aware that Acter isn't your average "startup" but build by a non-profit association. We have recently taking some time to explain better what that means, why that matters (to us) and how you can become a supporting member of the association (or gift it someone else for the holidays) and what's in it for you.
Dept of Guides 🧭
Matrix client tutorial (website)
uhoreg says
I've added another section to my Matrix client tutorial, explaining how to encrypt and send to-device events with Olm. I had previously written sections on encrypting and sending to-device events. This new section deals with some of the additional considerations when there are multiple recipients, and how to manage the network requests. Notably missing from this section, so far, is how to deal with errors such as failing to get one-time keys; that will come later. Next up will be encrypting room events (which is already mostly written, but is lacking tests).
Matrix Federation Stats
Aine announces
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
8330
Matrix federateable servers have been discovered by matrixrooms.info,2186
(26.2%
) of them are publishing their rooms directory over federation. The published directories contain272674
rooms.
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.
Rank | Hostname | Median MS |
---|---|---|
1 | matrix.sp-codes.de | 293 |
2 | fostered.uk | 331 |
3 | nerdhouse.io | 335 |
4 | maunium.net | 425 |
5 | ilmari.org | 460 |
6 | catboyindustries.co | 516 |
7 | littlevortex.net | 583 |
8 | mailstation.de | 958 |
9 | plocki.org | 1629 |
10 | jauriarts.org | 2475 |
#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.
Rank | Hostname | Median MS |
---|---|---|
1 | spqr2gang.com | 167 |
2 | dendrite.s3cr3t.me | 169 |
3 | fostered.uk | 192.5 |
4 | nerdhouse.io | 194 |
5 | kumma.juttu.asia | 282.5 |
6 | matrix.org | 289 |
7 | matrix.its-tps.fr | 333 |
8 | inu.is | 397.5 |
9 | kanp.ai | 481 |
10 | herkinf.de | 592 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!