18 KiB
+++ date = "2024-10-25" title = "This Week in Matrix 2024-10-25" path = "/blog/2024/10/25/this-week-in-matrix-2024-10-25"
[taxonomies] author = ["Thib"] category = ["This Week in Matrix"] +++
Matrix Live
{{youtube_player(video_id="5q3njjtlaVU")}}
Dept of Spec 📜
Andrew Morgan (anoa) {he/him} 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:
- MSC4220: Local call rejection (m.call.reject_locally)
- MSC4218: Improving performance of profile changes
MSCs in Final Comment Period:
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
Steady progress across a range of MSCs this week. I'm particularly excited to see MSC2409 to reach FCP given its widespread use. Perhaps MSC4203: Sending to-device events to appservices is next?
Dept of Servers 🏢
Synapse (website)
Synapse is a Matrix homeserver implementation developed by Element
Andrew Morgan (anoa) {he/him} says
This week we released Synapse v1.118.0rc1. The major thing to be aware of is that Python 3.8 is now end-of-life. As per our Deprecation Policy for Platform Dependencies, Synapse will be dropping support for Python 3.8 in the next release; Synapse 1.119.0.
Otherwise, Synapse 1.118.0 is the first release to support Python 3.13! PostgreSQL 17 is also supported as of this release.
Other highlights in this release include an experimental implementation of MSC4210: Remove legacy mentions, and the ability to set one's display name upon registering via JWT. In addition, there's the usual round of bugfixes and internal changes. See the release changelog for the full details!
Dept of Clients 📱
Extera
OfficialDakari says
Some improvements for Extera are made. Here is what I've changed:
- Reaction styles. I've completely redesigned reactions in messages.
- Perfect browser back button handler. Primarily it's made for mobile. Now you can close modal dialogs with back button, and it works.
- Custom CSS themes! Now you can add Custom CSS Themes to Extera.
Also, here are upcoming things:
- Custom JS plugins. You will be able to inject JavaScript into Extera, like themes.
- Custom AI bots with persona (on extera.xyz homeserver). I will announce in Extera's chat when AI platform for Matrix will be out. Users will be able to create AI bots with GPT-4o + custom system prompt and more.
Best regards, Extera
teamdeveloper
Element X iOS (website)
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
Doug reports
- Element X iOS 1.9.3 is in TestFlight and will be available next week. It adds support for rendering media captions in the timeline, showing verification badges when looking at a room member’s details and fixes a bug with media upload where we sometimes included an incorrect image size.
- Work on support for Knocking continues and we’re currently updating the Reaction Picker to include a Frequently Used section so you don’t have to hunt for your favourite emoji all the time.
- Version 1.9.3 is the last version of Element X iOS that will support iOS 16. The next version we will release will require iOS 17 or 18 as we prepare the way to fix some longstanding bugs that should be addressed by using newer SwiftUI components.
Dept of Widgets 🧩
Matrix Widget Toolkit
Kim Brose (Nordeck) reports
It's been a bit over a month since we updated our Matrix Widget Toolkit to the newest MUI, React, Redux, and Matrix versions just before the Matrix Conference, so we are happy to share the newest update with you today.
While the list isn't long, it is quite significant. We migrated away from Facebook's Create React App (CRA) framework in favour of the new and actively maintained Vite framework (mind the French pronunciation 😉). This allows us to update some dependencies with known issues that were kept back behind CRA. Along with that, we also swapped out our testing framework from Jest to the Vite-native Vitest. If you're consuming the toolkit, you might already be using our
@matrix-widget-toolkit/testing
package, which conveniently exposes a helper to mock the widget API. These breaking changes caused us to release a new major version of the testing package.With that, up-to-date package versions of the toolkit components are now:
- @matrix-widget-toolkit/testing@3.0.1, based on vitest
- @matrix-widget-toolkit/api@3.4.2, @matrix-widget-toolkit/mui@2.0.6, @matrix-widget-toolkit/react@2.0.3, all now tested using vitest
- @matrix-widget-toolkit/widget-server@1.0.6, with a slightly newer nginx as its base
All the packages can be found in the releases section of our repo.
You can see a demo of what the toolkit can do using our demo widget.
If you have any questions or feedback, please reach out to us using our public room #nordeck:matrix.org.
Dept of SDKs and Frameworks 🧰
Trixnity (website)
Multiplatform Kotlin SDK for developing Clients, Bots, Appservices and Servers
Benedict says
A new release of Trixnity is out. It supports files larger than 2.1GB now, has some API improvements and there are some new helpers regarding file handling. Additionally a few bugs has been fixed. Matrix 1.12 support is also implemented, but will be part of the next release.
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
bnjbvr says
Hello everyone! Here's for the first Matrix Rust SDK update for a long time, for updates which happened this week, as generated by our new release process helper! More news about a new Matrix SDK release coming Soon™.
SDK
- Support for preallocated media content URI has been added in
Media::create_content_uri()
, and uploading the content for such a preallocated URI is possible withMedia::upload_preallocated()
.- Uploaded medias can now be cached in multiple attachment-related methods like
Room::send_attachment
.- When
SendAttachment::store_in_cache()
is set, the thumbnail is also cached with a sensible default media request (not animated, scaled, same dimensions as the uploaded thumbnail).RoomListService::subscribe_to_rooms
no longer has asettings
argument.- Room list service: Add
m.room.topic
andm.room.pinned_events
inall_rooms
.- Room list service: Add the
m.call.member
state event in the required state.- (internal) Event cache: Dropping a
LinkedChunk
UpdatesSubscriber
release the reader token for the GC.Crypto
- We now persist the error that caused an event to fail to send. The error
QueueWedgeError
contains info that client can use to try to resolve the problem when the error is not automatically retry-able. Some breaking changes occurred in the FFI layer fortimeline::EventSendState
,SendingFailed
now directly contains the wedge reason enum; use it in place of the removed variant ofEventSendState
.- Add more reason codes to
UtdCause
.matrix_sdk_crypto::type::events::UtdCause::Membership
has been renamed to...::SentBeforeWeJoined
.- Don't warn about verified users when subscribing to identity updates.
Matrix Dart SDK (website)
Matrix SDK written in pure Dart.
Matrix Dart SDK (website)
td says
meep quick major version release twim announcement -
v0.34.0
- Powerlevel updates are no longer local echo'd, we wait for the update to come down sync.
- Fix a ton of edgecases parsing message bodies
- We also added v1.12 endpoints support.
- Auto-generated objects now also have proper equality and hashcode overrides so you can just compare 2 objects now.
That's it for now, see you soon bye byee
libQuotient (website)
A Qt5 library to write cross-platform clients for Matrix
kitsune announces
libQuotient 0.9.0
After a few release candidates, the new stable branch and the new version of libQuotient are officially released! Matrix 1.12 under the hood, cross-signing support (finally in stable), lots of refactoring and cleanup after transition to Qt6-only code and a flurry of smaller features and fixes. The release notes are where you would expect them.
Elm SDK (website)
A more consistent alternative to the matrix-js-sdk, written in Elm.
Bram says
Elm SDK beta 3.6.0
Despite being a minor update, the number of new features is major! The beta 3.6.0 Elm SDK update adds the following features:
- Added
Matrix.Room.getState
to explore a room's state- Added
Matrix.leave
to leave rooms- Added
Matrix.Invite
module- Added
Matrix.Event.redact
and Matrix.Room.redact to redact events- Added
Matrix.Room.name
,Matrix.Room.topic
&Matrix.Room.pinned_events
to quickly access the most commonly used state eventsAdditionally, using backwards compatibility, the Elm SDK now supports ALL official spec versions! (Including historical ones.) This means that you can safely update the Elm SDK without needing to wait for your homeserver to update. You can now view the supported versions document for an in-depth table.
Dept of Ops 🛠
matrix-docker-ansible-deploy (website)
Matrix server setup using Ansible and Docker
Slavi reports
matrix-docker-ansible-deploy now supports installing and configuring Matrix Authentication Service (MAS).
Huge thanks to Quentin Gliech from the Element / Matrix Authentication Service team for answering our numerous questions about MAS.
Our Setting up Matrix Authentication Service documentation page has more details about this new service, what you might expect from the switch and how you can migrate your existing (Synapse) homeserver setup to it.
Dept of Services 🚀
Synapse-Admin
Aine [don't DM] reports
A while back, we at etke.cc announced our Synapse-Admin fork, and we're excited to share more QoL changes and a new feature
- Separate login button for access token auth - that doesn't depend on the login mechanisms advertised by homeservers
- Better footer implementation - no more content overlapping, no more unnecessary scrollbar
- Fixed room state events display, including displaying of external users - the content (and sender) are visible now
- User profile in the top menu - now you will see your avatar and displayname instead of a placeholder in the top menu
- Enable visual customization - adjust the display of various tables to your liking, e.g. hide unnecessary columns in the user list
- Custom menu items - evolution of the previously implemented
Contact support
button, now you can set your own custom menu items usingmenu
key inconfig.json
Apart from that, the #synapse-admin:etke.cc room has been created - do not hesitate to say hi!
Dept of Bots 🤖
Draupnir (website)
Gnuxie 💜🐝 reports
Draupnir, a moderation bot, has released v2.0.0-beta.8. This release includes improvements to safe mode, we now show which persistent configuration properties have caused Draupnir to enter safe mode. We also have made a few changes to Draupnir's logging to give system admins feedback on how Draupnir is configured. For all the details, check the release notes.
I've also written a blog update about what I have been working on over the last month or so and I also talk through an update to the Draupnir roadmap.
https://marewolf.me/posts/draupnir/2406.html
Please note that in this release the minimum node.js version required to run Draupnir has been updated from Node 18 to Node 20. If you are using Debian, please follow our documentation for using Debian and node source here, which was kindly contributed by Sky.
If you have any questions or need help with anything related to Draupnir, please find us in our support room at #draupnir:matrix.org.
Matrix Federation Stats
Aine [don't DM] reports
collected by MatrixRooms.info - an MRS instance by etke.cc
As of today,
10274
Matrix federateable servers have been discovered by matrixrooms.info,3145
(30.6%
) of them are publishing their rooms directory over federation. The published directories contain22149
rooms.Stats timeline is available on MatrixRooms.info/stats
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 | conduwu.it | 151 |
2 | transgender.ing | 185 |
3 | envs.net | 192.5 |
4 | tomfos.tr | 197 |
5 | awawawawawawawawawawawawawawawawawawawawawawawawawawawawawawaw.gay | 203 |
6 | pissing.dev | 208 |
7 | constellatory.net | 233.5 |
8 | girlboss.ceo | 251.5 |
9 | nerdhouse.io | 256 |
10 | synapse.rntpts.de | 292.5 |
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!