matrix.org/content/blog/2024/03/2024-03-15-twim.md

268 lines
19 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

+++
date = "2024-03-15T19:30:00Z"
title = "This Week in Matrix 2024-03-15"
path = "/blog/2024/03/15/this-week-in-matrix-2024-03-15"
[taxonomies]
author = ["Thib"]
category = ["This Week in Matrix"]
+++
## Matrix Live
{{ youtube_player(video_id="HbzMofPhX0Y") }}
## Dept of *Status of Matrix* 🌡️
[Josh Simmons](https://matrix.to/#/@josh:josh.tel) reports
> The wait is over! We are [now accepting applications](https://cryptpad.fr/form/#/2/form/view/j1+wOJVZWyrDKvGP-G1r-zEOI3a52j5Y22brxhrdcmM/) from projects and organizations that want to join the Foundation as Ecosystem and Associate Members.
>
> You may recall that in December [we announced two new membership tiers](https://matrix.org/blog/2023/12/electing-our-first-governing-board/) to ensure we have healthy community representation as we introduce more open governance for Matrix. Specifically, we created Ecosystem and Associate Member tiers. Ecosystem Members are open source projects that speak Matrix, and Associate Members are FOSS foundations, nonprofits, and academic institutions.
>
> Were excited to bring more folks into the fold, and thrilled to welcome [Thunderbird](https://thunderbird.net/), [Draupnir](https://github.com/the-draupnir-project/Draupnir), and [Conduit](https://conduit.rs/) as our first Ecosystem Members 🎉 Curious who else has joined as a member recently? [Check out our Supporters](https://matrix.org/support/#supporters).
>
> Wed also like to recognize Thunderbird for sponsoring the Foundation, which helps us get a little bit closer to making the Foundations activities sustainable 🚀
[Thib](https://matrix.to/#/@thib:ergaster.org) announces
> There is a question we often get asked: why do you operate the Matrix.org homeserver, and why do you keep registrations open? We don't want to become the gmail.com of Matrix after all. We covered those in this post.
>
> <https://matrix.org/blog/2024/03/why-matrix-org/>
<!-- more -->
## Dept of Spec 📜
[Andrew Morgan (anoa)](https://matrix.to/#/@andrewm:element.io) 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:**
> * [MSC4119: Voluntary content flagging](https://github.com/matrix-org/matrix-spec-proposals/pull/4119)
>
> **MSCs in Final Comment Period:**
> * *No MSCs are in FCP.*
>
> **Accepted MSCs:**
> * *No MSCs were accepted this week.*
>
> **Closed MSCs:**
> * *No MSCs were closed/rejected this week.*
>
> ### Spec Updates
>
> Next Friday, March 22nd, is the release date of Matrix v1.10! Watch this space for when the blog post goes live.
>
> A new release of the spec means it's planning time for the subsequent one. For v1.11 we're looking to focus on Trust & Safety, authenticated media and Extensible Events. See [this message](https://matrix.to/#/!ewdjhNcPcEmYNKzlWp:t2l.io/$56qea_7yK40nVVu-PH_hxkLmyBO9YXaQtCmd-UIt_YQ?via=matrix.org&via=element.io&via=envs.net) in the Office of the Matrix Spec Core Team room for further details. If you have something that you'd like to suggest that isn't already on that list, please do so in that room!
>
> Otherwise there has been lots of activity in the spec-writing side of things this week. 5 new PRs and 2 merged during [this week alone](https://github.com/matrix-org/matrix-spec/pulse#proposed-pull-requests)! A mix of spec PRs and general fixes/improvements to the spec itself. Thank you to everyone who's pitching in!
>
> ### Random MSC of the Week
>
> The random MSC of the week is... [MSC3999: Add causal parameter to `/timestamp_to_event`](https://github.com/matrix-org/matrix-spec-proposals/pull/3999)!
>
> The gist of this proposal is that the existing [`GET /_matrix/client/v1/rooms/{roomId}/timestamp_to_event`](https://spec.matrix.org/v1.9/client-server-api/#get_matrixclientv1roomsroomidtimestamp_to_event) endpoint (which allows you to jump to a point in a room based on a given date and time), could suffer from some edge cases. Particularly if you're heavily using `/timestamp_to_event` to form your room timeline (which the [Matrix Viewer](https://github.com/matrix-org/matrix-viewer) does).
## Dept of Servers 🏢
### Synapse ([website](https://github.com/element-hq/synapse/))
Synapse is a Matrix homeserver implementation developed by Element
[Andrew Morgan (anoa)](https://matrix.to/#/@andrewm:element.io) announces
> Synapse v1.103.0 is due out next week, carrying with it some upcoming features and bug fixes:
>
> * Stabilise, and enable by default, support for [MSC4041](https://github.com/matrix-org/matrix-spec-proposals/pull/4041) (`Retry-After` header).
> * Fix performance issues when joining very large rooms that can cause the server to lock up (thanks to [@ggogel](https://github.com/ggogel) for their persistence on this one!)
> * Fix a bug introduced in v1.76.0 that prevented joining remote rooms when a module uses the `on_new_event` callback.
>
> ...and more!
>
> We have a release candidate out ([v1.103.0rc1](https://github.com/element-hq/synapse/releases/tag/v1.103.0rc1)) if you would like to help test early and shake out any bugs before the full release. Otherwise, expect v1.103.0 to land next week. Thanks!
## Dept of Clients 📱
### 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
> * Release candidate 1.5.13 to be released soon! it will include filters and mark as read/unread/favourite
> * We improved our testing by having all of our views preview tested on both iPhone and iPad and multiple languages
> * A lot of progress has been done on moderation management in rooms.
> * We improved our logging for UTD events, this will help us improve the quality of decryption over time.
### Element X Android ([website](https://github.com/vector-im/element-x-android))
Android Matrix messenger application using the Matrix Rust Sdk and Jetpack Compose
[benoit](https://matrix.to/#/@benoit.marty:matrix.org) announces
> * Element X Android 0.4.5 is now in production. It adds the ability to mark a room as favourite and adds some action regarding moderation (moderation is still under a disabled feature flag).
> * The next release candidate (0.4.6) can already be downloaded from GitHub here: <https://github.com/element-hq/element-x-android/releases/tag/v0.4.6> and will soon be available on the PlayStore if youre a tester. The loading of the room members is much faster, especially in crowded rooms, and the UX has been tweaked too.
> * We are working on room filtering, but the feature is not enabled yet on production. You can use the nightly build to be able to enable it from the settings, Developer options.
> * The room moderation feature is now closer to completion: if you are an admin you can now change the roles of other users, the default power levels for some actions. If you are either an admin or a moderator you can now remove, ban or unban users.
> * We are also working on a tool to be able to check the quality of Element X Android translations. It is available at <https://element-hq.github.io/element-x-android/> If you spot any mistakes / typo / inconsistency in any languages, feel free to reach us! You can help translate the application at <https://localazy.com/p/element>. We manage the translations in French and German, but other languages are provided by the community. Also, we enable the language only if the translation progress is close to 100%. For layout issues, please report an issue using <https://github.com/element-hq/element-x-android/issues/new/choose>. Thanks!
### Beeper ([website](https://www.beeper.com))
All you chats in one app.
[tulir](https://matrix.to/#/@tulir:maunium.net) says
> We've released a new Android app that's awesome and rebuilt from the ground up instead of being an Element fork. It uses Kotlin and Jetpack Compose for the UI and mautrix-go for all the Matrix things. For more details, check out our blog post: <https://blog.beeper.com/p/new-beeper-android-app-open-beta>
>
> ![](/blog/img/20240315-beeper.webp)
## Dept of SDKs and Frameworks 🧰
### Matrix Rust SDK
[bnjbvr](https://matrix.to/#/@benjib:element.io) announces
> * More logging has been added to the crypto crate, to better understand unable-to-decrypt (UTD) events. In particular, it's possible to listen to the UI timeline's UTDs events, using a special dedicated hook
> * Back-pagination has been added to the Event Cache, and the UI timeline now makes use of that, in place of its own code.
> * The event cache now has an experimental fancy data structure to represent events, implemented as a linked list of chunks. It's not used yet, but it's being integrated.
> * A filter to show only invites has been added to the Room List service.
> * When fetching all the room members, the computation for disambiguating names has been optimized, resulting in much smaller run times for `Room::sync_members()` et al. (And a benchmark has been added to prove it!)
> * And your usual load of refactorings and smaller bugfixes and improvements.
### Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
[Emma [it/its]](https://matrix.to/#/@emma:rory.gay) reports
> Working on some scope cleanup, moving utilities into subclasses in order to make extensions more cleanly separated, along with some nice bot changes, in order to allow more versatility and customisation.
>
> ## Changes
> * Moved named filters to `hs.NamedCaches.FilterCache`
> - This also means that any named filter handling functions have been removed from `AuthenticatedHomeserverGeneric`
> * Bot utils: `AddMatrixBot` no longer adds default commands (see additions)
>
> ## Additions
> * Added `BodyWithoutReplyFallback` to `RoomMessageEventContent`
> * Added file/media cache at hs.NamedCaches.FileCache
> - This allows avoiding reuploads of files that are commonly reused, such as reaction images
> * Added `WithCustomEmoji(string mxcUri, string name)` to `MessageBuilder`
> - You can now add custom emojis to messages, whether you're using a custom emoji pack or not
> * Added `WithCodeBlock(string code, string language = "")` to `MessageBuilder`
> * Added `WithCollapsibleSection` to `MessageBuilder` - sometimes a code blocks or details can get very long :)
> * Added generic named cache implementation (`NamedCache<T>(string name)`)
> - You can now easily implement your own caches mapped to account data as `Dictionary<string, T>`
> - Language is optional but can be omitted for clients that don't support it
> * Added `hs.NamedCaches` in order to group named caches for different data types
> * Bot utils: Added extended bot configuration support:
> - AddMatrixBot no longer adds command support or default commands
> - There's a configuration option (`MentionPrefix`), to allow mentioning the bot directly, as prefix
> - Added methods to `services.AddMatrixBot()`:
> - `AddCommandHandler()` - Adds command handler
> - `AddCommands(Type[] commandClasses)` - Allows adding a list of command classes, without necessarily including builtins like !help
> - `DiscoverAllCommands()` - Registers all commands that can be found, including builtins such as !help
> - `WithInviteHandler(Func<InviteEvent, Task> handler)` - Allows easy addition of invite handling with custom logic (eg. must be in x room)
> - `WithCommandResultHandler(Func<CommandResult, Task> handler)` - Allows overriding command/permission error handling in order to add custom messages, or extra logging
> * Bot utils: Added `Aliases` and `Unlisted` to ICommand, allowing bots to add aliases and hide commands from !help
> * Bot utils: Added support for multiple prefixes, and prefixes with spaces (needs more testing)
> * Bot utils: Added support for command names with spaces (needs more testing)
>
> _**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!
> ![](/blog/img/ETxZosOAWjHKcMvyNEQrCFoQ.png)
## Dept of Events and Talks 🗣️
### Netzpolitischer Abend
[HarHarLinks](https://matrix.to/#/@kim:sosnowkadub.de) reports
> Every first Tuesday of the month, the [Digitale Gesellschaft e.V.](https://digitalegesellschaft.de/) ("digital society") hosts the [Netzpolitischer Abend](https://digitalegesellschaft.de/netzpolitischer-abend/) ("internet politics evening") at [c-base](https://c-base.org/) Berlin, Germany, with - you may have guessed it already - talks covering digital and internet politics (usually in German). I hope that does not stop you, because [the 134th edition](https://digitalegesellschaft.de/2024/02/134-netzpolitischer-abend/) from ~~`1709665200`~~ 2024-03-05 20:00 CET featured talks on some great topics ranging from _Feminist Internet Politics_ over _Freedom of Press_ to the _Latest News on Chat Control_. The most interesting topics to you, dear TWIM reader, might be Nadine's [upd](https://youtu.be/USRaJIutiwc)[ate](https://vimeo.com/922052289) on her [_Polychat_ project](https://polychat.de/) ([#polychat-ambassadors:datanauten.de](https://matrix.to/#/#polychat-ambassadors:datanauten.de)) and Yan (aka [yncyrydybyl](https://github.com/yncyrydybyl) aka t) giving a brief introduction on the Matrix protocol and Foundation, an overview how Matrix is being implemented in the German public administration, and answering questions from the in-person attendees. View Yan's talk on [YouTube](https://youtu.be/c3ghbKpgnCY), [Vimeo](https://vimeo.com/922038111), or watch the live stream of the whole evening [here](https://youtu.be/sneDXwGfw70). Here are some links to the things Yan shows in his presentation, I tried to also include links to the English versions where available:
>
> * Matrix [Manifesto](https://matrix.org/about/) and [ecosystem](https://matrix.org/ecosystem/)
> * [Matrix in Germany](https://element.io/matrix-in-germany)/[Matrix in Deutschland](https://element.io/de/matrix-in-deutschland) on Element's website
> * [TI-Messenger](https://fachportal.gematik.de/anwendungen/ti-messenger)
> * [BwMessenger](https://messenger.bwi.de/bwmessenger) and [BundesMessenger](https://gitlab.opencode.de/bwi/bundesmessenger/info)
> * [openDesk](https://www.cio.bund.de/Webs/CIO/DE/digitale-loesungen/digitale-souveraenitaet/souveraener-arbeitsplatz/souverarner-arbeitsplatz-node.html) (previously "sovereign workplace"), [more openDesk](https://gitlab.opencode.de/bmi/opendesk/info), [openDesk in English](https://gitlab.opencode.de/bmi/opendesk/info/-/blob/main/README_EN.md)
> * Map of (mostly German and German language) [Universities](https://doc.matrix.tu-dresden.de/en/why/)
>
> <sub>Tip: If you'd like to follow Digitale Gesellschaft/Netzpolitischer Abend, you can subscribe to their [social media](https://chaos.social/@digiges) or their [website feed](https://digitalegesellschaft.de/feed/)/[youtube feed](https://www.youtube.com/feeds/videos.xml?channel_id=UCvMIa4wxtS8FR239VDuUhXA) using your favorite tool; mine is called [hookshot](https://github.com/matrix-org/matrix-hookshot/).</sub>
### Andy's Matrix bot live stream
[andybalaam](https://matrix.to/#/@andybalaam:matrix.org) announces
> I'm still live-streaming hacking on a Matrix bot in Rust every week, Thursdays at 15:00 UK time. Watch the streams live on <https://andybalaam.uk.to/> and find the recordings at <https://diode.zone/c/andybalaam_programming/videos>
## Dept of Interesting Projects 🛰️
[Gregor](https://matrix.to/#/@Gregor:matrix.org) announces
> External videos & posts, reaction images, polls… There are many things I like to see inline in conversations without having to follow a link. [emweb](https://dflate.io/emweb) is a prototype for a lightweight protocol to solve for all of these and more, while keeping implementation burden low.
>
> I am looking for interested parties that want to help refine the idea, especially with regard to security and UX. There is also a lot more prototypes to build and spread inspiration. A few from the top of my mind: coin flips, games likes tic tac toe or chess, live location sharing…
>
> So far I have two scrappy host implementations: one for the Matrix client [Cinny](https://github.com/Gregoor/cinny/tree/emweb) (hosted [here](https://cinny-emweb.vercel.app/)) and one for the Mastodon client [Elk](https://github.com/Gregoor/elk/tree/emweb) (hosted [here](https://elk-emweb.vercel.app/)).
> The Elk fork is not just an emweb-host but also a guest, so you can send links to Mastodon posts on it within the emweb fork of Cinny, and they will be directly embedded into your chat.
>
> If this piqued your interest, talk to me [@Gregor:matrix.org](https://matrix.to/#/@Gregor:matrix.org)
## Matrix Federation Stats
[Aine](https://matrix.to/#/@aine:etke.cc) announces
> collected by [MatrixRooms.info](https://matrixrooms.info/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats) - 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, `9473` Matrix federateable servers have been discovered by matrixrooms.info, `2816` (`29.7%`) of them are publishing their rooms directory over federation.
> The published directories contain `20025` rooms.
>
> Stats timeline is available on [MatrixRooms.info/stats](https://matrixrooms.info/stats?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
>
> [How to add your server](https://matrixrooms.info/indexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-statsix&utm_campaign=federation-stats) | [How to remove your server](https://matrixrooms.info/deindexing/?utm_source=twim&utm_medium=matrix&utm_campaign=federation-stats)
## 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|maunium.net|247|
|2|nerdhouse.io|291|
|3|075-141-169-120.res.spectrum.com:8447|343|
|4|aguiarvieira.pt|346|
|5|plocki.org|420|
|6|chatinamatrix.xyz|474|
|7|ilmari.org|476|
|8|matrix.netho.tk|537|
|9|littlevortex.net|646|
|10|rom4nik.pl|678.5|
### [#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|dendrite.s3cr3t.me|154|
|2|aguiarvieira.pt|182|
|3|pain.agency|204.5|
|4|matrix.its-tps.fr|216|
|5|spritsail.io|235|
|6|transfem.dev|367|
|7|inu.is|439.5|
|8|matrix.org|524.5|
|9|herkinf.de|601|
|10|doctoruwu.uk|672|
## 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!