matrix.org/content/blog/2024/02/2024-02-23-twim.md

303 lines
18 KiB
Markdown

+++
date = "2024-02-23"
title = "This Week in Matrix 2024-02-23"
path = "/blog/2024/02/23/this-week-in-matrix-2024-02-23"
[taxonomies]
author = ["Thib"]
category = ["This Week in Matrix"]
[extra]
image = "https://matrix.org/blog/img/matrix-logo.png"
+++
## Matrix Live
{{ youtube_player(video_id="8vjjwxx7k1w") }}
## Dept of *Status of Matrix* 🌡️
[Thib](https://matrix.to/#/@thib:ergaster.org) says
> This week MTRNord and myself have launched the [Matrix.org Website Office Hours](https://matrix.org/blog/2024/02/website-office-hours/). We hope to turn that into an accessible way to onboard new contributors. Come join the fun with us, and help us making the world a better place!
<!-- more -->
## Dept of Spec 📜
[Andrew Morgan (anoa)](https://matrix.to/#/@andrewm:element.io) 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>.
>
> ### MSC Status
>
> **New MSCs:**
>
> * [MSC4110: Fewer Features](https://github.com/matrix-org/matrix-spec-proposals/pull/4110)
> * [MSC4109: Appservices & soft-failed events](https://github.com/matrix-org/matrix-spec-proposals/pull/4109)
> * [MSC4108: Mechanism to allow OIDC sign in and E2EE set up via QR code](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
> * [MSC4107: Feature-focused versioning](https://github.com/matrix-org/matrix-spec-proposals/pull/4107)
> * [MSC4106: Join as Muted](https://github.com/matrix-org/matrix-spec-proposals/pull/4106)
> * [MSC4104: Auth Lock: Soft-failure-be-gone!](https://github.com/matrix-org/matrix-spec-proposals/pull/4104)
>
> **MSCs in Final Comment Period:**
>
> * [MSC4077: Improved process for handling deprecated HTML features](https://github.com/matrix-org/matrix-spec-proposals/pull/4077) (merge)
> * [MSC4010: Push rules and account data](https://github.com/matrix-org/matrix-spec-proposals/pull/4010) (merge)
>
> **Accepted MSCs:**
>
> * [MSC4041: http header Retry-After for http code 429](https://github.com/matrix-org/matrix-spec-proposals/pull/4041)
> * [MSC2530: Body field as media caption](https://github.com/matrix-org/matrix-spec-proposals/pull/2530)
>
> **Closed MSCs:**
>
> * _No MSCs were closed/rejected this week._
>
> ### Spec Updates
>
> The Spec Core Team are continuing to internally reflect and evaluate on our processes. Not too much to say publicly here yet, but hopefully in a few weeks' time.
>
> Otherwise there has been a surge of new MSCs coming into the fray related to all different portions of the spec. Lots to chew on for those invested!
>
> A general call for help for folks to write up some spec PRs - aka turning [our current list of accepted MSCs](https://github.com/orgs/matrix-org/projects/31#column-19200628) into actual PR against the spec itself. If that sounds like something you'd like to help out with, even if you've never touched the spec before, please consider writing one up! You can see examples of Spec PRs [here](https://github.com/matrix-org/matrix-spec/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Amerged+MSC), and can join [#matrix-docs:matrix.org](https://matrix.to/#/#matrix-docs:matrix.org) for help 🙂
>
> And thank you to zecakeh for [writing one up yesterday](https://github.com/matrix-org/matrix-spec/pull/1728)!
>
> ### Random MSC of the Week
>
> The random MSC of the week is... [MSC3843: Reporting content over federation](https://github.com/matrix-org/matrix-spec-proposals/pull/3843)!
>
> This MSC is short and very readable, so I suggest doing so on your own! But in short, this MSC proposes a new Server-Server endpoint to report either an event or an entire room to a remote homeserver. This makes sense if that remote homeserver is the one housing the user(s) whose content you are reporting. Alternatively, you could use this as a mechanism to alert other homeservers of an ongoing spam wave.
>
> This proposal also introduces a new error code, `M_UNACTIONABLE`, if the homeserver does not accept the report for whatever reason.
>
> Personally I feel that this would be a useful tool to get abuse reports from server A to server B, whereas all current tooling either doesn't have that functionality, or pushes it off to bots (which can be a bit clunky). Having a standard API for it (which clients can then add UI for) seems like a better path forward.
## Dept of Servers 🏢
### Synapse ([website](https://github.com/matrix-org/synapse/))
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
[Andrew Morgan (anoa)](https://matrix.to/#/@andrewm:element.io) says
> This week [Synapse v1.102.0rc1](https://github.com/element-hq/synapse/releases/tag/v1.102.0rc1) was released. With it are [some performance fixes](https://github.com/element-hq/synapse/issues/16903), and [a fix for stuck notifications](https://github.com/element-hq/synapse/issues/16927). If you're able to test and report bugs, please do!
>
> Otherwise we are aware of [an issue with notification counts being too high](https://github.com/element-hq/synapse/issues/16904) on mobile clients, and believe we have narrowed down the issue. [This PR](https://github.com/element-hq/synapse/pull/16954) has a potential fix, and we'll aim to get it out as soon as possible.
## Dept of Clients 📱
### Quaternion ([website](https://github.com/quotient-im/Quaternion))
A Qt5-based IM client for Matrix
[kitsune](https://matrix.to/#/@kitsune:matrix.org) reports
> Version 0.0.96.1 is [out](https://github.com/quotient-im/Quaternion/releases/tag/0.0.96.1), bringing a few essential fixes. Not much to talk about, just go and upgrade!
### Element X iOS ([website](https://github.com/vector-im/element-x-ios))
A total rewrite of Element-iOS using the Matrix Rust SDK underneath and targeting devices running iOS 16+.
[Mauro Romito](https://matrix.to/#/@mauro.romito:element.io) announces
> * El-X 1.5.8 has been released
> * new translations for bulgarian swedish and ukrainian have been added, and will soon be included in the next releases
> * The recovery key can now also be used to recover your chat backups/verify your device
> * If the user has set up a global OS proxy configuration, the app is now able to determine the proxy and use it!
> * Filters work is making progress, and now we can also filter by favourites.
> * Moderation features are making progress
> * We're improving our logging backend by using Rust to write the log files
## Dept of Non Chat Clients 🎛️
### Circles ([website](https://www.kombuchaprivacy.com/circles/))
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
[cvwright](https://matrix.to/#/@cvwright:futo.org) reports
> We are happy to announce that [Circles](https://circles.futo.org/), the secure social network built on Matrix, is now available in the iOS App Store: [FUTO Circles](https://apps.apple.com/us/app/futo-circles/id6451446720). With this release and our recent release in the main [F-Droid](https://f-droid.org/en/packages/org.futo.circles/) repo, this leaves only the Google Play Store on our to-do list.
>
> The initial App Store version is identical to beta v0.9.9 and brings only minor updates over v0.9.7 and v0.9.8. We expect to be very busy over the next few weeks as we add a few remaining features and bug fixes from our post-1.0 backlog on iOS, and as we get ready to launch Circles Android on the Play Store.
>
> If you're interested in Circles, please stop by and say hello in [#circles:futo.org](https://matrix.to/#/#circles:futo.org)
## Dept of SDKs and Frameworks 🧰
### matrix-sdk-store-media-cache-wrapper ([website](https://crates.io/crates/matrix-sdk-store-media-cache-wrapper))
[ben](https://matrix.to/#/@ben:acter.global) reports
> Just a quick one on the side: We have [just announced the stable release of the `matrix-sdk-store-media-cache-wrapper`](https://news.acter.global/announcing-store-media-cache-wrapper/) Rust [crate on crates.io](https://crates.io/crates/matrix-sdk-store-media-cache-wrapper) for the matrix-rust-sdk. If you, too, want to separate the internal store state from the downloaded media in a safe and secure way with your matrix-rust-sdk-based project, this is for you. Enjoy.
### Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
[Emma [it/its]](https://matrix.to/#/@emma:rory.gay) reports
> Lots of changes this time around, and a whole homeserver test jig has started development!
>
> ### Changes
>
> * Remote homeserver timeout increased from 2 minutes to 5 minutes.
> * Homeserver resolver now falls back to HTTP if HTTPS is not available (I should probably add a toggle for that ^^')
> * Fixed power level checks
> * API calls now use `ResponseHeadersRead` mode for responses, meaning that some larger API calls (eg. sync, mmebers, ...) now deserialise faster, due to being deserialised while still streaming!
> * `DisbandRoomAsync` was renamed to `PermanentlyBrickRoomAsync` in order to clarify it's function and intent.
> * Common sync filter presets now return ephemeral objects, meaning any change to their contents will no longer be reflected in calls later on (eg. between different clients)
> * Bot SDK: Command listener uses a very small sync filter (only m.room.message, by not self), as this allows far faster initialisation.
>
> ### New features
>
> * Filter uploads now allow `@me` (literal) in `senders`/`not_senders`, these will be substituted by the current user's MXID. This allows far easier templating.
>
> ### New sub-project: Rory&::LibMatrix.HomeserverEmulator
>
> A new project has appeared! This is an attempt at having a quick and dirty "homeserver" implementation in order to allow for fast iteration on development whilst offline.
> Upon an attempt to log in, a random account is generated with random rooms, in order to provide "realistic" test data.
>
>
> _**And, as always:**_
>
> * The code is available at [cgit.rory.gay](https://cgit.rory.gay/matrix/LibMatrix.git)!
> - All contributions are more than welcome, be it documentation, code, anything! Perhaps, example usecases, bots, ...?
> * Discussion, suggestions and ideas are welcome in [#libmatrix:rory.gay](https://matrix.to/#/#libmatrix:rory.gay) (Space: [#mru-space:rory.gay](https://matrix.to/#/#mru-space:rory.gay))
> * Got a cool project that you're working on and want to share, using LibMatrix? Be sure to let me know, I'd love to hear all about it!
### Trixnity ([website](https://gitlab.com/trixnity/trixnity))
Multiplatform Kotlin SDK for Matrix
[Benedict](https://matrix.to/#/@benedict:imbitbu.de) says
> This week just a small bugfix release (v4.2.5) of Trixnity.
>
> bugfixes:
> * fix deadlock in start/stop-sync handling (thanks to @justjanne:matrix.org for finding and analyzing this bug)
> * fix ConcurrentModificationException in `Concurrent`-Collections
### simplematrixbotlib ([website](https://github.com/KrazyKirby99999/simple-matrix-bot-lib))
simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.
[imbev](https://matrix.to/#/@imbev:matrix.org) reports
> ### simplematrixbotlib releases v2.11.0
>
> pypi: <https://pypi.org/project/simplematrixbotlib/2.11.0/>
>
> git: <https://codeberg.org/imbev/simplematrixbotlib/src/tag/v2.11.0>
>
> * The `on_reaction_event` listener now uses matrix-nio's ReactionEvent instead of UnknownEvent
>
> * `api.send_text_message` method now has a reply_to parameter, making it easier to reply to events
>
> * The minimum matrix-nio version is now 0.24
### matrix-rust-sdk ([website](https://github.com/matrix-org/matrix-rust-sdk))
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
[bnjbvr](https://matrix.to/#/@benjib:element.io) announces
> It's been a while since the last update for the Rust SDK, so we're happy to report many improvements since the last time!
>
> * New APIs have been added to the main SDK: reading and setting room power levels, retrieve interesting tags (favourite, low priority), marking a room as unread following MSC2867.
> * When creating a Client, a convenient way to auto-discover if an URL is a homeserver URL or a server name has been added: `ClientBuilder::server_name_or_homeserver_url()`.
> * Work has started on a new [Event Cache](https://github.com/matrix-org/matrix-rust-sdk/issues/3058), which should help with extracting some useful features out of the Timeline API, and put them back into the main SDK. This includes notably: automatically retrying decryption after new keys have been received, back-pagination of events, computing unread markers and updating read receipts in a single place. Stay tuned as the work moves forward.
> * The Room List service has more filters (all, unread, groups, DMs, favourites), and can combine them together (and, not).
> * Timeline: it's now possible to mark a room as read (and let the SDK automatically select the event that will receive a read receipt).
> * And of course your usual bunch of bugfixes, internal refactorings and performance improvements. It would be too long to list them all, but those involve the following categories: sliding sync, unread markers, indexeddb, backup support, many at the FFI layer used for EX apps, etc.
## Dept of Ops 🛠
### matrix-docker-ansible-deploy ([website](https://github.com/spantaleev/matrix-docker-ansible-deploy))
Matrix server setup using Ansible and Docker
[Slavi](https://matrix.to/#/@slavi:devture.com) announces
> [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) now supports the new [mautrix-meta](https://github.com/mautrix/meta) bridge (following news of the [deprecation of the old mautrix bridges](https://github.com/mautrix/facebook/issues/332)).
>
> mautrix-meta is a single bridge, which can run in different modes and bridge to Messenger (via [Facebook](https://facebook.com/), Facebook over [Tor](https://www.torproject.org/) or via [Messenger](https://messenger.com/)) and [Instagram](https://instagram.com/). The playbook makes this bridge available via 2 separate Ansible roles, allowing you to easily run 2 instances of mautrix-meta, for bridging to both services at the same time.
>
> Consult [our changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/367af472ea2e659f2cd19a0fe7e44bac6bc627da/CHANGELOG.md#support-for-bridging-to-facebookmessenger-via-the-new-mautrix-meta-bridge) for more details on migrating.
## Dept of Interesting Projects 🛰️
[Aine](https://matrix.to/#/@aine:etke.cc) announces
> Matrix Rooms Search project got a huge under-the-hood update!
>
> At [etke.cc](https://etke.cc/) we were busy with instrumenting our projects this week, and the biggest impact is seen with the MRS.
>
> But let's start with some highlights from the changelog first:
>
> * Integrated Sentry APM Tracing
> * Fixed Federation API discovery (thanks ralfi and tulir for localizing it)
> * Rewrote avatars logic
> * Rewrote outgoing http requests logic - fixed edge cases with odd context cancellations, added retrier for 5xx responses
>
> And the impact is: new 765 online and federateable servers were discovered (+8.6%)! Moreover, 287 of them (+11.4%) are publishing room directories over federation 🎉
>
> The updates were already tested on the demo instance, and the change is visible on the [MatrixRooms.info/stats](https://matrixrooms.info/stats) page (Feb 21 -> Feb 22).
>
> Apart from that, [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/1929-admin-contact.md) integration has been reworked. From now on, MRS will try to use `m.role.admin` email(-s), and if none found, use any valid email present in the support file. Plus, MRS now serves the `/.well-known/matrix/support` file of its own.
> [Documentation](https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/msc1929.md?ref_type=heads) has been updated to reflect the changes.
>
> Try [MatrixRooms.info](https://matrixrooms.info/) (even directly from your matrix apps!), [check the source code](https://gitlab.com/etke.cc/mrs/api), and say hi in the [#mrs:etke.cc](https://matrix.to/#/#mrs:etke.cc) room
## Matrix Federation Stats
[Aine](https://matrix.to/#/@aine:etke.cc) announces
> collected by [MatrixRooms.info](https://matrixrooms.info) - an [MRS](https://gitlab.com/etke.cc/mrs/api) instance by [etke.cc](https://etke.cc?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
>
> As of today, `9567` Matrix federateable servers have been discovered by matrixrooms.info, `2801` (`29.3%`) of them are publishing their rooms directory over federation.
> The published directories contain `20071` rooms.
>
> Stats timeline is available on [MatrixRooms.info/stats](https://matrixrooms.info/stats)
>
> [How to add your server](https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/indexing.md) | [How to remove your server](https://gitlab.com/etke.cc/mrs/api/-/blob/main/docs/deindexing.md)
## Dept of Ping
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by [pingbot](https://github.com/maubot/echo), a [maubot](https://github.com/maubot/maubot) that you can host on your own server.
### [#ping:maunium.net](https://matrix.to/#/#ping:maunium.net)
Join [#ping:maunium.net](https://matrix.to/#/#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|ari.lt|247|
|2|nerdhouse.io|278|
|3|aguiarvieira.pt|284|
|4|envs.net|285|
|5|chatinamatrix.xyz|304|
|6|fostered.uk|305.5|
|7|plocki.org|417|
|8|matrix.its-tps.fr|430|
|9|utzutzutz.net|501|
|10|viorsan.space|744|
### [#ping-no-synapse:maunium.net](https://matrix.to/#/#ping-no-synapse:maunium.net)
Join [#ping-no-synapse:maunium.net](https://matrix.to/#/#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|nerdhouse.io|128|
|2|ari.lt|138|
|3|aguiarvieira.pt|167|
|4|dendrite.s3cr3t.me|170|
|5|fostered.uk|220|
|6|spritsail.io|222|
|7|matrix.its-tps.fr|226|
|8|chatinamatrix.xyz|234|
|9|h2.gay|304|
|10|darkness.services|350|
## That's all I know
See you next week, and be sure to stop by [#twim:matrix.org](https://matrix.to/#/#twim:matrix.org) with your updates!