matrix.org/content/blog/2022/11/2022-11-04-this-week-in-mat...

400 lines
25 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.

+++
title = "This Week in Matrix 2022-11-04"
date = "2022-11-04T19:27:03Z"
path = "/blog/2022/11/04/this-week-in-matrix-2022-11-04"
[taxonomies]
author = ["Thib"]
category = ["This Week in Matrix"]
+++
## Matrix Live
{{ youtube_player(video_id="uIzk9mrrK1M") }}
## 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://matrix.org/docs/spec/proposals.
>
>
> ## MSC Status
>
> **New MSCs:**
> * [MSC3925: m.replace aggregation with full event](https://github.com/matrix-org/matrix-spec-proposals/pull/3925)
> * [MSC3924: Capability-style access control for Matrix media](https://github.com/matrix-org/matrix-spec-proposals/pull/3924)
> * [MSC3923: Bringing Matrix into the IETF process](https://github.com/matrix-org/matrix-spec-proposals/pull/3923)
> * [MSC3922: Removing SRV records from homeserver discovery](https://github.com/matrix-org/matrix-spec-proposals/pull/3922)
>
> **MSCs in Final Comment Period:**
> * [MSC3030: Jump to date API endpoint](https://github.com/matrix-org/matrix-spec-proposals/pull/3030) (merge)
>
> **Accepted MSCs:**
> * [MSC3743: Standardized error response for unknown endpoints](https://github.com/matrix-org/matrix-spec-proposals/pull/3743)
>
> **Closed MSCs:**
> * [MSC3910: Content tokens for media](https://github.com/matrix-org/matrix-spec-proposals/pull/3910)
> * Superseded by [MSC3911](https://github.com/matrix-org/matrix-spec-proposals/pull/3911), [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/pull/3916)
>
> ## Spec Updates
>
> This week we've been continuing our mission to define Matrix as the interoperable standard for instant messaging! With many of our discussions expected to happen next week in this area, we've prepared some drafts for the wider community to review (with even more on the way!). With [MSC3923](https://github.com/matrix-org/matrix-spec-proposals/issues/3923), we're asking for feedback on whether people think the approach is something that could work for Matrix, though there is a cautionary note that there's a lot of TODOs to fill still.
>
> We hope to have even more news next week, but as a reminder: The IETF process is fairly slow-moving as it takes a lot of time to get through the different stages. Keep an eye on MSCs tagged "IETF" or "MIMI" - or watch this space - for updates on how it's going 🙂
>
>
> ## Random MSC of the Week
>
> The random MSC of the week is... [MSC3911: Linking media to events](https://github.com/matrix-org/matrix-spec-proposals/pull/3911)!
>
> This MSC attempts to be an addition to authenticated media in matrix (specifically [MSC3916](https://github.com/matrix-org/matrix-spec-proposals/issues/3916)) where successful authentication would also be conditioned on whether or not the user was able to view an associated event in a Matrix room. In plain english, that means that if the media was sent in a room, then you'd need to be in that room to be able to see the media (even if you tried to load the media outside of a matrix client). This change helps address some concerns about media leaking outside of the room it was sent. It also opens up possibilities to delete media if all associated events have been redacted.
>
> Check it out if you're interested in advancing media in Matrix!
>
> ![](/blog/img/d34255258b4e41fba201cf7715767ace7b19f765.png)
## Dept of Servers 🏢
### Telodendria ([website](https://telodendria.io))
An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional
[Jordan Bancino](https://matrix.to/#/@jordan:bancino.net) reports
> [Telodendria](https://telodendria.io) is moving along slowly but steadily. Here are a few brief things to note for this week:
>
> * **[GitHub](https://github.com/Telodendria/Telodendria):** There's now a read-only Git mirror of the source code hosted on GitHub, which you can browse online, or clone if you want to do local work with it.
> * **Network & Memory Improvements:** I did a lot of work with my debugger this week and made a number of network and memory improvements that make Telodendria *much* more stable and efficient.
> * **Data API:** I just have begun writing code for persisting data and caching it. At the current pace, I'd expect to see that done around the end of this year.
> * **Get Involved:** If you want to speed up development, I'm happy to delegate any of the tasks in [`TODO.txt`](https://github.com/Telodendria/Telodendria/blob/master/TODO.txt) to you.
> * **Matrix:** As a reminder, Telodendria is organized entirely on Matrix at [#telodendria:bancino.net](https://matrix.to/#/#telodendria:bancino.net). There you'll find a number of rooms for various purposes, including submitting patches, discussing Telodendria, and digesting the official newsletter. Feel free to stop by, even if it's just to say hi and express your interest in the project.
### Synapse ([website](https://github.com/matrix-org/synapse/))
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
[Shay](https://matrix.to/#/@shayshay:matrix.org) reports
> Welcome to another Friday! Here in Synapse-land we have been hard at work on this week's release candidate: v1.71.0rc2. It contains bugfixes, a few new features, and continued work on speeding up Synapse. Some notable elements are:
>
> * Legacy Prometheus metric names are now disabled by default, and will be removed altogether in Synapse 1.73.0.
> If not already done, server administrators should update their dashboards and alerting rules to avoid using the deprecated metric names.
>
> * Synapse now supports back-channel logouts from OpenID Connect providers.
>
> * Synapse now supports use of Postgres and SQLlite full-text search operators in search queries.
>
> * Synapse now implement MSC3664, Pushrules for relations.
>
> You can read more about v1.71.0rc2 here: https://github.com/matrix-org/synapse/releases
### Swiclops ([website](https://gitlab.futo.org/cvwright/swiclops))
A Matrix user-interactive authentication (UIA) server
[cvwright](https://matrix.to/#/@cvwright:matrix.org) announces
> Announcing the first alpha release of [Swiclops](https://gitlab.futo.org/cvwright/swiclops), a server that handles authentication, registration, and other user management tasks for a Matrix homeserver like Synapse.
>
> Swiclops can be configured to provide user-interactive authentication (UIA) on the Matrix `/login` endpoint, similar to [MSC2835](https://github.com/Sorunome/matrix-doc/blob/soru/uia-on-login/proposals/2835-uia-on-login.md). This opens up many exciting possibilities for the future, including:
>
> * Requiring acceptance of the latest terms of service at login
> * Multi-stage authentication protocols, such as WebAuthn or PassKeys, or various password-authenticated key exchange (PAKE) protocols
> * Two-factor authentication
>
> ## Authentication Modules
>
> * [MSC3231](https://github.com/matrix-org/matrix-spec-proposals/blob/main/proposals/3231-token-authenticated-registration.md) Registration Tokens
> * Token-based email validation
> * Cryptographic password-based login that does not expose users passwords to the server
> * Legacy password auth (ie `m.login.password`)
> * Terms of service
> * (Coming soon!) Support for registration with paid subscriptions via the Apple App Store and Google Play Store
> * (Coming soon!) Support for Apple FaceID and TouchID
>
> ## Source Code
>
> [Swiclops release v0.1.0](https://gitlab.futo.org/cvwright/swiclops/-/tags/v0.1.0)
>
> ## Installation
>
> The easiest way to install Swiclops is by using Ansible and Docker. We have created an Ansible role for it in a fork of the popular [matrix-docker-ansible-deploy](https://github.com/cvwright/matrix-docker-ansible-deploy/tree/swiclops) playbook.
### Dendrite ([website](https://github.com/matrix-org/dendrite))
Second generation Matrix homeserver
[neilalexander](https://matrix.to/#/@neilalexander:matrix.org) says
> We wouldn't ordinarily make so many releases in one week, but we've been quite busy! Instead of including the entire set of changelogs, please see the releases below which have more details about what's changed:
>
> * [Version 0.10.7](https://github.com/matrix-org/dendrite/releases/tag/v0.10.7) today, which fixes a variety of things in `/sync` amongst other things
> * [Version 0.10.6](https://github.com/matrix-org/dendrite/releases/tag/v0.10.6) on Tuesday, which optimises history visibility, improves E2EE and tweaks some state resolution code
> * [Version 0.10.5](https://github.com/matrix-org/dendrite/releases/tag/v0.10.5) on Monday, which adds hCaptcha support, improves E2EE and a range of other fixes
>
> If you have a Dendrite homeserver, staying up-to-date is highly recommended so please upgrade when you can. Otherwise, if you want to play with Dendrite without having to set up your own infrastructure, the `dendrite.matrix.org` homeserver is open for registration (upon completion of a CAPTCHA, so you may need to register using [Element Web](https://app.element.io)).
>
> As always, please feel free to join us in [#dendrite:matrix.org](https://matrix.to/#/#dendrite:matrix.org) for related discussion.
## Homeserver Deployment 📥️
[Ananace](https://matrix.to/#/@ace:kittenface.studio) announces
> This week has been quite calm, only a single update to [my Helm Charts](https://gitlab.com/ananace/charts); element-web being bumped to 1.11.13
## Dept of Clients 📱
### SmallTalk ([website](https://github.com/ouchadam/small-talk))
Minimal Android messenger powered by Matrix
[adam](https://matrix.to/#/@adam:iswell.cool) says
> Quick update from _SmallTalk_ - a tiny native android client, currently in BETA
>
> * Fullscreen zoomable image viewer
> * Muting room notifications
> * Rich text formatting (very WIP)
> * Bug fixes around Android 13 permissions and being unable to login on non synapse homeservers
>
> There's been an effort to make the app chat agnostic through the abstraction of a _chat engine_, this could allow different chat protocols to be used or simply swap out matrix SDK implementations (like the matrix-rust-sdk!)
>
> More information over at [Github](https://github.com/ouchadam/small-talk) & [#small-talk](https://matrix.to/#/#small-talk:iswell.cool)
### Quadrix ([website](https://github.com/alariej/quadrix))
A Minimal, simple, multi-platform chat client for the Matrix protocol.
[JFA](https://matrix.to/#/@alariej:matrix.org) announces
> Quadrix v1.4.5 has been released and is available for mobiles and desktops in the respective app stores (Google Play, App Store, Mac App Store, Microsoft, Snap Store, Flathub).
>
> The main improvement in this release is the added support for the .well-known API call, which allows to register and login on homeservers using a base domain URL.
>
> Also, the displaying of redacted and edited messages has been improved.
>
> I started testing Quadrix on the Conduit server implementation (thanks to @timo:conduit.rs for a test account on conduit.rs) and noticed right away some major issues. A few fixes are already included in this release.
>
> Finally, for PinePhone users, the Ozone/Wayland switch has now been disabled in the flatpak build for Phosh, because of a compatibility issue between Electron and the on-screen keyboard. On Phosh, the app now runs in XWayland mode (it looks blurry) but at least the OSK works.
>
> Please leave feedback/comments at [#quadrix:matrix.org](https://matrix.to/#/#quadrix:matrix.org) or in the issues at https://github.com/alariej/quadrix (stars welcome :-)
### Nheko ([website](https://nheko-reborn.github.io))
Desktop client for Matrix using Qt and C++17.
[red_sky (nheko.im)](https://matrix.to/#/@red_sky:nheko.im) reports
> You can now respond to notifications on macOS in nheko! These will be sent as a rich reply. No need to open up the main client any more to respond to folks.
>
> ![](/blog/img/hrkzyZEHglIvGJgwhuVXGThm.png)
>
> ![](/blog/img/iLmLykvzOOKEWABCzNDlUimh.png)
[Nico](https://matrix.to/#/@deepbluev7:neko.dev) says
> As already mentioned, the Apple Silicon builds are now properly packaged.
>
> Additionally we fixed the pagination issues in our search and you should now be able to find more messages. As part of that we also optimized a few database queries again to reduce disk load when running Nheko (which became more noticeable after we enabled some durability flags on the database last week).
>
> There have also been more fixes to the pushrules code. Test code now outnumbers the actual implementation by 4:1. As an additional feature, we do highlight messages marked as "highlight" via a pushrule (i.e. when someone mentions you) in the timeline by adding a red outline.
>
> As part of the push work I also implemented and fixed a few things in Synapse related to pushrules. If replies are not highlighted for you currently, it might be [this bug](https://github.com/matrix-org/synapse/pull/14356). A longer term fix will be [MSC3664](https://github.com/matrix-org/matrix-spec-proposals/pull/3664), which [I also implemented](https://github.com/matrix-org/synapse/pull/11804). I also [fixed some compatibility issues](https://github.com/matrix-org/synapse/pull/13904) when sending pushrules to clients after the recent Synapse refactoring.
>
> ![](/blog/img/FmctAhwrxtFysdEwfdcTnHjP.png)
### Element Web/Desktop ([website](https://github.com/vector-im/element-web))
Secure and independent communication, connected via Matrix. Come talk with us in [#element-web:matrix.org](https://matrix.to/#/#element-web:matrix.org)!
[Danielle](https://matrix.to/#/@daniellekirkwood:one.ems.host) reports
> * This week weve released a [hotfix](https://github.com/vector-im/element-web/releases) - theres important changes in this one so please update when you can.
> * The team is starting to look at improving our Matrix.to links and flow.
> * There will be some opportunities to contribute here, so if youre interested keep your eyes on the Help Wanted tag in GitHub
> * Following our recent research into Notifications were starting to build a picture of the things that would be useful to change. We need clearer definitions around defaults, and flexibility in notifications.
>
> In labs (you can enable labs features in settings on develop.element.io or on Nightly):
>
> * Weve been updating Threads for a few weeks now and some great improvements have landed. If youre not feeling any improvements [heres some tips for checking youre in the right place](https://github.com/vector-im/element-meta/discussions/803)
### Element iOS ([website](https://github.com/vector-im/element-ios))
Secure and independent communication for iOS, connected via Matrix. Come talk with us in [#element-ios:matrix.org](https://matrix.to/#/#element-ios:matrix.org)!
[Ștefan](https://matrix.to/#/@stefan.ceriu:matrix.org) reports
> * Version [1.9.10](https://github.com/vector-im/element-ios/releases/tag/v1.9.10) is ready for release and brings a handful of bug fixes throughout the app
> * The rich text editor now has voice message support as well as other updates and performance enhancements
> * Weve been making good progress on ElementX push notification support and were getting close to a working solution
> * ElementX also gained a new timeline scroll mechanism and improved concurrency
> * We have also been working on improving thread notification counts and read receipts
> * Work continues on the device manager
> * This week we also saw the first build of the ElementR iOS app, introducing Rust side crypto support to the existing codebase
>
> ![](/blog/img/jfmCFmjIwBnEOAzXehaWjEOr.png)
### Element Android ([website](https://github.com/vector-im/element-android))
Secure and independent communication for Android, connected via Matrix. Come talk with us in [#element-android:matrix.org](https://matrix.to/#/#element-android:matrix.org)!
[Danielle](https://matrix.to/#/@daniellekirkwood:one.ems.host) announces
> * This week's release has a new media picker when youre choosing to upload something to the timeline.
> * Weve also been working on multi-select in the new device manager
> * And… Fixing the share actions in the share dialog
> * In Labs; Were building loading and pagination improvements for Threads.
## 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:matrix.org) says
> Circles is a secure, E2E encrypted social network app built on Matrix. We have a new build (v1.0.6) of our Android beta today.
>
> Circles v1.0.6 is now available from our [beta F-Droid repo](https://circu.li/fdroid/repo), so F-Droid users' clients should start picking it up over the next day or so. Updates in this release include:
>
> * A new expandable view for long text posts
> * Animated .webp support
> * Password strength estimation (using zxcvbn)
> * Fixed scroll on emoji dialog
> * Fixed crash on take photo/video
>
> Adventurous users can also install the latest build by grabbing the [APK](https://circu.li/fdroid/repo/app-fdroid-release-1_0_6.apk) directly from our repo.
>
> Interested users can also join us in [#circles:matrix.org](https://matrix.to/#/#circles:matrix.org) to get the latest news about the app.
## Dept of Widgets 🧩
[Oliver Sand](https://matrix.to/#/@oliver.sand:matrix.org) says
> Hello from Nordeck 👋 This week we finally released the first of our widgets as open source: It's the [matrix-poll-widget](https://github.com/nordeck/matrix-poll).
>
> The widget allows to conduct polls in Matrix rooms. But unlike [MSC3381](https://github.com/matrix-org/matrix-spec-proposals/blob/travis/msc/polls/proposals/3381-polls.md) it is designed for more complex scenarios, like polls with multiple parties in a council. You have full control over your data, as it's stored in your Matrix room. It is currently in use in the German public sector.
> The widget is built using TypeScript, React, and the `matrix-widget-api`. We also extracted a thin layer of code that is shared between our widgets into our [`matrix-widget-toolkit`](https://github.com/nordeck/matrix-widget-toolkit), another project we made open source recently. Our remaining widgets will follow in the next couple of weeks. We keep you updated here.
>
> If you have any questions, reach out to us at our [#nordeck:matrix.org](https://matrix.to/#/#nordeck:matrix.org).
## Dept of VoIP 🤙
### Element Call ([website](https://call.element.io))
Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app
[Florian Heese](https://matrix.to/#/@fheese:element.io) says
> Hello from the VoIP team,
>
> We've just released Element Call v0.3.2 which has a whole collection of [new things](https://github.com/vector-im/element-call/releases/tag/v0.3.1). Screen sharing will now work in embedded mode on desktop and it will now show tiles for people it's trying to connect to, so it should make it easier to see what's going wrong in a call. Please continue rageshaking if you see failures: ideally immediately after the failure, from both sides, and please describe what went wrong in as much detail as you can!
## Dept of SDKs and Frameworks 🧰
### Trixnity ([website](https://gitlab.com/trixnity/trixnity))
Multiplatform Kotlin SDK for Matrix
[Benedict](https://matrix.to/#/@benedict:imbitbu.de) reports
> Trixnity release 3.0.0-beta1
>
> We released Trixnity 3.0.0-beta1. This is a major version with many (breaking) changes. We will wait for the 3.0.0 release until we have implemented the Matrix 1.4 spec changes (`m.replace` will be really hacky due to a - in my opinion - [spec bug](https://spec.matrix.org/v1.4/client-server-api/#server-side-replacement-of-content)).
>
> ## Support realm database
>
> We now support realm as a database backend. This allows you to use Trixnity on iOS with a persistent database.
>
> ## Added exchangeable MediaStore
>
> Media is not saved into the database anymore, but in an exchangeable `MediaStore`. It is also streamed, so you can download and upload large files. There is `trixnity-client-media-okio` for a multiplatform file based implementation.
>
> ## Improved StateFlowCache
>
> The `StateFlowCache`, which basically is a reactive cache on top of an arbitrary database does not need a `CoroutineScope` parameter for any read or write operation anymore. It was needed to react to the lifecycle of the consumer, so that not used data could be removed from the cache. This was really error prone, because if the consumer passed a wrong `CoroutineScope` with a too long lifecycle, the cache could grow unlimited. We figured out to solve this with Kotlin `Flow`s, so everything is lazy and the lifecycle can be determined from the Flow consumer!
>
> We also fixed a long standing bug, which could cause to return a `Flow`, which does not emit updated values.
>
> ## Power level calculation support
>
> We implemented some functions to calculate power levels (e. g. `canBanUser(...)`).
>
> ## Naming change of classes and interfaces
>
> We changed the naming of all interfaces from `IXyz` to `Xyz` and the implementation of it from `Xyz` to `XyzImpl`
>
> ## Server-API improvements
>
> We made some improvements to the various server APIs to allow implementing proxies filtering requests and responses.
### 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
[ben](https://matrix.to/#/@gnunicorn:matrix.org) announces
> - [matrix-sdk-crypto-nodejs 0.1.0-beta.3](https://github.com/matrix-org/matrix-rust-sdk/releases/tag/matrix-sdk-crypto-nodejs-v0.1.0-beta.3) has been [released to npmjs.com ](https://www.npmjs.com/package/@matrix-org/matrix-sdk-crypto-nodejs) - main change is a fix on the downloader to pick the correct asset from the release and some other smaller fixes
> - the new Timeline API now [features the ability to show not-decryptable items](https://github.com/matrix-org/matrix-rust-sdk/pull/1140)
> - restore tokens passed via FFI [are now a proper type not just a string anymore](https://github.com/matrix-org/matrix-rust-sdk/pull/1176)
> - we've [cleaned up the error types in base](https://github.com/matrix-org/matrix-rust-sdk/pull/1173)
> - a [fix on sliding sync](https://github.com/matrix-org/matrix-rust-sdk/pull/1183) allows us to create sliding sync when offline (which locked before)
> - the [sdk now uses the server-supplied retry time when available](https://github.com/matrix-org/matrix-rust-sdk/pull/1179)
>
> 👉️ Wanna hack on matrix rust? Go check out our [`help wanted` tagged issues](https://github.com/matrix-org/matrix-rust-sdk/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and join our matrix channel at Matrix Rust SDK.
## Dept of Events and Talks 🗣️
[Salt](https://matrix.to/#/@salt:sal.td) reports
> [SeaGL](https://seagl.org) (the Seattle GNU/Linux Conference) will be holding our tenth annual (third virtual) conference online November 45, powered by Matrix and our custom bot, [Patch](https://github.com/SeaGL/patch). Join this free—as in freedom and tea—volunteer powered grassroots technical summit, no registration required. This year's theme is "Hang Ten”, in honor of our tenth year!
>
> Keynote speakers include:
>
> * Aeva Black
> * Ernie Smith
> * Lorena Mesa
> * Sumana Harihareswara
>
> We have a packed lineup of [free / libre / open source talks](https://osem.seagl.org/conferences/seagl2022/schedule/events). There are also a number of fun social activities providing opportunities to mingle with your fellow participants. Additional information on the conference and [how to attend](https://seagl.org/attend) is available on our [blog](https://seagl.org/news/2022/11/03/SeaGL-2022-hang-ten).
>
> As previously mentioned, we've been refining the [virtual conference experience](https://seagl.org/news/2022/10/07/Building-a-virtual-SeaGL) for three years and would gladly welcome [new wings and beaks](https://seagl.org/get_involved.html) to our all-volunteer staff!
## 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|matrix.org|402.5|
|2|nognu.de|488|
|3|maescool.be|587.5|
|4|seymour.family|751.5|
|5|zemos.net|1062|
|6|mailstation.de|2588|
|7|kittenface.studio|3202|
|8|roeckx.be|3374.5|
|9|cezeri.tech|3884|
|10|diasp.in|4767|
### [#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.matrix.org|138.5|
|2|matrix.sum7.eu|143.5|
|3|willian.wang|410.5|
|4|forlorn.day|714|
|5|matrix.milkte.ch|2024|
|6|frai.se|10978.5|
## 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!