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

373 lines
24 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-29T19:30:00Z"
title = "This Week in Matrix 2024-03-29"
path = "/blog/2024/03/29/this-week-in-matrix-2024-03-29"
[taxonomies]
author = ["Thib"]
category = ["This Week in Matrix"]
+++
## Matrix Live
No Matrix Live as your usual host Thib has been unavailable most of the week!
## Dept of *Status of Matrix* 🌡️
[Josh Simmons](https://matrix.to/#/@josh:josh.tel) says
> Our [first ever Governing Board elections](https://matrix.org/blog/2023/12/electing-our-first-governing-board/) are approaching, with the nomination period set to begin in late April. If you want your organization or community to be able to nominate a candidate, or to vote in the election, [the time to join as a member is now](https://matrix.org/membership/) same for individuals who want to participate!
>
> This week were thrilled to announce three new members: two Ecosystem Members, [Trixnity](https://trixnity.gitlab.io/trixnity/) and [Nheko-Reborn](https://nheko.im/nheko-reborn/nheko/), and our first Platinum Member, [Element](https://element.io/)!
<!-- more -->
## Dept of Spec 📜
[Andrew Morgan (anoa) [UTC-5]](https://matrix.to/#/@andrewm:element.io) 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:**
> * *No new MSCs were created this week.*
>
> **MSCs in Final Comment Period:**
> * [MSC3935: Cute Events against social distancing](https://github.com/matrix-org/matrix-spec-proposals/pull/3935) (postpone)
>
> **Accepted MSCs:**
> * *No MSCs were accepted this week.*
>
> **Closed MSCs:**
> * *No MSCs were closed/rejected this week.*
>
> ### Spec Updates
>
> A reminder to teams working on Matrix 2.0 features to update their MSCs and send them for review in [#sct-office:matrix.org](https://matrix.to/#/#sct-office:matrix.org) soon to help bring them closer to release in the next couple of quarters.
>
> Thank you to [Kévin](https://github.com/@zecakeh), [Johennes](https://github.com/Johennes) and [Rich](https://github.com/richvdh) for their PRs to the spec text this week!
>
> ### Random MSC of the Week
>
> The random MSC of the week is... [MSC4018: Reliable call membership](https://github.com/matrix-org/matrix-spec-proposals/pull/4018)!
>
> This proposal makes the case for putting the onus on homeservers for tracking whether a user is in a Matrix voice/video call, rather than relying on clients. Currently, clients must update the user's `m.call.member` state event in the room when they join/leave a call. This can be problematic if a user closes their client without giving it a chance to do so however (such as when a browser is force-quit). This can lead to other clients thinking the client is still in the call, when it left minutes ago!
>
> A homeserver typically continuously remains online. If it were in charge of tracking call membership, then it could notice that a user's device has disconnected from all call streams, and could then update the `m.call.member` state event in the room itself for that user.
>
> The MSC also proposes two new Client-Server API endpoints which instruct the homeserver to either add or remove a device from the user's `m.call.member` state event. This would prevent two clients attempting to update the state event at the same time, potentially resulting in the modification of one of the clients being lost.
>
> The intention is that this would lead to more reliable Matrix voice/video calls! If any of that sounds interesting to you, please have a look and leave your thoughts on the MSC.
## Dept of Servers 🏢
### Synapse ([website](https://github.com/element-hq/synapse/))
Synapse is a Matrix homeserver implementation developed by Element
[Andrew Morgan (anoa) [UTC-5]](https://matrix.to/#/@andrewm:element.io) announces
> This week the team released Synapse v1.104.0rc1, in preparation for the full release of v1.104.0. It contains improvements to OIDC support, as well as a few fixes for various bugs and to the Synapse Docker image.
>
> Please test the release candidate if you're able to!
## Dept of Clients 📱
### iamb ([website](https://iamb.chat/))
A Matrix client for Vim addicts
[ulyssa](https://matrix.to/#/@ulyssa:0x.badd.cafe) reports
> I've released and published iamb v0.0.9! 🎉 Since its last version, the client has gained support for:
>
> * Image previews through several different terminal image protocols
> * Threads, unread indicators, and notifications via terminal bell or desktop environment
> * Customizing keybindings, sorting for room and member lists, and other parts of the UI
> * Commands for importing and exporting room keys
> * Updated to use v0.7.x of the matrix-rust-sdk
> * SSO login, TOML configuration, fixes for Windows Terminal, improved manual pages, and many other fixes and improvements!
>
> The [online documentation](https://iamb.chat) has been updated to account for new configuration options and commands, and you can read the [GitHub releases page](https://github.com/ulyssa/iamb/releases/tag/v0.0.9) for a full list of changes. I've also added a `PACKAGING.md` file to the repository to provide a place for notes useful to package maintainers.
>
> Many thanks to all of those who have contributed to this release! :pray:
### SchildiChat ([website](https://schildi.chat))
SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.
[SpiritCroc](https://matrix.to/#/@spiritcroc:spiritcroc.de) reports
> SchildiChat Next, our fork of Element X for Android, received some new experimental settings for managing your chat overview. You can now:
> * Sort favorite chats on top
> * Sort low priority chats on bottom
> * Filter by DMS/groups, unread chats, favorites, and rooms not added to any space, via dedicated pages from our bottom space navigation
>
> Furthermore, you can now send freeform reactions again, if you want to react to messages with arbitrary text or just want to use your keyboard's emoji picker instead of the app's inbuilt picker.
### Fractal ([website](https://gitlab.gnome.org/GNOME/fractal))
Matrix messaging app for GNOME written in Rust.
[Kévin Commaille](https://matrix.to/#/@zecakeh:tedomum.net) reports
> Spring is here in Fractal land. Birds chirping, flowers blooming, and a new beta for you to try!
>
> Staffs picks for Fractal 7.beta:
>
> * Encryption support has been extended, with server-side key backup and account recovery.
> * Messages that failed to send can now be retried or discarded.
> * Messages can be reported to server admins for moderation.
> * Room details are now considered complete, with the addition of room address management, permissions, and version upgrade.
> * A new member menu appears when clicking on an avatar in the room history. It offers a quick way to do many actions related to that person, including opening a direct chat with them and moderating them.
> * Pills are clickable and allow to directly go to a room or member profile.
> * Many more improvements on the accessibility front, for better navigability with a screen reader.
>
> 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](https://gitlab.gnome.org/World/fractal#installation-instructions).
>
> 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!
>
> As always, you can try to fix one of our [issues](https://gitlab.gnome.org/World/fractal/-/issues). Any help is greatly appreciated!
>
> ![](/blog/img/798fe8783051c09a2ea7a88ccdf13a1bbc4bb9bf1773440601593741312.png)
### 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.7 is available on the PlayStore, for the tester. 2 features have been enabled "Room List filters" which let the user filter the rooms and "Mark as unread”. More details in <https://github.com/element-hq/element-x-android/releases/tag/v0.4.7>
> * This week weve done some preparatory work to support permalink navigation. In the meantime, the Rust team is actively working on exposing new API to support this feature.
> * Also working on a troubleshoot notification screen, as per what was done on Element Android. We will also work on adding a way to switch between available PushProviders in the coming week..
> * Last note: it will be more obvious that a poll is closed in the timeline, thanks to an enlightenment of the winning answer.
## 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) announces
> [Circles](https://circles.futo.org/) is a secure social network app for families and friends, where every post is protected with Matrix's E2E encryption. We have recent releases of Circles on both Android and iOS.
>
> On Android, v1.0.27 is now available on [F-Droid.org](https://f-droid.org/en/packages/org.futo.circles/) and in beta on the [Play Store](https://play.google.com/store/apps/details?id=org.futo.circles). New features in this release include:
>
> * Improved email address management
> * Re-designed People tab to help you connect with friends of friends
> * Support for recovering your account when you forgot your password
> * UI for configuring the default power level in each room
>
> On iOS, v1.0.1 is now available in the [App Store](https://apps.apple.com/us/app/futo-circles/id6451446720), featuring:
>
> * New support for push notifications
> * Cross-signing for an account's 2nd/3rd/etc devices
> * Several bug fixes
>
> Source code is available from the FUTO Gitlab ([Android](https://gitlab.futo.org/circles/circles-android) | [iOS](https://gitlab.futo.org/circles/circles-ios)) and from our Github mirrors ([Android](https://github.com/futo-org/circles-android) | [iOS](https://github.com/futo-org/circles-ios)).
>
> If you're interested in trying the app, stop by and say "Hi" in [#circles:futo.org](https://matrix.to/#/#circles:futo.org).
## Dept of SDKs and Frameworks 🧰
### Rory&::LibMatrix (.NET 8 matrix bot/client library/SDK)
[Emma [it/its]](https://matrix.to/#/@emma:rory.gay) announces
> Some rough changes that haven't been published yet, I'll have to work out the kinks first ^^
>
> ## Changes
> * Rewrote client and server well known resolvers (currently broken if passing a full URI)
> * Added JsonSerialiserOptions to `StateEvent.RawContent` in order to remove nulls (oops ^^')
> * HSE: Small rewrite to reading of auth data, to deduplicate a lot of code
> * HSE: improved logic for detecting if a sync response is empty
> * HSE: now reports supporting all room versions over /capabilities (Element still won't shut up :c)
>
>
> ## Additions
> * HSE: logging out has been implemented
> * HSE: Importing of external matrix accounts using nheko's config file format
> * HSE: Importing of external matrix rooms over client-server API (see previous)
> * HSE: fetching media from other homeservers
> * HSE: incremental sync! (at least for joined rooms)
> * HSE: /messages endpoint
> * HSE: /event/:id endpoint
> * HSE: estimation of position in time based off of pagination/sync tokens, and event IDs
> * HSE: chat commands for utility interaction (`!hse x y z`)
> * HSE: shorthand for calculating final state from a section of timeline (not state res!)
> * HSE: Support for read markers (top level only)
> * HSE: Added shorthand to get all rooms by member mxid, with membership
>
>
> _**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!
### Matrix Rust SDK 🦀
[bnjbvr](https://matrix.to/#/@benjib:element.io) announces
> It's been a quiet week, with the team merging the `LinkedChunk` data structure for efficiently storing events in the `EventCache`, a few bugfixes here and there, as well as a full investigation and fixing issues in integration tests.
>
> The team keeps on working on the event cache (including matching known events against new events received from servers, and prepping for caching on disk) as well as the QR code login feature.
### Trixnity ([website](https://gitlab.com/trixnity/trixnity))
Multiplatform Kotlin SDK for Matrix
[Benedict](https://matrix.to/#/@benedict:imbitbu.de) reports
> I added support for Matrix 1.10 in Trixnity 4.3.0 this week. Changes since last TWIM:
>
> features:
>
> * Matrix 1.10
> * move all room list calculation logic into `RoomListHandler` making it a lot faster due to less database operations
> * BREAKING: naming of files saved by `client-media-okio` has been changed. This means, that files may need to be redownloaded
>
> bugixes:
>
> * fix, that sending keys to new members of an encrypted room may not have been triggered
> * handle redacted event in `RoomEventEncryptionService`
## 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) says
> Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) now uses [KeyDB](https://docs.keydb.dev/) (a drop-in Redis alternative), instead of [Redis](https://redis.io/).
>
> The playbook used to install Redis (and now installs KeyDB in its place) if services have a need for it ([enabling worker support for Synapse](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-synapse.md#load-balancing-with-workers), [enabling Hookshot encryption](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-bridge-hookshot.md#end-to-bridge-encryption), etc.) or if you explicitly enabled the service (`redis_enabled: true` or `keydb_enabled: true`).
>
> This change is provoked by the fact that [Redis is now "source available"](https://redis.com/blog/redis-adopts-dual-source-available-licensing/). According to the Limitations of [the new license](https://redis.com/legal/rsalv2-agreement/) (as best as we understand them, given that we're not lawyers), using Redis in the playbook (even in a commercial FOSS service like [etke.cc](https://etke.cc/)) does not violate the new Redis license. That said, we'd rather neither risk it, nor endorse shady licenses and products that pretend to be free-software. Another high-quality alternative to Redis seems to be [Dragonfly](https://www.dragonflydb.io/), but the [Dragonfly license](https://github.com/dragonflydb/dragonfly?tab=License-1-ov-file#readme) is no better than Redis's.
>
> To learn more, refer to [our changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/661f8c7121366f0512af7c16bc34d695dc11f509/CHANGELOG.md#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis).
[Slavi](https://matrix.to/#/@slavi:devture.com) announces
> Thanks to Julian Foad, [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy) can now install the [Pantalaimon](https://github.com/matrix-org/pantalaimon) E2EE aware proxy daemon for you. It's already possible to integrate it with [Draupnir](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-bot-draupnir.md) to allow it to work in E2EE rooms - see our Draupnir docs for details.
>
> See our [Setting up Pantalaimon](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-pantalaimon.md) documentation to get started.
## Dept of Bots 🤖
[Gnuxie 💜🐝](https://matrix.to/#/@gnu_ponut:matrix.org) announces
> Draupnir `v1.87.0` was [released](https://github.com/the-draupnir-project/Draupnir/releases/tag/v1.87.0), and this will be the final release before we merge our 6month in the making rework of the Draupnir core. We are advising anyone running against `gnuxie/draupnir:develop` to instead pin to `gnuxie/draupnir:v1.87.0` as there is going to a significant drop in user experience as we integrate and gather more feedback on the rework. Those running against `gnuxie/draupnir:latest` will be unaffected, but we will advise you to read the `v2.0.0` release notes as there will be dramatic changes in behaviour. If you're a confident system admin and you're happy with manually intervening then by all means continue to use `develop` and come talk to us in [#draupnir:matrix.org](https://matrix.to/#/#draupnir:matrix.org).
## Dept of Events and Talks 🗣️
### Matrix User Meetup Berlin
[saces](https://matrix.to/#/@saces:c-base.org) announces
> Next Matrix user meetup 3.4.2024, 8 pm @ c-base
>
> Have you seen the weather forecast? Finally we can stop pretending to be interested in matrix and meet up for BBQ again :)
>
> Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
>
> And don't forget to wish you brougth your favorite item :)
>
> Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).
>
> Matrix room: [#mumb:c-base.org](https://matrix.to/#/#mumb:c-base.org)
## Dept of Interesting Projects 🛰️
### Octoprint plugin
[Cadair](https://matrix.to/#/@cadair:cadair.com) reports
> I have for the first time in years pushed a release of my [octoprint plugin](https://plugins.octoprint.org/plugins/matrix_notifier/) which sends matrix notifications about the status of your prints with images. Thanks primarily to [@Links2004](https://github.com/Links2004) we now properly handle image transformations, upload images in a background thread and don't send markdown in the plain text body of the matrix message. If you run into any issues please open an issue on [the github repo](https://github.com/Cadair/octoprint-matrix-notifier-plugin).
### Moderator Tools for PubHubs
[JulianF](https://matrix.to/#/@julian:foad.me.uk) announces
> This week I have put up a web site documenting my work on [Moderator Tools for PubHubs](https://www.ph.trax.im/).
>
> PubHubs is a Dutch research project to enable citizen-facing organisations to provide online group communications, value-aligned with their real-world presence. It uses matrix protocol, combined with an interesting and different user identity model involving pseudonyms and selective cryptographic disclosure of identity attributes such as "is over 18" or "is a member of organisation X". Each hub is built around a non-federating Synapse server, with their own identity plugins and custom client. (All public-interest, open-source.)
>
> I have been working on three aspects of introducing initial moderation tooling. Some of it crosses over with general matrix (this week's Pantalaimon role is a side product of the [Draupnir part](https://www.ph.trax.im/Moderation/Draupnir/draupnir-pubhubs/)), while some is different ([Attribute Disclosure](https://www.ph.trax.im/Moderation/disclosure/)), and the third part is general (research and planning for [Civilised Discourse](https://www.ph.trax.im/Moderation/civilised-discourse/)).
>
> My funded stint is coming to an end and I am looking for ways to continue in any related area of work -- please matrix me [@julian:foad.me.uk](https://matrix.to/#/@julian:foad.me.uk) !
## Dept of Guides 🧭
### Matrix Codebrowser
[Loren](https://matrix.to/#/@lorendb:nheko.im) says
> Some of you may be familiar with <https://codebrowser.dev> already. For those of you who aren't, it's a tool that parses compiled code in C++, Rust, or Dart and displays it as a webpage with full syntax highlighting, clickable links to symbols, searchable symbols, and a wealth of other features. It's very useful for browsing a library's source code to see what individual functions do (for example, [here's QObject::connect() from Qt 6](https://codebrowser.dev/qt6/qtbase/src/corelib/kernel/qobject.cpp.html#_ZN7QObject7connectEPKS_PKcS1_S3_N2Qt14ConnectionTypeE)). The codebrowser software was originally built by Woboq, but as the maintainers have moved on to work on things like Slint, they have passed it on to KDAB.
>
> I have spun up an instance of codebrowser at <https://matrix.codebrowser.lorendb.dev>, serving sources for [mtxclient](https://github.com/Nheko-Reborn/mtxclient), [libQuotient](https://github.com/quotient-im/libQuotient), and [olm](https://gitlab.matrix.org/matrix-org/olm) so far. If you want to see more projects added, please let me know and I'll add them if possible. I'm focusing on libraries for now, as they are the most useful for developers, but I'm not opposed to adding other Matrix projects either.
>
> Please note that I currently can't support Rust or Dart code yet; while KDAB has implemented support for those languages, they haven't yet open-sourced their changes (though I can confirm that is tentatively in the pipeline). Once they open-source their changes, I'll be upgrading my installation to use that version and adding project like matrix-rust-sdk and vodozemac.
>
> If you have any questions or feedback, come say hi in [#matrix-codebrowser:nheko.im](https://matrix.to/#/#matrix-codebrowser:nheko.im)!
## 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, `9531` Matrix federateable servers have been discovered by matrixrooms.info, `2844` (`29.8%`) of them are publishing their rooms directory over federation.
> The published directories contain `161695` rooms (gitter.im rooms are back)
>
> 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-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|fostered.uk|229.5|
|2|aguiarvieira.pt|239|
|3|maunium.net|272|
|4|075-141-169-120.res.spectrum.com:8447|275.5|
|5|nerdhouse.io|299|
|6|herkinf.de|374|
|7|transfem.dev|391|
|8|fx3.eu|507.5|
|9|pain.agency|533|
|10|littlevortex.net|551.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|aguiarvieira.pt|156|
|2|075-141-169-120.res.spectrum.com:8447|162.5|
|3|nerdhouse.io|164|
|4|fostered.uk|185.5|
|5|spritsail.io|192.5|
|6|transfem.dev|200|
|7|herkinf.de|244|
|8|doctoruwu.uk|247|
|9|daedric.net|274.5|
|10|craftingcomrades.net|302|
## 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!