This Week in Matrix

321 posts tagged with "This Week in Matrix" (See all Category)

Atom Feed

This Week in Matrix 2023-01-06

06.01.2023 21:00 — This Week in Matrix Thib

Matrix Live

Dept of Status of Matrix 🌡️

Matrix Community Year In Review 2022

Nico says

Since the last few official Matrix holiday updates didn't mention as many of the cool community projects as I would have liked, I tried to work with the community to publish a community side review of 2022 as well as possibly some small teasers of what 2023 will bring. There are a lot of very varied updates, since everyone seems to have tackled the challenge differently, but I hope you you enjoy the result as much as I did: https://blog.neko.dev/posts/matrix-year-in-review-2022.html

A few days later we also published the same blog post on matrix.org, with a few typo fixes and cleanups: https://matrix.org/blog/2023/01/03/matrix-community-year-in-review-2022

This was a bit shot notice, so I would like to extend my gratitude to everyone who contributed and took some time in probably one of the busiest periods in a year! For the same reason, I hope you can excuse if one of your favourite projects is missing. If you have anything that is sorely missing, feel free to reach out in #year-in-2022:neko.dev and maybe I can amend the blog post.

Have a great 2023 everyone!

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

Accepted MSCs:

Merged MSCs:

Spec Updates

After a lull from the holiday period, work has continued on different parts of the spec. MSC3706 has merged, which furthers the spec side of the work to make joining rooms faster in Matrix (see MSC3902 for the overview).

MSC3938 has also been merged to the spec. The proposal removes a deprecated keyId field and cleans up the endpoint by disallowing trailing slashes.

Random MSC of the Week

The random MSC of the week is... MSC3885: Sliding Sync Extension: To-Device messages!

Sliding Sync (MSC3575) is the next generation of sync - how Matrix clients receive new data from their homeserver. The spec side of the feature has been designed to be modular, with different extensions of spec provided different functionality. MSC3885 is one of those extensions, and defines how To-Device Messages (how different user devices talk directly to each other) would be requested by a Matrix client from the homeserver.

This proposal doesn't appear to have had too much review from the community yet - so feel free to check it out if faster Matrix clients appeal to you!

Continue reading…

This Week in Matrix 2022-12-23

23.12.2022 19:38 — This Week in Matrix Hubert Chathi

Matrix Live

Matrix Live will be back in the new year.

Dept of Spec 📜

uhoreg says

Spec

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

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

  • There were no new MSCs this week.

Closed MSCs:

Spec Core Team

Some of the spec core team have been on holidays this week, but we still finished FCP on one MSC, and merged another to the spec. As mentioned in last week's update, progress will be slower over the holiday season, but we'll be back in the new year, working to make Matrix better.

Random MSC of the Week

The random MSC of the week is... MSC2783: Homeserver Migration Data Format! If you're running a homeserver using one implementation, it's currently impossible to switch to a different implementation without losing data. This MSC proposes a file format for exporting data from one implementation and importing it into another.

Dept of Servers 🏢

Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Timo on Conduit ⚡️ says

Conduit

If all you wanted for Christmas is a new Conduit release, then I have great news for you:

Conduit v0.5.0 just released and it contains almost everything you wanted:

  • Feature: Restricted room joining !398
  • Feature: Call sd-notify after init and before exit !426
  • Improvement: V9 as default room version !400
  • Improvement: More efficient E2EE key claiming !389
  • Fix: All E2EE problems !393
  • Fix: Infinite room loading !388
  • Fix: Wrong notification rules !405
  • Fix: Wrong notification counts !408
  • Fix: Can't rejoin rooms !399
  • Fix: Fluffychat login works again !391
  • Fix: Starting DMs with Synapse users !390
  • Fix: is_guest for appservices !401
  • Fix: Invites from Dendrite !416
  • Fix: Send unrecognized error for unknown endpoints !397
  • Refactor: Service layer !365

Conduit is getting a lot more usable with this release, the main missing feature is backfill over federation (loading room messages from before your server joined a room). To update conduit, simply stop it, replace the binary and start it again. Also feel free to join #conduit:fachschaften.org and ask questions there

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico announces

Nheko

This week we sped up search in rooms with a lot of history. We now also don't block the UI during the search of local messages anymore.

Neochat (website)

A client for matrix, the decentralized communication protocol

Tobias Fella reports

Ho ho ho Matrix fans!

It's that time of year again, and we have a special gift for all of you just in time for the holidays: Neochat now supports end-to-end encryption! This is made possible thanks to the release of libQuotient 0.7.

While this feature is still somewhat experimental, it's a big step forward in ensuring the privacy and security of your conversations. Just keep in mind that if your only logged-in client is Neochat and something goes wrong, you might lose your messages.

If you're feeling adventurous and want to try out the new end-to-end encryption feature, you can already get it from Flathub and some distros. We're also working on supporting it in our Windows, Android, and macOS builds, so stay tuned for updates.

And in the spirit of the season, here's a Christmas joke: Why was the JavaScript developer's house cold? Because he left his closure open!

Merry Christmas and happy chatting, everyone!

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle reports

Element Web/Desktop

Happy Holidays from us at Element! This is our last update for 2022, and it’s a good ‘un.

  • We’re still working on Notifications, reviewing how they work across platforms for new users, and planning the improvements we’re looking to make in the new year. While we look at this user experience holistically, we’re making some subtle changes to the product including removing the bold dot and ordering rooms by activity by default for new users.
  • We’re also continuing to improve the password reset flow so that user’s who can’t remember their passwords have a smoother experience regaining access to their account.
  • And, thanks to a contribution we now have the ability to multi-select members when changing users’ permissions in a room! Head to Room Settings > Roles & Permissions.

In labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • Rich text editor improvements are still coming so be sure to check them out, including updates to emoji handling and inline code formatting.
  • Threads! Threads notifications and performance improvements are landing thick and fast. We’re nearly ready to enable the feature by default and we’ll be excited to do that in the new year.
    • Be sure to check that you’re still in the threads beta for this release as in fixing some bugs your setting may have been changed.

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Danielle says

Element iOS

For our last iOS update of 2022…

  • Element 1.9.14 has been released to the App Store. It enables threads by default for all users and adds a notifications badge to your spaces button.

    • As always, there’s some bug squashing in this release too.
  • ElementX has also seen a lot of improvements this week:

    • We now have support for timeline day separators and read markers
    • There’s an improved and simpler UI for playing videos
    • Connectivity indicators have been added, to show up when the network is offline
    • Along with many others…

In labs:

  • Voice broadcast and the rich text editor are seeing some improvements, be sure to test them out and keep us posted on your feedback.

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

Danielle announces

Element Android

Happy Holidays! Here’s what’s happened this week:

  • There’s been some bugs and crashes keeping us hard at work this week. Along with some exciting improvements to both Element and Element X. On Element:
    • There are updates to voice broadcast features and users can sign out of other sessions.
    • The colours for pills have been updated and work better in both light and dark mode.
    • Threads improvements have been made and we’re looking forward to enabling this feature by default for all users in the new year.
  • On ElementX we’re moving ahead fast and this week focused our efforts on the Settings pages and the bug reporting functionality (including rageshake detection and screenshot management)

Dept of SDKs and Frameworks 🧰

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune reports

libQuotient 0.7

It took us (yes, us - there's more than one person actively working on the project!) a very long time but libQuotient 0.7.0 is out, with a huge wall of release notes. Big, big, BIG thanks to Carl Schwan and Tobias Fella for their contributions and early adoption of this release in NeoChat (NeoChat maintained compatibility with libQuotient's development branch, along with the stable branch, for quite some time by now). A short summary of most significant things:

  • Requirements: C++20, Qt 5.15 or 6.x
  • E2EE code is now in beta quality, features:
    • sending/receiving new messages
    • getting historical messages where Megolm keys are already loaded
    • encrypting/decrypting attachments
    • device verification (to-device flow only, no in-room verification yet)
  • Individual APIs for m.fully_read and m.read markers
  • Client-Server API backend uses Matrix 1.5 API definitions
  • A complete rewrite of the event types framework to make it truly extensible; you can now add both base classes and specific event types on the client side without touching the library code (the library still provides standard ones)
  • Account registry for multi-account usage; account access tokens and pickling keys are stored with Qt Keychain
  • Sticker events support
  • Pinned messages support
  • First-class support in Network Access Manager for mxc: URLs, to enable showing inline images in messages
  • A lot of code tightening, bug fixing, performance improvements

Merry Christmas and Happy New Year to those who observe those - and hopefully I'll get to my senses and release 0.8 sooner than in another year 🙂

Dept of Bots 🤖

MTRNord reports

Matrix Spam ML

As part of the efforts for working on detecting spam using ML I started to write a moderation bot.

This bot is written from scratch with some design decisions that hopefully will improve usability for both newcomers and seasoned admins.

These decisions are:

  • If an action can be done using a reaction, then it will be done using a reaction.
  • There is a private admin room and a public room for warnings, where admins issue actions. This is meant to serve as a human-readable ban list if admins want to provide this to their users.
  • The bot will at a later point be able to issue reports to server admins via email and matrix easily by allowing admins to just react after doing a ban. The bot will initially ask how to contact a server if it didn't issue a report to the server before. The bot will remember the setting supplied last time for a server and allows updating the settings if they change. These reports will contain a warning that it was issued from the bot and that replies are necessary for it to be properly relayed back to the admins for further questions. These replies will end up as threads in the admin room. Also, as part of the report, the event JSON for the report will be sent with the report to allow server admins to review the case themselves. (This is still WIP)

The warnings also contain a "false positive" action. This is meant to be used to feed back into the used model for further training and improving it.

All in all, I hope to simplify the process of moderation based on what I experienced as an admin. Feel free to chime in at #matrix-spam-ml:midnightthoughts.space to suggest ideas for the bot. At the time of writing, it is still very much a prototype/demo.

The code can be found at https://github.com/MTRNord/matrix-spam-ml/tree/main/bot

Documentation can be found at: https://mtrnord.github.io/matrix-spam-ml/bot

Dept of Ping

Dept of Ping will be back next week.

That's all I know

There will be no TWIM next week, but we'll be back in the new year. Be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-12-16

16.12.2022 19:51 — This Week in Matrix Hubert Chathi

Matrix Live

Dept of Status of Matrix 🌡️

Matthew announces

BwMessenger (the German Armed Forces' branded version of Element) is expanding to cover the whole of Germany, as BundesMessenger: https://element.io/blog/bundesmessenger-is-a-milestone-in-germanys-ground-breaking-vision. Super exciting to see Matrix spreading throughout the German public sector (as well as Sweden! https://element.io/blog/dsam-och-esam-forordar-matrix-for-saker-och-federerad-kommunikation-inom-sveriges-offentliga-sektor/)

Kim Brose adds

homepage: https://messenger.bwi.de/bundesmessenger, sourcecode: https://gitlab.opencode.de/bwi/bundesmessenger/

Dept of Spec 📜

TravisR announces

The Spec

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:

MSCs in Final Comment Period:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

Spec Updates

With the year wrapping up, the Spec Core Team has been looking at getting some of the outstanding MSCs landed and ready for spec writing, as well as writing more spec itself. There's also plenty of work behind the scenes on Extensible Events: a mission to redefine how events work within the Matrix ecosystem. Check out MSC1767 and friends for an overview of what this actually entails.

SCT Holiday

We're coming up to some holiday time for the SCT: the spec progress might naturally slow as we all close our laptops, but we'll be back in our full capacity in the new year, working out the next version of Matrix in time for FOSDEM (hopefully) :)

Dept of Servers 🏢

Telodendria (website)

An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional

Jordan Bancino reports

Telodendria

Telodendria v0.1.0 was released earlier this week. This is the very first tagged release, and it is a mostly symbolic release intended to signal that most of the elementary components necessary to construct a Matrix homeserver are now in place, and I'm ready to actually start implementing Matrix API endpoints. In fact, I've already started on the user-interactive authentication API and the registration endpoints, and am making good progress on them.

As always, I could use your help. If you like what's happening, then feel free to spread awareness about the project, come say hi in the Matrix rooms, or send a donation. Again, #telodendria-newsletter:bancino.net has the latest, and now that I'm actually versioning the project, you might be interested in #telodendria-releases:bancino.net, which is a low-traffic room that simply notifies of new releases.

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Shay says

Synapse

How is it Friday already (and the end of the year)?? While the holidays are almost upon us, the team behind Synapse has been hard at work and has released v1.74.0rc1 for your consideration. Some notable features and bugfixes include:

  • Improved user search for international display names
  • The addition of a new push.enabled config option to allow opting out of push notification calculation
  • Fixes for a long-standing bug where a device list update might not be sent to clients in certain circumstances
  • The addition of Single-Sign On setup instructions for Mastodon-based instances

and much, much more! You can take a look here: https://github.com/matrix-org/synapse/releases. A note about the end of the year: With the holiday season coming up we plan to release Synapse v1.74.0 as normal next Tuesday, December 20th, 2022 and then skip releases for the next two weeks, before resuming with v1.75.0rc1 on Tuesday, January 10th, 2023.

Dept of Bridges 🌉

Nico reports

Valheim Matrix Bridge

The bridge now avoids double bridging even with multiple users running the bridge client side. It also prevents historical messages from showing up in Valheim, so that starting the game is less confusing. Last but not least, red_sky (nheko.im) ported the user color algorithm from Nheko, so the colors should now look more familiar instead of being a generic blue.

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico reports

Nheko

Nheko now prompts you to join the upgraded room, deletes image files you haven't accessed in a month (which freed over 1GB of data on my system) and tries to focus the chat, when you start typing.

LorenDB also added support for confetti messages, although those seem to work only on systems, that are not mine! You can of course turn them off in the settings. :D

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

andybalaam announces

Element Web/Desktop

We have been working really hard on the 20th December release (with threads on by default! 🎉 🧵 🎉) this week:

  • We did lots of work on threads, and we're ready to turn it on by default!
  • All our code is now automatically formatted with prettier.
  • We made small fixes and improvements to voice broadcasts and device manager.
  • We are making progress on automating the Element Desktop release process.
  • We are investigating performance improvements in matrix-js-sdk.

And if you love to live on the edge, in labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • The rich text editor can now create inline code.
  • Soon, we will have a Favourite Messages screen!

We will skip one release cycle while team members are on holiday, so after 20th December, the next release will be 17th January 2023.

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan says

Element iOS

  • What’s this then? The last release of Element in 2022, that’s what! And to round out the year, we’re enabling Threads for everyone in the release planned for the 20th of December!
    • Threads: Enabled by default for everyone. Please let us know if you discover any issues as we get ready to make them permanently enabled.
    • Notifications: The Spaces button now shows a badge to indicate the number of unread conversations in other spaces so you won’t miss those important messages or invites anymore.
  • Things are quickly moving along on the ElementX side too
    • the new split iPad and macOS layout has been merged
    • the timeline has been refactored and scrolling is now smoother than ever
    • we have brought our code coverage to 45% and actively working on making it even better
    • and we’re also working on improved room list loading, a new room details screen and improving the developer experience and reliability

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

Element Android

  • Element Android 1.5.12 is currently being released on the stores. It includes threads support, enabled by default.
  • We are currently working on finalising the session management screens, and we are fixing issues in polls. The composer is also getting some improvements, like support for links, code blocks, quotes, etc.
  • On ElementX, we are working to setup the project: dependency injection, continuous integration, and other similar tasks.

Dept of Non Chat Clients 🎛️

imbev says

matrix-social

matrix-social is a new Matrix "Social Media" client made using the Matrix Rust SDK and Yew. With a design inspired by Reddit, matrix-social's purpose is to be a social media client that integrates well with the rest of the Matrix ecosystem. At the moment, it is very early in development, and lacks crucial features such as sending messages, comments, reactions, and categories.

The source code is licensed AGPL and hosted at https://codeberg.org/imbev/matrix-social

If you have experience with Rust, WASM, or are otherwise interested, join us in https://matrix.to/#/#matrix-social:matrix.org

Matrix Wrench (website)

Matrix Wrench is a web client to tweak Matrix rooms.

jaller94 says

Matrix Wrench v0.9.0 🔧

Source: https://gitlab.com/jaller94/matrix-wrench/

  • Added: Password login
  • Added: Create and mutate users using the Synapse API.
  • And, together with the team of the #matrix-berlin:matrix.org, I've added (hidden URLs so far) pages for people to analyse their Matrix usage (How many of my DM contacts are in a given room? How many homeservers are joined to a given room? Which of my DM contacts do I share the most rooms with?). For a preview or to bring in your ideas, please join us in #matrix-dashboard:matrix.org.

Dept of Widgets 🧩

Oliver Sand announces

Going towards Christmas we from Nordeck can announce that we made another of our widgets Open Source: matrix-barcamp.

The matrix-barcamp widget allows to perform agile Barcamps in Matrix spaces. You can create a space, add the widget to a Lobby room and use it to collaboratively create your Barcamp agenda. Once you set up your sessions, the widget can take care of creating the individual discussion rooms inside the space. The widget was created in collaboration with the ZIT SH from the German public sector. Like the matrix-poll widget, this widget is built using TypeScript, React, our matrix-widget-toolkit, and the matrix-widget-api. Our remaining widgets will follow soon, we keep you updated here.

If you have any questions, reach out to us at #nordeck:matrix.org.

Dept of SDKs and Frameworks 🧰

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

ben announces

Matrix Rust SDK

With the last fixes ported over from the demo branch and the growing-full-sync-window support added, we turned our head back to debugging a few remaining deserialization and decryption bugs in Sliding Sync when we were hit by a new tokio-thread-panic on Element-X at the end of the week. A quick debugging revealed that it was caused by out of bound indizes supplied by the server. We are still looking into making our code more defensive for these circumstances, too.

Async Uniffi is progressing nicely meanwhile, with now both Swift and Kotlin being able to run and execute a Rust created future. We now have fallible function support implemented on the proc-frontend and further work is coming up to support &str and &[u8].

This week also saw the first experimentation in replacing the default Sled database backend. A first PoC attempt was made with sanakirja (pijul is based on), but after learning that its API is unsound and can lead to UB, the team agreed that this requires quit a bit more work (especially in terms of safety guards) than we have time for in the short term. Thus, offering a sqlite-backend for mobile in the short term at least for the crypto store has been agreed upon.

👉️ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Events and Talks 🗣️

ChristianP reports

Matrix Community Summit Berlin 2022 Podcast (German)

Meet ben, Rust developer and Co-Founder at EFFEKTIO. He and I spoke about Social Organising and how his app tries to enable people to participate more directly in their community, political party or neighbourhood.

Same website and RSS feed as last week.

Mastodon toot: https://mastodontech.de/@jaller94/109523913828753926

I hope you enjoy this week's interview and learn what other people in the community are up to. Stay tuned for a second English episode in two weeks!

Thib announces

Very good news for FOSDEM: we managed to make some room for all of the proposals we got! We thank everyone participating in our CfP for submitting such high quality proposals. Our in-person devroom is going to be on Sunday 5 morning, between 09:00 and 13:00 CET. It was difficult to make a choice, but we had to put some talks in the virtual devroom only in the afternoon. We will follow-up with speakers individually.

We will also have a stand at FOSDEM, and will be happy to see you there, talk about what we're doing, what's next and just generally have a nice chat together.

Nik | Klampfradler 🎸🚴🏻 announces

Professional Matrix courses at Linuxhotel

From June 19th to 23rd 2023, the, in Germany, well-known Open Source training center Linuxhotel will be offering two courses on Matrix (in German):

  1. Matrix: Server operation, usage and federation
  2. Matrix: Development and IoT

If you want to learn hands-on how to establish Matrix and Element for your company or team, how to operate it, or how to make small IoT components operatable via Matrix – or know someone who wants to know – and speak German, don't forget to get seats while they're available 🤓!

Dept of Interesting Projects 🛰️

Florian Heese reports

https://forgejo.org/2022-12-15-hello-forgejo/

Forgejo’s code base is of course hosted on Codeberg, and by using Woodpecker CI instead of Drone and Matrix instead of Discord, we exclusively rely on Free Software tools.

Dept of Guides 🧭

Bram says

Introducing the Matrix Events Directory

Are you a client developer working with custom event types in the Matrix ecosystem? It can be tough to keep track of all the different events that are being used, and even harder to interoperate with other developers' clients and bots. That's why I've built the Matrix Events Directory, a website where you can look up and register custom event types.

Here are just a few ways the Matrix Events Directory can help you:

  1. If you come across an event type that you're not familiar with, you can use the directory to find out more about it and decide if you want to do anything with it.
  2. If you're working on implementing a new feature in your client, you can use the directory to see if anyone else has already done it and potentially interoperate with their work.

I hope that the Matrix Events Directory will improve interoperability and make it easier for the community to define and use their own custom events, while still being able to build on top of the Matrix spec.

Please check out the repository and the website at https://matrix.directory. Contributions are welcome!

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.

RankHostnameMedian MS
1keks.club541.5
2catvibers.me662
3nognu.de714
4alemann.dev741
5matrix.nicfab.it788.5
6willian.wang851
7kittenface.studio894
8anontier.nl1175.5
9grmml.de1444
10mailstation.de2786.5

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1matrix.sum7.eu192
2frai.se272
3dendrite.neilalexander.dev307
4cringe.chat320
5willian.wang567
6forlorn.day661
7grin.hu4507.5

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-12-09

09.12.2022 18:51 — This Week in Matrix Thib

Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were merged this week.

Spec Updates

Both new MSCs this week are from @uhoreg, and look pretty great from a spec polish perspective (I've been a fan with doing away of public device names for ages). Check them out!

Otherwise, MSC3898 (Native Matrix VoIP signalling) received some review and attention this week.

Random MSC of the Week

The random MSC of the week is... MSC3391: API to delete account data!

This MSC would allow users to actually delete account data they've set 🎉 Currently you cannot delete top-level keys from your account data, only remove their content.

Deleted account data items will come down /sync as having their content updated to {}, which clients that implement MSC3391 will take to mean that the account data item has been deleted. Clients that don't implement MSC3391 will store the content as {}, which commonly means an unused account data item anyhow.

Yours truly is currently writing an implementation for this in Synapse, and so far implementing the spec as written seems sound!

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Shay announces

It's Friday which means it's time to talk about the newest Synapse release, v1.73.0! A few details:

Please note that this version removes legacy Prometheus metric names entirely. This also means that the enable_legacy_metrics configuration option has been removed; it will no longer be possible to re-enable the legacy metric names.

If you use metrics and have not yet updated your Grafana dashboard(s), Prometheus console(s) or alerting rule(s), please consider doing so when upgrading to this version.

In addition, a few notable features and bugfixes are:

  • Move MSC3030 /timestamp_to_event endpoints to stable v1 location (/_matrix/client/v1/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>, /_matrix/federation/v1/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>).
  • Reduce database load of Client-Server endpoints which return bundled aggregations.
  • Fix a long-standing bug where paginating from the start of a room did not work. Contributed by @gnunicorn.
  • Fix a bug introduced in Synapse 0.9 where Synapse would fail to fetch server keys whose IDs contain a forward slash

plus much more! You can read more about this release here: https://matrix.org/blog/posts.

Dept of Bridges 🌉

Valheim Matrix Bridge

Nico announces

So... some people are distracting me by asking me to play Valheim all the time since Mistlands was in public beta (it is released now). To make that easier to synchronize, especially if not everyone can be online all the time, I wrote a small bridge: https://nheko.im/nheko-reborn/valheimmatrix

Your own messages are bridged from Valheim to Matrix, while other peoples messages are bridged (privately) from Matrix to Valheim. This prevents loops and does nice puppeting, but it means everyone needs to run their own bridge. It also means you can see other peoples messages on Matrix, as long as they have the mod enabled, even if you are not signed in yourself.

It is a very hacky experiment, but it works, so... why not show it off? Definitely check out the game, it is great!

Gitter

madlittlemods (Eric Eastwood) announces

It's been a tiny while since I've given an update on the Gitter bridge because I've been focusing on other feature parity areas like the Matrix Public Archive and speeding up /messages in Synapse but there have been a number of changes over this time 🔢

The first big exciting thing is that Gitter now bridges threaded conversations as native threads on Matrix (no more impedance mismatch)!

We've also been plugging along on less visible changes during this time like bug-fixes for bridging DM's and fleshing out more of the bridge scenarios like leaving or deleting a room and bans to ensure things stay in sync. We also started bridging private conversations to Matrix behind the scenes back in February so we have a break-away point-in-time to import back from when we do the massive history import to backfill everything. Please note, that you still can't access these private rooms on Matrix but this will come later either in the form of inviting MXID's from the Gitter side or when we give access to the gitter.im homeserver itself to self-manage from that side.

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico says

Apart from playing Valheim, I at least also did some productive things! (Apart from everyone else who has been helping squashing bugs and jugendhackt of course.)

Nheko now supports MSC3664. Support for this is automatically enabled if it is enabled server side. This allows you to get notifications for events that relate to another event. For example you might want to get notifications for a reply to one of your messages. So you need to check if the replied to event was sent by you. Similar things can be done for relations like "notify me for reactions to my posts in rooms with less than 20 users".

By default only notifications for replies are enabled. You might not notice a difference, since by default you get notified for them because the fallback includes your username, but not all bridges implement that correctly and for me the reply fallback has been one of the biggest sources of bugs, so I'd like to get rid of it long term. (Also some users disable username mentions, because their name is too generic to be useful, in which case this can help as well since it actually checks the sender.)

Anyway, have fun playing around with this!

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

kittykat announces

Element Web/Desktop

Lots of exciting news this week

  • matrix-js-sdk now has full strict TypeScript checking turned on!
  • We fixed lots of bugs, including replies to emotes looking weird
  • There are also some updates in the works, including bubble layout improvements and the user profile in the right-panel.
  • We made the unverified sessions dialog come up less often, and added a setting to prevent bold notifications.

And in case that wasn’t enough… now available in labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • We merged several fixes for voice broadcasts
  • Threads is nearing release, thank you all who have been trying it out! You can still join the Beta testing in Settings -> Labs to give it a spin!

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan reports

  • Threads has made great progress and is nearly ready for release into the wild! There’s a few bugs remaining that we want to smash before we turn the feature on by default for all users.
  • Work on Element X is making great progress, we’re even looking at how to improve the iPad and desktop view for users on larger screens.

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

  • Element Android 1.5.11 has been released, it includes fixes for some crashes that had been reported via rageshake.
  • Threads has made great progress and is nearly ready for release into the wild! There’s a few bugs remaining that we want to smash before we turn the feature on by default for all users.
  • Please note the release cycle will be slightly different over the holidays!
  • Work has begun on Android X and fast progress is being made.
    • Currently we’re looking at performance on the room list and the timeline view, implementing a memory cache to handle things more efficiently.

Element (website)

Everything related to Element but not strictly bound to a client

kittykat says

We are skipping one release cycle over the festive holidays: all apps will receive a release on 20th December (with threads coming out of Beta!) and the following RC will come out on 10th January leading up to a release on 17th January!

Dept of Non Chat Clients 🎛️

Effektio (website)

The one mobile-first, decentralized community organizing app

ben reports

Earlier this week, we have release the EFFEKTIO white paper, outlining what we are working on, why we think this matters, where we intend to head with it and what perspective we come from. We’ve published this 30-pager as a Google Doc with comments activated (if you have any feedback on it) as well as with a 2-page executive summary for the busy. You can also join us in #foyer:effektio.org if you’d like to discuss it with us.

For a couple of weeks now, we have a fresh nightly build available whenever changes have been merged within the 24 hours prior. Unfortunately the Android package, with mobile being the main target the UI has been developed for, can’t be installed as is (you need to clone and build it yourself for now), the Desktop App for Linux, Windows and Mac do give you an impression what we are after. Mind you that a) other than the chat all sections are still mainly UI mocked and b) it is still in heavy development: things break sometimes.

On the app itself, we have spent a lot of time on getting the chat right. The app’s core was upgraded to matrix-sdk 0.6+ to get the latest timeline API in, which required quite some refactoring. But allowed us to implement reactions, edits and replies. Encrypted Messages are still somewhat unreliable though. Prior to the nightly builds we’ve also taken some time to clean up the UI to give it a more polished look and make clear which things are simply not enabled yet. On the non-chat side of things, we’ve mostly worked on UI things (check out the ToDo-Sections and Pins), while we were waiting for the synapse fix on reading the timeline from the beginning, which is now released in 1.73. Happy to get back to implementing the state machines soon.

You want updates more frequently and close to when they actually happen? Join our #news:effektio.org or hang out with the devs in our #tech:effektio.org matrix room.

Dept of SDKs and Frameworks 🧰

libolm

uhoreg reports

libolm 3.2.14 has been released. This is maintenance release. The main change was improvements in the TypeScript types. There were also some improvements in the Python packaging, which should mean that the pre-built Python package for Linux is compatible with more distributions. Unfortunately, there are some issues with the i686 and aarch64 Linux builds, meaning that those packages are not currently available for the current version. However, if the previous version works for you, there is no reason to upgrade. We are investigating the issue, and may provide new packages later.

elm-matrix-webhooks

Bram says

If you write code in Elm, you can now send messages in a Matrix room using a webhook.

I built noordstar/elm-matrix-webhooks, a small wrapper around the Webhook API of nim65s/matrix-webhook.

I am building an Matrix SDK in Elm but I've never created or published a library before. This is a practice library to see what I can expect. You can install the library using

elm install noordstar/elm-matrix-webhooks

And you can send a webhook message using a function like this:

import Matrix.Webhooks as Hook

send : String -> Cmd msg
send = Hook.sendMessage toMsg webhook

-- send "Hi TWIM!"
-- send "I support **Markdown!**"
-- send "That's cool, isn't it?"

There is currently no room for this library. Just contact me @bram:noordstar.me for the library or visit #matrix-webhook:tetaneutral.net for questions about the Webhook API.

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

ben reports

After porting the remaining fixes over from the demo branch for element-x as PRs to main, we've spent a significant time debugging the two biggest know pain points: double echos for sending messages, for which we've merged a fix, and unable to decrypt, which appears to be caused by a broken to-device message exchange (with an incomplete sender_key), which we are still investigating. Furthermore we've exposed the ability to send reactions over FFI, LoginBuilder and SsoLoginBuilder can now be used with .await and merged some smaller sled crypto store improvements.

The latter came up when investigating, whether we could use sanakirja, the pijul database backend, as a multi-process crypto store backend for mobile. This investigation is still on-going.

Further than an investigation is the uniffi async support. After completing the Python backend, Swift is also passing all tests now. Additional Docs should clarify most questions. We are as excited about this as the Mozillians seem to be. Next up: Kotlin backend.

👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Bots 🤖

ChatGPT for Matrix

Jake C announces

I built a ChatGPT bot for Matrix! It does exactly what you think it does: you send a message, and ChatGPT will respond. It's very cool being able to talk to ChatGPT while on a mobile device.

It sends read receipts when messages are received by the bot, and the bot sends a typing indicator as ChatGPT is "thinking" 😀

It currently only works in unencrypted chats. I haven't managed to get encryption using matrix-bot-sdk working reliably yet. If it's meant to be working, tips or PRs are very welcome! I've really enjoyed tinkering withmatrix-bot-sdk on a few projects so far.

Keep in mind any text you send it will go to the closed source servers of OpenAI, and it is unlikely to stay free forever.

PRs very welcome!

https://github.com/jakecoppinger/matrix-chatgpt-bot

Dept of Events and Talks 🗣️

Thib reports

The Matrix.org Foundation has a stand at FOSDEM! Come in Brussels on February 4 and 5 to meet us in person, see the fun stuff we're doing, show us the nice things you are doing and grab cool merch.

We have also received proposals for a little more than a full day of devroom! We only have half a day of in-person devroom. We will (try to?) broadcast the in-person devroom in the Matrix room of course, and then the conference bot will schedule the talks we couldn't fit in the in-person slots.

Yan says

Matrix Community Summit Berlin 2022 Podcast (German) Another week, another episode, another community member interviewed. Meet Robert, who spoke with Christian, about creating a CMS system on top of matrix.

episode link: https://spotifyanchor-web.app.link/e/p8aiO8ABCvb rss feed: https://anchor.fm/s/cdb34188/podcast/rss I hope you enjoy this week's interview and learn what other people in the community are up to.

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.

RankHostnameMedian MS
1nognu.de594
2keks.club596.5
3cezeri.tech840
4trygve.me912
5kittenface.studio916
6babel1.eu1026.5
7willian.wang1084
8btln.de1878
9mailstation.de2662
10poldrack.dev2762

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1kumma.juttu.asia284
2dendrite.s3cr3t.me343
3willian.wang481.5
4frai.se646
5matrix.shutdown.network986
6rustybever.be3051

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-12-02

02.12.2022 19:30 — This Week in Matrix Thib
Last update: 02.12.2022 18:43

Matrix Live

This episode of Open Tech Will Save Us was a special on Moderation. Our guest was Jim from the Matrix.org Foundation's Trust & Safety Team.

Can moderation be automated? Can it be apolitical? How does it scale? Are decentralised systems inherently more insecure than centrlised ones? Let's find out!

Dept of Status of Matrix 🌡️

Thib says

You can now officially join the Matrix Foundation as an organisational or individual member in order to sustainably support core Matrix development, help steer the direction of the protocol and how best to fund it. In order to run the Governing Board and the overall work of the Foundation, we are also hiring an Executive Director.

Read the full blog post here

Dept of Spec 📜

Andrew Morgan (anoa) says

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Spec Updates

A lot of this week was spent on implementation by the SCT, hence little movement in the bullet points above. However, outside of label changes, we've seen lots of progress on Extensible Events work from Travis as we continue to lay the groundwork for the IETF MIMI initiative.

We also continue to receive lots of fixes to the spec text itself via PRs to https://github.com/matrix-org/matrix-spec. Shout outs to zecakeh, dylhack, and uhoreg for their contributions!

Random MSC of the Week

The random MSC of the week is... MSC3890: Remotely silence local notifications!

This MSC aims to provide a solution to remotely toggling do-not-disturb across your various Matrix clients without needing to set it on each device manually. It does so by using account data which is synced to each client. Upon a client seeing data intended for them, they will silence notifications locally until told to do so otherwise (either remotely or by the user interacting with the client directly).

Quite a neat idea, and adds more powerful functionality to the "device manager" of a client. Also handy if your other clients are things like embedded systems!

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Shay announces

As we barrel towards the end of the year, the Synapse team is hard at work making Synapse faster, more stable and filled with features! This week we released v1.73.0rc2. Notable work includes a significant speed-up to the /messages path. In addition you can find:

  • Improved DB performance by reducing amount of data that gets read in device_lists_changes_in_room.
  • Support for handling avatar in SSO login. Contributed by @ashfame
  • Unstable support for an Extensible Events room version (org.matrix.msc1767.10) via MSC1767, MSC3931, MSC3932, and MSC3933.
  • A bugfix for a long-standing bug where the List media admin API would fail when processing an image with broken thumbnail information

and a whole host of other bugfixes, features and improvements. Head over to https://github.com/matrix-org/synapse/releases to check it out.

Dept of Bridges 🌉

Slack Bridge (website)

A Matrix <-> Slack bridge

Andrew F reports

It's been a while since the last TWIM update, but the Slack bridge has been steadily improving! See https://github.com/matrix-org/matrix-appservice-slack/releases/ for a slew of updates.

Highlights include:

  • DMs are now consistently assigned with the name & avatar of the Slack user you're chatting with.
  • Display names of Slack users should be kept up-to-date more reliably.
  • Support is added for bridging Slack threads with MSC3440 m.thread relations.
  • The usability of bridge bot admin commands (like whoami and link) has been improved.
  • Some cases of inbound Slack messages being dropped have been fixed.

matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot reports

Hookshot 2.5.0 is now ready for your eyes and your processors!

This week we bring you the very last (all fingers being crossed) hookshot release not to support e2ee encryption. Our resident expert is busy working away on supporting it and is a couple of bugfixes away from providing it to you all (https://github.com/matrix-org/matrix-hookshot/pull/299#issuecomment-1327124799).

In the meantime, this release was so good we couldn't keep it from you any longer. This release is packed with quality of life improvements, and general bugfixes / stability. Deploy away!

The highlights are:

  • GitHub assign command now automatically chooses the top issue and/or authenticated user if not provided.
  • The RSS feed connection no longer feels the need to spam you when GitHub fails to respond within 10s. It now waits for 30s.
  • Hookshot now supports creating GitLab connections without automatically provisioning a webhook. When this happens, the bot will tell you to talk to your admin to setup the webhook manually.

Checkout the rest here

Dept of Clients 📱

SchildiChat (website)

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 reports

Version 1.5.8.sc62 of SchildiChat-Android got released this week, which adds a few new interesting features on top of Element:

  • Reworked reply rendering, to follow the rich replies specification. This improves the following:
    • Update the replied-to message in case the original message gets edited or deleted
    • Fix replies edited on desktop not being shown as replies on Android
    • Fix replies edited on Android being shown on Desktop with the replied-to event twice
    • Fix some weird rendering issues, like lists in a reply being completely broken
    • Nicer design, using the original sender's color, and a maximum height for the replied-to event
    • Render the replied-to event also for media replies, for example when the mautrix-telegram bridge sends an image reply
    • In the future, this will also allow us to render replied-to images instead of just writing "Image" in there, but this one is still on the TODO-list since I didn't want to delay a release further.
  • Render captions as per MSC2530.
  • We now allow sending all kinds of room-specific or account-specific global custom emotes as per MSC2545 (but you still need to configure them with a different client before sending).

For those about to ask if I'll upstream these changes to Element: I'm currently not planning to do so, but you are free to pick my changes yourself and create a PR. For rich replies, see also here.

Element (website)

Everything related to Element but not strictly bound to a client

Anthony Hughes reports

Community Testing

Help us test Threads on Wednesday December 7th from 15:00 to 16:30 GMT! We need the most help testing on Android and iOS but if you can help test on Web/Desktop that's cool too! And don't worry if you can't make it, we'll have folks around most of the day so please come out and help us test whenever you can manage. See you in the community testing room at #element-community-testing:matrix.org!

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

kittykat says

We’ve made improvements to replies, search, notifications, user verification and DM creation over the last week

In labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • Voice broadcast is continuing to receive more updates and bug fixes!
  • Threads is nearing release, thank you all who have been trying it out! You can still join the Beta testing in Settings -> Labs to give it a spin!
  • Also, screensharing in Element Call has had a fix!

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Doug reports

  • 📬 Useful feature time: The spaces button is now badged whenever you have unread messages or invites that aren’t visible in the current space.
  • 📝 The Rich Text Editor has seen more bugs and edge cases fixed and support for links and lists is underway.
  • 🏗️ On the ElementX side we have been working on a Reactions picker, the timeline rewrite is almost finished, work on a split view layout for iPad continues and we’re finishing up a shiny new Room Details screen.

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

  • Element Android 1.5.10 has been released for testers on the PlayStore (still in review by Google at this time). It should be pushed to production next week. It includes a new full screen mode for the Rich Text Editor and lots of other changes. The full changelog is here.
  • The team is making progress to integrate the Crypto Rust SDK in the main project and generate the application ElementR.
  • On Android Element X, which is the new Android app written with Jetpack Compose on top of the Matrix Rust SDK, it is now possible to edit events and to reply to events. Html is also now rendered in the timeline. We will define in the coming weeks what will be the plan for the future regarding this project.

Dept of Non Chat Clients 🎛️

Feline Matrix Assistant (website)

Cat says

Announcing Feline Matrix Assistant. This is a PowerShell 7 cross platform script that aims to gather a few somewhat common matrix tasks in one place with a somewhat user friendly interface.

It was designed to enable users on Windows to easily access things like custom powerlevel rooms and manual room upgrades that normally require using Linux to run bash scripts if one does not want to figure out how to make the web requests using their preferred method themselves.

One of the other reasons i made this is just because i wanted to get more familiar the CS API and because i needed it my self because im currently a Windows user.

Third Room (website)

Matthew reports

The Third Room team have been invited to present Third Room at SIGGRAPH Asia 2022 next week! https://sa2022.siggraph.org/en/presentation/?id=realcur_102&sess=sess143

Dept of SDKs and Frameworks 🧰

Yet Another TypeScript Bot SDK

As named per the author, don't blame Thib for this name!

prefix reports

Why? As an alternative to matrix-bot-sdk, this library will be strongly typed with simplicity in mind to make sure there is no overhead to writing the perfect Matrix bot.

  • This library also focuses on having browser support and no dependencies around NodeJS (and least amount of dependencies in general)
  • AppService functionality will be shipped in a separate package as an extension of this base package.
  • There is plenty of dependency injection for: Logging, how HTTP comms are done, and caching (come ask about the Redis cache layer!)

Come join our Matrix room to help this library grow and give input!

https://github.com/CatEngineer/matrix

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict reports

Trixnity 3.0.0 is released. This release contains all changes of the beta versions. We additionally fixed two bugs regarding encrypted edited messages.

I'm currently working on vodozemac integration. For this I implemented uniffi-kotlin-multiplatform-bindings to bridge Rust and Kotlin Multiplatform.

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

ben says

The last few weeks of Sliding Sync in the various mobile clients is showing its fruits: Sliding Sync offline caching and session recovery was merged this week, giving you the latest state of your sliding sync in milliseconds without ever having touched the network now. You need to activate it via a setting on the SlidingSyncBuilder - FFI is exposed as well. This PR also adds recovery when the server rejected our request upon a failing position, indicating our session was reset. Previously, you needed to reconstruct the entire sliding-sync with all its state yourself, now this does it internally and transparently for the API user. Additionally, we merged a fix for invited rooms, which caused a panic on FFI usage, and have one other fix to the sliding-sync state post cache coming up.

Talking about fixes, the retry code path had a bug, which caused retries even when the API clearly stated we needed to change request, which is fixed now, and the memory store won't continue to keep all media cached anymore. More fixes are being pulled out of the demo branch and coming up as PRs next week.

We can also report amazing news from the Async-UniFFI-front: we have the first async-uniffi-swift code running now. Exciting times!

👉 ️ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Ops 🛠

Synapse Operator for Kubernetes (website)

mgoerens announces

Introducing a new way to run Synapse on top of Kubernetes !

The current capabilities of the Synapse Operator:

  • Deploy Synapse: the operator can generate a default homeserver.yaml, or it can work with a custom homeserver.yaml, provided by the user.
  • Deploy the Heisenbridge and the mautrix-signal bridge: the operator automatically (re)configures Synapse to add the corresponding app_services.
  • Deploy a PostgreSQL database for Synapse (depends on the postgres-operator).

Once the operator is deployed, the Synapse resource becomes available. Deploying a basic instance goes as simple as:

$ cat << EOF > synapse.yaml
apiVersion: synapse.opdev.io/v1alpha1
kind: Synapse
metadata:
  name: my-synapse
spec:
  homeserver:
    values:
      serverName: example.com
      reportStats: true
EOF
$ kubectl apply -f synapse.yaml 
synapse.synapse.opdev.io/my-synapse created
$ kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
my-synapse-84d56d54df-c699k   1/1     Running   0          63s

The operator takes care of the deployment and lifecycle management of the Synapse instance. Similarly, the Heisenbridge and MautrixSignal resources can also be deployed alongside Synapse and are managed by the operator.

This operator is written in Go. To know more about the project, please visit https://github.com/opdev/synapse-operator, there are explanations on how to deploy the operator, and examples demonstrating the main features. Or ping me on Matrix if you want to have a chat about it ! I'd love to collect some feedbacks !

Dept of Events and Talks 🗣️

Matrix FOSDEM Devroom

Thib announces

The clock is ticking! We're already in December, only a few days left to submit your talk proposal for our in-person Matrix devroom at FOSDEM. All the details to answer the call are in our FOSDEM 2023 CfP

Matrix User Meetup Berlin

saces announces

Next Matrix user meetup 7.12.2022, 8 pm @ c-base

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.

Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).

Matrix room: #mumb:c-base.org

jaller94 reports

Matrix Community Summit Berlin 2022 Podcast (English episode)

Meet Charles (cvwright), Project creator and Lead engineer of Circles. He and I spoke about how he got to know about Matrix, how encryption became more common on the Internet and how he started Circles – an app, built with Matrix, to privately connect with family and friends.

Same website and RSS feed as last week.

Mastodon toot: https://mastodontech.de/@jaller94/109445133197729074

I hope you enjoy this week's interview and learn what other people in the community are up to. From next week on we're back to episodes in German – but another English episode is on its way!

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.

RankHostnameMedian MS
1wcore.org403
2veri.dev483
3ruiter.me523
4nognu.de664
5willian.wang676.5
6kittenface.studio833
7coolegrane.farm1053.5
8trygve.me1067
9justinruiter.nl1191.5
10rom4nik.pl1291

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.matrix.org217
2kumma.juttu.asia234
3wcore.org238
4willian.wang310
5forlorn.day687
6matrix.milkte.ch1346
7frai.se11439

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-11-25

25.11.2022 23:46 — This Week in Matrix Thib

Matrix Live

Dept of Status of Matrix 🌡️

Matthew says

Interesting paper analysing the impact of decentralisation (and particularly Matrix) on legislation around content moderation: https://www.thecgo.org/research/the-decentralized-web-and-the-future-of-section-230/

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

  • No MSCs were accepted this week.

Spec Updates

Off the back of the release of Matrix v1.5 last week (see the blog post if you missed it), work on the next release has now begun.

Continued review on MSC3706 (extensions to /send_join for partial state) and MSC3852 (user agent information on /devices) by the SCT was seen. MSC3743 (standard error responses for unknown endpoints) was also merged to the unstable spec!

Special thanks to several contributors of fixes to the spec this week; including zecakeh, HarHarLinks, sumnerevans, johannescpk and DMRobertson!

Random MSC of the Week

The random MSC of the week is... MSC3896: Appservice media!

This MSC calls out the issue that today application services, especially those that bridge third-party networks, need to re-upload all bridged media to the homeserver in order for users to view it. This can create a large strain on disk resources for homeservers that bridge third-party networks and is a problem that is worth considering.

The approach the MSC takes to solving this is to allow application services to reserve an exclusive namespace for MXC URL's, such as mxc://example.com/_discord_.*. When a user's client attempted to request a media item that falls within the exclusive namespace, the homeserver would request the media from the application service (which in turn could pull it from the third-party network's CDN) rather than the homeserver's local media repo.

Seems like a cool idea! Check out the MSC and leave your thoughts if you're interested or have suggestions.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

dmr announces

It has been a busy week for the Synapse team.

On Tuesday we released Synapse 1.72, including

plus a batch of bugfixes. As ever, we aim to cut the next release candidate for Synapse 1.73 on the coming Tuesday. It should include the work that landed on develop this week. Of note:

Dept of Bridges 🌉

Postmoogle (website)

An Email to Matrix bridge. 1 room = 1 mailbox.

Aine says

Postmoogle v0.9.9 is here!

The biggest release so far. Hmm... let me try again

THE Biggest Release (so far)!

The last few weeks we at etke.cc enhanced and optimized Postmoogle to make it as close to common email services as possible (it's not a full Gmail/Outlook/%You-name-it% replacement for a regular user yet, some features are missing, but we're pushing it towards that goal!)

The most notable changes:

  • automatic ban list (can be enabled by postmoogle admin) - no more nasty spammers will ever bother your host and if they will - Postmoogle will cut the wires drop TCP connections before even talking with them
  • automatic greylisting (can be configured by postmoogle admin) - good SMTP software must resend emails (and 99.99% of them do), RFC said.
  • internal email queue to re-send failed emails (with 45x errors) automatically - because Postmoogle is good SMTP software and it follows RFC
  • bridging email threads ⇿ matrix threads/reply-tos (for new emails) - that's a hard one. TL;DR: reply to email in matrix room (either by matrix thread or matrix reply-to) = email reply on email side, works both ways
  • multi-domain mode with the ability to select a domain for sending emails per room/per mailbox (all other domains will act as aliases)
  • !pm send and thread replies send multipart emails by default (both HTML from formatted markdown and plaintext in the same email)
  • lots of other enhancements and fixes under the moogle

Source code and don't forget to say hi in #postmoogle:etke.cc

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico says

You may have noticed it has been a bit quiet from our side lately. Partially that is because I was just busy fixing issues in our new features on the Synapse side (or implementing MSCs in Synapse). But we also just have been fixing boring old issues in our project, that have been not annoying enough to get attention. For example there was a warning when configuring the project with CMake, which now shouldn't happen anymore, but also is just really boring to talk about.

So maybe some more exciting stuff, in theory, if your distribution builds curl with the correct flags, Nheko now supports connecting to servers over HTTP/3. This in itself is not that useful, but it might improve how Nheko behaves when switching connections or when using mobile data.

Nheko now also shows a completer for /commands (stuff like /me, /react or /sovietflip).

You can also now invert the Enter setting, so that you can send using Shift+Enter (thanks to LordMZTE) and you can update your status message over D-Bus (thanks LorenDB), which allows you to show what song you are listening to or what project you are working on, if you enable the D-Bus API and implement that as an addon in your music player or IDE.

Also lots of boring cleanups going on behind the scenes still, so expect cool stuff to be slower for the next few weeks.

Neochat (website)

A client for matrix, the decentralized communication protocol

Tobias Fella says

You might be aware that we, the NeoChat team, are currently working on implementing end-to-end encryption in NeoChat. If you're interested in that work, you should read the blog post i've written about it at https://tobiasfella.de/posts/neochat-e2ee/

Hydrogen (website)

Hydrogen is a lightweight matrix client with legacy and mobile browser support

Bruno says

Back after a bit of a hiatus working on call support (coming soon!) and non-hydrogen things which we're wrapping up now. Today and last Friday we've added sticky date headers to the timeline, which just got released in 0.3.5. Check it out if you haven't already at https://hydrogen.element.io

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle 🦺 announces

  • We’ve recently made improvements to the password recovery flow, meaning that you no longer choose your password before verifying your email… We now follow a more conventional approach (and have parity with mobile flows) that will make it easier for those struggling to sign in.
  • We’ve also continued to add tests and increase overall test coverage!

In labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • Rich text editor: We’ve been working on lists and ‘ctr+backspace’ support
  • Threads: Improvements to performance and notifications continue but this week we’ve mostly put our efforts on testing as we’re prepping for the release of Threads out of Labs!

Dept of SDKs and Frameworks 🧰

Trinity (website)

Trinity is an experimental bot framework written in Rust and using matrix-rust-sdk, as well as commands / modules compiled to WebAssembly, with convenient developer features like modules hot-reload.

bnjbvr reports

This week, a tritiny update:

  • we have experimental support for using Trinity as a library, thanks to @gnunicorn! So experimental that the public API may break at any point without warnings, and it hasn't even been published, but if you feel adventurous, take a look.
  • Flaki from Suborbital and Yours Truly have had a small and cozy chat about Trinity, where we talk about WebAssembly and Matrix, try to set up a new instance of the bot (!), find a bug (!!) but at the end it works (!!!). Youtube link if you're teased!

If you're interested to follow the project, feel free to join #trinity:delire.party or get the code on Github.

Matrix-Webhooks (website)

Matrix-Webhooks goal is to provide Rich, Embedded webhooks for Matrix as an alternative to Discord Webhooks, it's compatible with discord payload and API, so very easy to integrate into services like github, gitlab, grafana, uptime kumi etc ...

rednaks reports

  • You can find the source code here : https://github.com/rednaks/matrix-webhooks
  • Or you can try it or use it here : https://matrix-webhooks.com/
  • You can also join our Matrix space where we share announcements, and have general discussions about matrix-webhooks inorder to improve it : https://matrix.to/#/#matrix-webhooks.com:matrix.org

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

ben announces

It's been a busy week for the matrix-sdk team. As the week before, a lot of time was (well) spent on fixes and smaller improvements for mobile integration, during which a few bugs and problems where discovered and squashed. While this is ongoing, some of them already found their way back into mainline or at least have PRs pending for it: Like the bug in the read marker tracking which sometimes caused a crash 1 2, a problem with timeline construction being async or some minor fixes on the new xtask for swift. We've also noticed a significant regression in the automatic retry mechanism, which would just continue to spin for ever if the server gave a fully warranted error code back - if you experienced this, this PR should be solving it for you.

A significant milestone was achieved this week on Async UniFFI. After getting a first PoC ready the week before, Ivan packaged it all up and sent a draft PR upstream with async python code calling an async rust code over FFI and interpreting the rusty result. So cool! Swift and kotlin targets are next.

👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune announces

As that blog post by Tobias mentions, releasing libQuotient 0.7 is the immediate next step - and in line with that, 0.7 RC has been published! Not much has changed since two betas; despite a very big piece of E2EE introduced in 0.7 release cycle, things have been mostly ironed out earlier in the year. Packagers are welcome to try their tools on the new release. Be mindful though that E2EE has just been introduced and wasn't widely tested; besides, a few pieces are still missing (read the blog post!); so while it's probably reasonable to switch E2EE on for packaging libQuotient, it's NOT recommended to do the same in client applications, unless accompanied by warnings and disclaimers all over the place. The release notes are still shallow and boring - the longer text will come with the final release.

Dept of Ops 🛠

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

matrix-docker-ansible-deploy has received lots of optimizations to cut down playbook runtime, sponsored by the etke.cc managed Matrix hosting service. The etke.cc Ansible playbook (which is an extension of matrix-docker-ansible-deploy) is growing to support more and more services (besides just Matrix), so the Matrix playbook being leaner prevents runtimes from becoming too slow and improves the customer experience.

The playbook now runs about 2x-5x faster, thanks to:

  • various optimizations (using include_tasks instead of import_tasks in all Ansible roles)
  • the introduction of additional install-only tags (--tags=install-all or --tags=install-COMPONENT) which skip slow and often unnecessary to run uninstall tasks

To learn more, see this changelog entry

Dept of Bots 🤖

Mjölnir (website)

The moderation bot for Matrix

Gnuxie announces

Hi everyone, we have released Mjolnir v1.6.1 (via v1.6.0)

Which includes:

  • Always echo policy list changes. List changes are now always enabled, whereas before they where only shown with config.verboseLogging. Mjolnir now no longer hides changes made by the same mjolnir account, providing the user with feedback for changes they have made to policy lists after using the ban/unban commands.

  • Policy lists created by mjolnir will now be done so with support for MSC3784.

  • Mjolnir now supports specifying the config file with the argument --mjolnir-config. It is highly recommended that you do this as opposed to relying on the environment variable NODE_ENV. The documentation for running with docker and from source have been updated accordingly.

  • Fix the WordList protection which was matching every message.

  • Rework the banning and unbanning of entities in PolicyLists.

    • Unbanning no longer searches for rules by state_key but by entity.
    • Users with longer mxids can now be banned.
    • Mjolnir no longer waits for the next client sync before applying server ACL and member bans after using the ban command
  • Improve the clarity of the unban command. Users marked as banned by the Flooding and FirstMessageIsMedia protections can now be unbanned with the ban command. Using the unban command without true will now warn the user that room level bans will not be overridden.

  • Replaced acceptInvitesFromGroup with acceptInvitesFromSpace.

  • Fix config.protectAllJoinedRooms leaking into explicitly protected rooms and mjolnir trying to protect watched lists in some circumstances. You would only have been impacted by this if you ran latest.

Dept of Events and Talks 🗣️

Matrix Community Summit Berlin 2022 Podcast (German)

jaller94 reports

The Community Summit 2022 in Berlin was a lot of fun and we've gotten to know a lot of community members and their projects. Some of these people we were able to interview and will release the recordings as a weekly podcast. From now on, each Friday an episode will be released for a total of 8 episodes.

Today (18th November), we're starting with Alex and Valentin. We talked about the summit, what went well and what activities to add next time. Furthermore, the two shared their passion for home server performance. Give it a listen!

Website: https://anchor.fm/matrix-podcast0

RSS feed: https://anchor.fm/s/cdb34188/podcast/rss

If you don't speak German, stay tuned for English episodes in some of the following weeks, Yan and Christian

Chaos communication family

Yan reports

Hacking in Parallel ////

December 27-30 2022

A part of our chaotic decentralized intergalactic community will be a meeting in the rooms of "ETI Schauspielschule Berlin" at Hacking in Parallel//// this year.

There are several units and indiduals who will be there spread (into) the matrix ... You can enter proposals until 2022-11-27 23:42 (Europe/Berlin). https://pretalx.c3voc.de/hip-berlin-2022/cfp

The Matrix space for the event is a good general place to get in touch. https://matrix.to/#/#hip-space:1312.media

We also prepare for having a Matrix Operation C~~enter~~haos at the Chaos Communication Camp in Summer. This will take place from August 15 to 19, 2023 at Ziegeleipark Mildenberg near Berlin, Germany. If you want to join forces of the and need a ticket voucher for the HIP. Drop in at: https://matrix.to/#/#matrix-moc:datanauten.de

If you can / will not make it with you physical body to Berlin. No worries. You should start connecting the dots.

The XRevent.Labs Operation Group invites you to xrelog22. Discussions, lectures, music, art, performance and the joint creation of independent multiverses will take place from December 28 to 30, 2022. We not only want to raise socio-political, ethical and creative questions, but also actively develop own spaces and content for an interactive, cross-reality live experience.

Anyone who is interested in joining or visiting us can do so either with pre-registration for the real stage at FTZ - Digital Reality at HAW in Hamburg or virtually in the digital-twin at XRevent platform, or the Intergalactic-Chaos-Communication-Broadcast-Studio, aka icc|bs. Your contributions can be pre-recorded, streamed live via a conference tool or presented in the real space on site. Either way, get in touch and we’ll find a solution. Please test yourself and wear a mask if you visit us in person.

Furthermore we offer:

  • weekly workshops in advance
  • recordable LED pixel walls
  • Thirdroom Research Lab

Contacts …

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.

RankHostnameMedian MS
1babel.sh429
2wcore.org434
3alemann.dev474.5
4nognu.de593
5chat.nerdhouse.io595
6dendrite.babel.sh690
7babel1.eu843.5
8willian.wang911
9jeroenhd.nl929
10kittenface.studio971

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1babel.sh120
2conduit.hazmat.jacksonchen666.com145
3dendrite.babel.sh188
4wcore.org348
5willian.wang391
6jacksonchen666.com749
7valha.la828
8forlorn.day922
9evilcyberhacker.net1629
10frai.se41508

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-11-18

18.11.2022 19:08 — This Week in Matrix Thib

Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

Matrix v1.5

Matrix v1.5 was released on November 17th, 2022! 🎉

While not as feature-packed as previous releases (v1.5 was intended as a maintenance release), it's still worth checking out! Included are two new MSCs that have landed, as well as loads of little bugfixes and clarifications to the spec text itself. Thanks to all who helped fix issues since v1.4!

See the Matrix v1.5 blog post for all the juicy details.

Extensible Events are Shaping Up!

As may be apparent from the new MSCs this week, the SCT has been looking at extensible events to iron out some of the finer details of the system. They're not necessarily in the best position to review at the moment, but keep an eye on this space for when review would be most welcome 🙂

Random MSC of the Week

The random MSC of the week is... MSC2705: Animated thumbnails for media (and thumbnail content-type requirements)!

This MSC attempts to define a method for clients to indicate to their homeserver that they would like to have animated version if possible when requesting a thumbnail of some media. This would allow clients to provide a toggle to the user for whether media in the timeline should be animated, or whether room and user avatars should be animated, etc. Potentially separate options for each!

Today, there is no way for the client to indicate per-request whether they would like to receive an animated version of a thumbnail. This leaves the choice up to the homeserver, which gives individual users much less control.

The MSC also defines mimetypes that animated thumbnails should return. And it has an implementation in matrix-media-repo!

Check it out if animated avatars/thumbnails peaks your interest.

Dept of Servers 🏢

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Shay says

Another week has gone by and we here at Synapse Inc have been working hard on faster room joins, bugfixes, and other fun items to make Synapse faster and better, in addition to releasing v1.72.0rc1. Just a few highlights of the release are:

  • Adding experimental support for MSC3912: Relation-based redactions.

  • Adding an Admin API endpoint for user lookup based on third-party ID (3PID).

  • Fixing a background database update, introduced in Synapse 1.64.0, which could cause poor database performance.

  • Improving the performance of /context in large rooms.

In addition, please note that we now only support PostgreSQL 11+, as PostgreSQL 10 has reached end-of-life. As always, if you'd like to know more about this release, hop on over to the release page (https://github.com/matrix-org/synapse/releases) and take a look!

Dept of Clients 📱

Neochat (website)

A client for matrix, the decentralized communication protocol

Tobias Fella says

It's been a few weeks since the last update on NeoChat and we've been working hard on bringing new features and fixes. Some notable ones include:

  • Porting our settings to a nicer style
  • Various UI Improvements in the Room list and Timeline
  • Added the ability to configure a Proxy
  • Creating a significantly nicer UI for switching accounts
  • Improved the room search, with a more obvious way of searching on a different server
  • Viewing and Answering polls
  • The ability to change your display name for a single room
  • Correctly escaping HTML characters in various places
  • Fixed file sending on android
  • Fixed reactions sometimes not showing up
  • Fixed some problems with viewing custom emojis
  • Fixed the external room window blocking the main client window
  • Implemented showing animated images in the timeline

FluffyChat (website)

Krille Fear announces

FluffyChat 1.7.0 has been released. It features a new way to work with spaces via a bottom navigation bar. A lot of work has also been done under the hood to make the app faster and more stable. The main color has slightly changed and the design got some finetuning. Please be aware that it can take some time until it receives all app stores. The Snap Store currently waits for a review, while the arm64 version of Flatpak has recently failed to build. Read the full changelog here: https://gitlab.com/famedly/fluffychat/-/blob/main/CHANGELOG.md

Ement.el (website)

Matrix client for Emacs

alphapapa announces

Ement.el, a Matrix client for the GNU Emacs text editor and Lisp environment, has been updated to v0.5. Since the last version announced in TWIM, these improvements have been made:

Additions

  • Present "joined-and-left" and "rejoined-and-left" membership event pairs as such.
  • Process and show rooms' canonical alias events.

Changes

  • The taxy.el-based room list, with programmable, smart grouping, is now the default ement-room-list. (The old, tabulated-list-mode-based room list is available as ement-tabulated-room-list.)
  • When selecting a room to view with completion, don't offer spaces.
  • When selecting a room with completion, empty aliases and topics are omitted instead of being displayed as nil.

Fixes

  • Use of send-message filter when replying.
  • Replies may be written in compose buffers.

Feel free to join us in #ement.el:matrix.org!

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan reports

  • This week has been exciting for ElementX (our brand new Element iOS client based on the Matrix Rust SDK) which gained a brand new navigation system and a new user notification system, support for displaying file messages in the timeline and playing back video ones, as well as sending states for new messages and an improved bubble layout.
  • We have also started working on an iPad specific layout, improved our logging components, improved hardware keyboard handling and fixed a few annoying issues
  • In Element land we have a made a handful of bug fixes which will hit the store next week and work has been continuing on threads, the new rich text editor, the device manager and our new crypto stack

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

  • Element Android 1.5.8 RC is available on the PlayStore for testers.
  • The team is working on the device manager, the Rich Text Editor (to add more edition options: links, quote, etc.), and the voice broadcast.
  • On the Element Android X side, we are also making progress. We can now change the server (the server has to support sliding sync though). The room list is displayed and the timeline with the Rich Text editor too. We are now working to add more features such as supporting more Event types in the timeline, etc. And the app got a new monochrome icon!

Dept of Non Chat Clients 🎛️

Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr says

Since our last update, Populus viewer has added two features, both a bit overdue:

  1. Populus viewer now supports .well-known discovery, so you just need to know your matrix server name, rather than the full subdomain in order to connect.
  2. Populus viewer now supports the "restricted" join rule for annotations, so that annotation membership can be restricted to members of the underlying resource space. This will likely be the default for newly created annotations in the future.

Our server (at populus.open-tower.com) has also been rebuilt and reconfigured a bit, and will likely be converted from a test-bed to a stable home for annotation-based discussions in the coming weeks. As always, if you want to give us feedback, keep track of progress, or talk about the future of social annotation on Matrix, join us at #opentower:matrix.org!

Dept of Encryption 🔐

uhoreg announces

As many of you know, we are working on using MLS, an upcoming IETF standard for end-to-end encryption, in Matrix. We've set up a page, Are We MLS Yet to track the progress of this project.

Dept of SDKs and Frameworks 🧰

Matrix SDK in Elm (alpha)

Bram reports

Elm is a functional programming language that compiles to JavaScript with the promise that their generated JS code will NEVER raise any runtime errors and show high performance.

Despite the fact that certain implementations like Cactus Chat already use Elm, I could not find an SDK for it. That's why I've started to write one: https://git.noordstar.me/bram/Elm-Matrix

The SDK is currently in early development. The /v3/sync endpoint is functional and there are already a few other ways to interact with the API, so the repository can already be tested by developers who are familiar with Elm. If you aren't that familiar with the language, it is better to wait until I release the first complete version.

libcmatrix

Matthew announces

Purism has been chipping away at libcmatrix for their chat app: https://puri.sm/posts/toward-matrix-support-in-chats/

trinity (website)

bnjbvr reports

Trinity is an experimental bot framework written in Rust and using matrix-rust-sdk, as well as commands / modules compiled to WebAssembly, with convenient developer features like modules hot-reload.

Two weeks of updates, because I've been slightly late last week:

  • Trinity now uses WebAssembly components as created with cargo-components and wit-bindgen under the hood for the Matrix modules. This is quite experimental and early stage, but this allows multiple exciting things in some not-so-distant future: switch API implementations at runtime, more security by isolating specific APIs, using source languages for the modules that can be compiled with wit-bindgen, etc.
  • In particular, we've made a proof-of-concept for a bot module written in C (!) and compiled to WebAssembly, and we've been very close to having a bot module written in Java using the excellent TeaVM project.
  • New APIs have been added for the modules:
    • a simple key-value store, that is backed by the redb pure Rust project, which comes with great performance.
    • modules can now specific help messages as well as admin commands (that will be available only to a predefined admin user).
  • Which then allowed to write a shiny new Mastodon module: configure it in a room with a set of credentials, a Mastodon URL instance, define which users are allowed to use it, and then post statuses from the room using !toot message.

If you're interested to follow the project, feel free to join our Matrix room or get the code on Github.

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

ben announces

Major breakthroughs have happened behind the scenes this week: we were able to get a simple python3-asyncio to poll our rust-side future and receive its result via uniffi. While there isn't much to show for the outside world, this is a major step towards having async-uniffi. The team is super excited about this development.

Meanwhile in Sliding-Sync-Land, we have debugged the session reset and added transparent session recovery to the offline-caching PR. Together with the latest PR that hands over the already received timeline events to the new Timeline API, this should visibly speed up things and improve overall performance across all major clients using both of these. Further more, the Timeline API has UTD decryption retry support now. The client interfaces are moving ahead fast.

On the always-on-going-improvement-front, we have upgraded to ruma, merged the component generation for swift in xtask, switched to custom cargo build profiles, have a signaling mutex for crypto now, moved large parts of deserialized_responses to matrix-sdk-base and made the sync_token accessor private.

👉️ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Ops 🛠

ML model for Matrix Spam Detection

MTRNord says

A few weeks ago I started experimenting with extending my moderation tools with a basic ML model that can give me early warnings on common spam.

As a result https://github.com/MTRNord/matrix-spam-ml was made. It contains a basic ML model using tensorflow based on telegram spam from matrix and a standard SMS dataset. It provides a HTTP api which can also be found at https://spam.midnightthoughts.space and a Synapse and mjolnir integration for both sampling training data and using it as automated spam reactions and is planned for the future.

Feel free to hop by in #matrix-spam-ml:midnightthoughts.space for any further questions :) also please note that the repo is using LFS and as it contains trained models it is pretty huge when cloning with LFS data.

axon.sh

An interactive command-line administration tool for Synapse written in Bash. Better than typing curl requests!

joe says

axon.sh version 0.22.0 has been released, adding support for retrieving event reports from your homeserver, and looking up local users by third-party ID (requires Synapse 1.72.0rc1 or later). Please try it out and report your experience in #axon:matrix.thisisjoes.site!

Dept of Events and Talks 🗣️

FOSDEM

Thib reports

This year, the Matrix.org Foundation is excited to host the first ever Matrix.org Foundation and Community devroom in person at FOSDEM. Half a day of talks, demos and workshops around Matrix itself and projects built on top of Matrix.

We have a physical devroom on Sunday 5 morning, and will follow with details for the online devroom as soon as we get them! You can read the CfP for the physical devroom here: https://matrix.org/blog/2022/11/16/call-for-participation-for-the-fosdem-2023-matrix-devroom

Dept of Interesting Projects 🛰️

Matrix plays GameBoy games once more

Bram announces

Last week's TWIM presented a GBA emulator that was written and implemented in JavaScript. Due to some obscure Rust dependencies that weren't compatible with my server setup, I decided to rewrite the program in Python.

The Python implementation can be found at bram/pyboy-to-matrix. It only supports GameBoy games (no GBA), but it only needs one process (or Docker container) to run both the emulator and the Matrix bot.

If you're unfamiliar with last week's post, the GameBoy emulator is a program that emulates games and then interacts with you on Matrix. You can send commands and the emulator will show you what happened in the game.

Send me a DM at @bram:noordstar.me if you want to see a live demo.

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.

RankHostnameMedian MS
1dmnd.sh270
2joeth.uk439.5
3matrix.org483.5
4babel.sh617
5willian.wang731
6babel1.eu738
7cezeri.tech741
8kittenface.studio906
9wcore.org993
10keks.club1435

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.matrix.org130
2babel.sh214
3willian.wang289
4wcore.org297
5frai.se301
6forlorn.day572
7grin.hu612
8valha.la796.5
9rustybever.be869
10matrix.milkte.ch911

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-11-11

11.11.2022 18:26 — This Week in Matrix Thib

Matrix Live

Dept of Status of Matrix 🌡️

andybalaam reports

A few Matrix folks went to IETF115 this week, and here is my Trip Report: Can Matrix help messaging standardisation through MIMI?

Dept of Spec 📜

Andrew Morgan (anoa) 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://matrix.org/docs/spec/proposals.

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

Spec updates

This week the Spec Core Team has been working with the IETF More Instant Messaging Interoperability (MIMI) working group to define a charter. With a charter, the working group is able to start thinking about implementation and design details, which means talking even more about Matrix!

We had the opportunity to discuss Matrix with several interested people at IETF this week, and are extremely excited for the (long) road ahead: even in the event where Matrix doesn't get accepted, we hope the protocol(s) the working group publishes will be fit for purpose and adopted widely (not to mention our own spec will be better as a result).

To find out more about what we're doing in this space or to learn more, check out this week's Matrix Live above!

Random MSC of the Week

The random MSC of the week is... MSC3381: Polls (mk II)!

Polls! They are useful for quickly gauging whether a group of people agree, or entirely disagree on a topic or choice. This is an MSC with a fairly long history, but has received experimental implementation in a small number of Matrix clients. The concept uses Extensible Events, and there are plans to rewrite it off the back of changes in MSC1767 (extensible events). But for now, it works and is a fun feature.

It's likely worth waiting for the rewrite before commenting on the MSC with detailed changes, but otherwise feel free to have a read to see how it currently works!

Dept of Servers 🏢

Feta (website)

geoffledak announces

Feta is a Matrix server distribution for the Raspberry Pi 3 and 4.

It is a an operating system image, based on Raspberry Pi OS Lite and includes the Matrix Synapse server, a self-hosted Element client, Postgres database, and it generates an SSL certificate for your domain using Certbot. The coturn TURN server is also included so voice and video calls work without any additional configuration.

The provided setup script will have your server up and running in a matter of minutes.

All you need to do is configure your DNS settings for your domain, forward some ports through your router, and boot up your Raspberry Pi. Once setup is complete, enjoy your new Matrix server! Synapse, Element, Postgres, coturn, and federation are all preconfigured for you.

Visit https://www.feta.bz/ to download and get more info.

Head on over to #feta:matrix.org for discussion and updates!

Telodendria (website)

An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional

Jordan Bancino says

  • Donations: Both recurring and one-time donations are now accepted via LiberaPay and Stripe, respectively—GitHub Sponsors is hopefully coming soon. All funds will go directly to infrastructure and development labor. You can find the donate links on the website, and the GitHub mirror.
  • Memory/Network Improvements: Another week brings another round of memory and socket handling improvements.
  • Patch Submission: It's now easier than ever to contribute to Telodendria thanks to the new send-patch script. Submitting your changes for review is now only a single command.
  • Newsletter: Catch the full-length newsletter in #telodendria-newsletter:bancino.net.

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

squah says

Synapse 1.71.0 has been released! It contains the usual round of bugfixes and performance improvements, plus some new features. Notably, Synapse now supports:

  • back-channel logouts from OpenID Connect providers.
  • Postgres and SQLite full-text search operators in search queries.
  • MSC3664, push rules for relations.

Server administrators should be aware that:

  • 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 1.71.0 will be the last release to support PostgreSQL 10. Server administrators are encouraged to upgrade their PostgreSQL servers before the next release, if needed.

You can read more about v1.71.0 here: https://github.com/matrix-org/synapse/releases

In the mean time, the team has been working on the remaining parts of faster room joins.

Dept of Bridges 🌉

Postmoogle (website)

An Email to Matrix bridge. 1 room = 1 mailbox.

Aine announces

Postmoogle vUnreleased is here!

Yep, no pinned release yet, but there are some exciting features in the main branch (latest docker image):

multi-domain support!

You can have one main email domain (eg: the-etke.cc) and multiple additional domains that will be used as aliases (not-etke.cc, example.com), so you can get more spam to the [email protected], [email protected] and [email protected] at the same time!

bridged thread replies!

the last planned feature of the roadmap: send reply (reply-to or thread reply) to an email message in the matrix room and it will automatically set all magic stuff (In-Reply-To header, subject with Re: %original message's subject%, etc) and send email. It's pretty rough implementation, so feedback is appreciated!

Source code and say hi in the #postmoogle:etke.cc room

Dept of Clients 📱

Hydrogen (website)

Hydrogen is a lightweight matrix client with legacy and mobile browser support

Midhun says

Released v0.3.4 (and v0.3.3) with a join room UI and lots of bug fixes! Special thanks to Isaiah Becker-Mayer for his numerous typescript PRs!

Some of the fixes are for:

  • an error that can stop sync
  • an issue where hydrogen did not verify senders of room keys!
  • message verification not working in rooms where we haven't sent a message yet

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

kittykat announces

  • 1.11.14 is out, with many improvements to threads!
  • This week, we fixed some issues, including a bug with media uploads

In labs (you can enable labs features in settings on develop.element.io or on Nightly):

  • We’ve added more functionality to the rich text editor, it’s catching up slowly with the basic composer
  • Voice broadcast also has a few new tricks up its sleeve, including improvements to pre-recording and message length

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan says

  • We have been working hard on improving the Element experience and to that extend we have fixed some crashes, squashed timeline layout issues, improved the device manager and the new rich text editor
  • Work is also continuing on thread notifications and the new crypto frameworks
  • ElementX on the other hand received support for offline logins, message editing, video and encrypted messages in the timeline and a brand new underlying navigation mechanism

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit reports

  • Element Android 1.5.7 has been pushed to production on the PlayStore and should also be available for F-Droid users soon. This version fixes the issue when sharing items to the app, and also fixes the regression observed in 1.5.6 (before it reaches production!) during the first sync with the server.
  • We are making progress on ElementX, which is a new client using the Matrix Rust SDK and Jetpack Compose. This app is now able to display a timeline and send messages to a room using the wysiwyg composer.

Dept of SDKs and Frameworks 🧰

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict announces

We released Trixnity 3.0.0-beta3, which supports the matrix spec 1.4 and new relation types: reply (without fallback), replace, thread (basic support, no separate timelines or client aggregations yet).

simplematrixbotlib (website)

simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.

imbev reports

Version 2.8.0 released!

This version brings a few improvements.

The sending of video messages has been added. The following handler will send a video after any message from another user:

async def example(room, message):
    match = botlib.MessageMatch(room, message, bot)
    example_video="./videos/example.mp4"
    if match.is_not_from_this_bot():
        await bot.api.send_video_message(
            room_id=room.room_id, 
            video_filepath=example_video)

Thanks to moanos and HarHarLinks, there are improvements to the handling of device ids.

Join us in the Matrix room at https://matrix.to/#/#simplematrixbotlib:matrix.org or the Git repository at https://codeberg.org/imbev/simplematrixbotlib !

Version 3.0 coming soon!

Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

Jonas Platte announces

Since our last update in June (yeah, sorry...), we released Ruma 0.7.0 and a few patch releases including all of the following and more:

  • Support for refresh tokens (MSC2918 / Matrix 1.4)
  • Unstable support for discovering an OpenID Connect Server (MSC2965)
  • Unstable support for private read receipts
  • Lots of API refinements, like renaming AnyRoomEvent to AnyTimelineEvent
  • Support for Room Version 10
  • Unstable support for sliding sync

Since this release was released back in September, a bunch of things have also happened that are not released yet:

  • Many features were moved out of unstable feature flags because they were stabilized in Matrix 1.4
  • We made message construction easier than ever with improvements to markdown detection and improvements to reply and edit creation
  • We refactored and extended the push notification code
  • We are about to conclude a massive refactoring that should make our codebase look less strange if you are familiar with Rust, and could help compile times as well

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

ben announces

This week has seen important strives forward on sliding sync, which now has a PR up for offline support and the new timeline API, with some initial unittests and video messages support merged and support for file messages coming up. On the FFI, we now have support for logging in Android and work on moving the iOS binding scripts into our internal xtask cli.

As usual a lot of work is been going in the background without any visible, tangible outcome yet. On one side we are making great progress on getting a first async-prototype for uniffi with python working, on the other we have been profiling the sdk on iOS mobile devices for its memory footprint - which is a major blocker for notification support.

️👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Events and Talks 🗣️

FOSDEM

Thib announces

There will be a Matrix Devroom at FOSDEM next February 🎉 We will issue a CfP very soon™

Dept of Interesting Projects 🛰️

Matrix Plays GameBoy games

jaller94 reports

Using this Lua script and NodeJS bot, you can remotely control any GameBoy (Classic + Color + Advance) game using the mGBA emulator. Invite some friends to the Matrix room and everyone can control the game at once. Yes, the project name is a reference to the famous "Twitch Plays Pokémon" stream which has 1000s of people complete Pokémon games together just by typing into a chat.

This is a bot and does not need an AppService registration.

https://github.com/jaller94/matrix-plays-pokemon

Disclaimer: This is a hobby project of mine. It is neither associated with nor endorsed by my employer or Nintendo. The project does not contain ROMs or other non-free assets.

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.

RankHostnameMedian MS
1babel.sh350
2nognu.de409
3trygve.me548
4maescool.be623
5keks.club630
6shortestpath.dev640.5
7willian.wang686
8rom4nik.pl775
9alemann.dev840.5
10babel1.eu898

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1babel.sh130
2dendrite.matrix.org185
3kumma.juttu.asia219
4rustybever.be327.5
5forlorn.day511
6frai.se606.5
7matrix.milkte.ch1078
8babel1.eu1243
9willian.wang36298
10jacksonchen666.com236505

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-11-04

04.11.2022 19:27 — This Week in Matrix Thib

Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

Accepted MSCs:

Closed MSCs:

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, 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!

This MSC attempts to be an addition to authenticated media in matrix (specifically MSC3916) 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!

Dept of Servers 🏢

Telodendria (website)

An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional

Jordan Bancino reports

Telodendria is moving along slowly but steadily. Here are a few brief things to note for this week:

  • GitHub: 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 to you.
  • Matrix: As a reminder, Telodendria is organized entirely on Matrix at #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)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Shay 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)

A Matrix user-interactive authentication (UIA) server

cvwright announces

Announcing the first alpha release of 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. 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 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

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 playbook.

Dendrite (website)

Second generation Matrix homeserver

neilalexander 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 today, which fixes a variety of things in /sync amongst other things
  • Version 0.10.6 on Tuesday, which optimises history visibility, improves E2EE and tweaks some state resolution code
  • Version 0.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).

As always, please feel free to join us in #dendrite:matrix.org for related discussion.

Homeserver Deployment 📥️

Ananace announces

This week has been quite calm, only a single update to my Helm Charts; element-web being bumped to 1.11.13

Dept of Clients 📱

SmallTalk (website)

Minimal Android messenger powered by Matrix

adam 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 & #small-talk

Quadrix (website)

A Minimal, simple, multi-platform chat client for the Matrix protocol.

JFA 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 or in the issues at https://github.com/alariej/quadrix (stars welcome :-)

Nheko (website)

Desktop client for Matrix using Qt and C++17.

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.

Nico 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. A longer term fix will be MSC3664, which I also implemented. I also fixed some compatibility issues when sending pushrules to clients after the recent Synapse refactoring.

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle reports

  • This week we’ve released a hotfix - there’s 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 you’re interested keep your eyes on the Help Wanted tag in GitHub
  • Following our recent research into Notifications we’re 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):

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan reports

  • Version 1.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
  • We’ve been making good progress on ElementX push notification support and we’re 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

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

Danielle announces

  • This week's release has a new media picker when you’re choosing to upload something to the timeline.
  • We’ve also been working on multi-select in the new device manager
  • And… Fixing the share actions in the share dialog
  • In Labs; We’re building loading and pagination improvements for Threads.

Dept of Non Chat Clients 🎛️

Circles (website)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright 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, 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 directly from our repo.

Interested users can also join us in #circles:matrix.org to get the latest news about the app.

Dept of Widgets 🧩

Oliver Sand says

Hello from Nordeck 👋 This week we finally released the first of our widgets as open source: It's the matrix-poll-widget.

The widget allows to conduct polls in Matrix rooms. But unlike MSC3381 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, 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.

Dept of VoIP 🤙

Element Call (website)

Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app

Florian Heese says

Hello from the VoIP team,

We've just released Element Call v0.3.2 which has a whole collection of new things. 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)

Multiplatform Kotlin SDK for Matrix

Benedict 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).

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 Flows, 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)

Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM

ben announces

👉️ Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

Dept of Events and Talks 🗣️

Salt reports

SeaGL (the Seattle GNU/Linux Conference) will be holding our tenth annual (third virtual) conference online November 4–5, powered by Matrix and our custom bot, 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. 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 is available on our blog.

As previously mentioned, we've been refining the virtual conference experience for three years and would gladly welcome new wings and beaks to our all-volunteer staff!

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.

RankHostnameMedian MS
1matrix.org402.5
2nognu.de488
3maescool.be587.5
4seymour.family751.5
5zemos.net1062
6mailstation.de2588
7kittenface.studio3202
8roeckx.be3374.5
9cezeri.tech3884
10diasp.in4767

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.matrix.org138.5
2matrix.sum7.eu143.5
3willian.wang410.5
4forlorn.day714
5matrix.milkte.ch2024
6frai.se10978.5

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-10-28

28.10.2022 19:07 — This Week in Matrix Thib

Matrix Live

Dept of Spec 📜

Andrew Morgan (anoa) 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:

MSCs in Final Comment Period:

Merged MSCs:

Closed MSCs:

Spec Updates

MSC3917: Cryptographically Constrained Room Membership is rather interesting. It aims to make room membership in a room cryptographically verifiable via a "Master Signing Key" that's controlled by users. This is in addition to the homeserver signatures typically placed on events in Matrix. The purpose is to prevent a homeserver from being able to lie about your membership in a room. While not the end-all-be-all solution to this particular problem, it's certainly a well-reasoned take.

Matrix @ IETF 115

This last week (well, last few months), the Spec Core Team has been working on defining Matrix as the standard for interoperable messaging at the IETF level, under MIMI. The current drafts can be found in these places:

  • Matrix as a transport for MIMI: https://turt2live.github.io/ietf-mimi-matrix-transport/draft-ralston-mimi-matrix-transport.html (MSC3918)
  • Matrix as a message format for MIMI: https://turt2live.github.io/ietf-mimi-matrix-message-format/draft-ralston-mimi-matrix-message-format.html (MSC3919)

We'll be publishing these as proper Internet-Drafts once submissions open back up at IETF in a week or so. In the meantime, if you have any feedback then please let us know on the MSCs 🙂

Random MSC of the Week

The random MSC of the week is... MSC3032: Thoughts on updating presence!

A loose collection of thoughts on how presence (the ability to see whether people are online/office) may be improved at the Matrix protocol level, and how it could be integrated into a profiles-as-rooms feature (MSC1769). Check it out if presence is something you're interested in!

TravisR explains

A soon-to-be working group within the IETF called "More Instant Messaging Interoperability" (MIMI) is aiming to solve, well, messaging interoperability for primarily reasons of the EU Digital Markets Act (DMA). The DMA requires "gatekeepers" to interop with other platforms while maintaining the same level of encryption, and we think Matrix is the perfect fit for this use-case. While we'd likely be saying goodbye to Olm and Megolm in the process, we'd be saying hello to Messaging Layer Security (MLS) and its decentralized counterpart DMLS - a good thing in our books, at the moment.

In terms of what we've done this week in publishing our drafts (and soon to be real Internet-Drafts under the IETF process), we're formally proposing that Matrix's Federation API and event schema be used for messaging interoperability. Our very own Matrix spec process will be impacted by this sort of direction as it makes it (theoretically) "harder" to change details of the spec. To avoid it being extraordinarily difficult, we'll be nailing down some of the edge cases of the Federation API and event format ( 👀 extensible events) naturally as we work closer and closer to an RFC series. We'll also be making some architectural changes to our specification itself to better support half of it being in the IETF domain, like defining room versions more clearly and splitting non-core spec out of the way. It's worth noting that this is a relatively slow process as we work towards the deadline of DMA a few years from now, but the changes might be felt by the ecosystem on a more rapid scale.

At the moment, we're planning to attend IETF 115 to help keep Matrix on the map for MIMI and raise our feedback about the proposed working group charter. Discussions about whether Matrix is the correct fit are already ongoing, but expected to increase as we get closer to IETF 116 next quarter. We were also already at IETF 114 a few months ago where many of these conversations started.

Future work is currently expected to come through under my name, as have the current drafts (both with obvious input from Matthew as project lead). Watching this space and the spec process for updates is best 🙂

Dash User-Contributed Docset

ChristianP says

The Matrix Spec 1.4 is now available as a Docset for the Dash offline documentation reader. You can install this docset from Dash's Preferences > Downloads > User Contributed. This docset will likely be kept up-to-date by me. This is not an official distribution channel of the Matrix Spec team – things may break.

If you're using the open-source reader Zeal, you'll have to install new versions manually: https://gitlab.com/jaller94/dash-matrix-spec#use-with-zeal

Dept of Servers 🏢

Telodendria (website)

Jordan Bancino says

Hi everyone, I'm working on a little Matrix project called Telodendria.

Telodendria is eventually going to be another homeserver implementation. It isn't one yet; I'm still in the very early stages of prototyping it, and writing some boilerplate code, but I've been encouraged to throw the project out there for more exposure, so here we are!

Telodendria is written in ANSI C, will use a custom flat-file database, and relies only on a POSIX system to be built and run. It won't pull in any dependencies; as much as possible will be written from scratch, including the HTTP stack, JSON parser, and any other baseline stuff a Matrix homeserver needs.

Why?

One of the goals is simply to build a useful homeserver, but also just to learn about the inner workings of Matrix and the technology that supports it, as well as to have a bit of fun in the process.

At this point we've got Synapse, Dendrite, Conduit, Construct, and a few other great projects. So you're probably asking, What practical reasons are there to build another homeserver? The best answer to that is in Telodendria's manual, but what it really comes down to is being portable and lightweight. It'd be cool to have a Matrix homeserver server that can run anywhere, but specifically targets the more obscure operating systems like the BSDs. Additionally, it should be light enough to perform well on Raspberry Pis, routers, cheap VPSs, and other low-power and low-storage devices that might not be as capable of running a full database plus a hefty Matrix homeserver.

For me personally, I just want a homeserver that feels like it belongs on OpenBSD and is capable of handling my use case without having to install any third-party packages. I'm a digital minimalist that wants to cut down on his software requirements, and Telodendria is one of the ways I've set out to do that.

Want to get involved?

There's definitely plenty of code and documentation to be written, so if you're looking for a challenge and believe in the project's philosophy, you're highly encouraged to get involved in whatever way you're able.

The development discussion happens entirely on Matrix. If you're unsure where to start, start by joining the project rooms listed in the manual. Do be sure to also check out main project website, which has a list of all the manual pages. The manual should contain much of the information you'll need to get started, but it's far from complete, so if you find the information to be insufficient, don't be afraid to ask questions in the rooms listed above.

Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Timo on Conduit ⚡️ announces

Great news! The FUTO organization selected me for a grant to sponsor me working on Conduit. I want to finally work on the big remaining issues like threads, backfilling, spaces and so on. Also keep an eye on the Conduit v0.5 release. It is almost done and contains many bug fixes. You can already try it out by compiling conduit-next.

Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

dmr announces

A lot of the Synapse team are out at the moment; we have mostly been in maintenance mode, both for the project and the Matrix.org deployment. With that said: we released Synapse 1.70.0 on Tuesday followed by a 1.70.1 patch release today. Highlights include:

Thank you as ever to our community of contributors, server operators and users who've been involved in this release. We'll be cutting a release candidate for Synapse 1.71 on the upcoming Tuesday (1st November), aiming to release the week after (8th November).

As for this week: we've been testing Synapse against the recent Python 3.11 release, dealing wit h CI deprecations and working through our backlog of old PRs. Lots of small things to juggle!

Homeserver Deployment 📥️

Helm Chart (website)

Ananace announces

Since I happen to have a few free minutes this friday;

My Helm Charts continue to stay up-to-date, with element-web at 1.11.12 and matrix-synapse on 1.70.0 (though refer to #homeowners:matrix.org before updating)

Ananace reports

And another little update on my Helm Charts; matrix-synapse 1.70.1 is now available as well

Dept of Clients 📱

Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico announces

I guess the most exciting news is that the macOS M1 builds are now merged to master and will be available for the next release. Seems like those are even faster on macOS that the intel builds! (Time from launch to be able to send a message is about 1 or 2 seconds.) The builds are using the generous cirrus CI open-source offering, so thank you!

Another good news is that a fox fixed the upload widget sometimes breaking Nheko when trying to upload specific files on some platforms. Apart from that there were also minor fixes to room sorting in communities, performance fixes to the parent community links as well as work on enabling more warnings when developing Nheko (to ensure our code is better quality, more secure and less error prone).

If you want to find out more about Nheko, our official community is currently being set up at #community:nheko.im!

Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle says

  • Along with some bug fixes we’ve been adding more updates to some features currently in Labs!

    • Check out a newly improved Threads; with recent updates deployed, threads notifications should be much more reliable these days. We’ve still got more work to do but the improvements are great.
    • Video rooms and Element Call in the desktop version now supports screen sharing.
    • The rich text editor is also getting regular updates and expanded functionality.
  • In the pipeline for us over the next few weeks are improvements to notifications and matrix.to links.

Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Ștefan announces

  • In order to enhance our ability to test before launch we’ve now got Nightly builds on ElementX iOS. Our internal testers are able to use the app for longer before we prep for release to the App Store and that will increase the quality of our product.
    • We’ve also made other improvements to our performance testing.
  • The composer has had a few upgrades recently - keep your eyes open for that and let us know what you think!
  • Work on voice broadcasting is moving ahead quickly
  • We’re working on signing in via QR code and other enhancements in this area.
  • And last but not least, ElementX is very close to getting e2e encryption support!

Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

  • The new app layout has been out for a few weeks now and we’re keeping an eye on feedback and numbers. So far it seems like most people like it though we’ve heard great ideas about improvements we can make in the future. Keep it coming!
  • We’re working hard on increasing the test coverage in our app so that we have even more confidence in the app we’re pushing to the Play Store.
  • Under Labs, there’s some new features. Check out:
    • The new composer. It’s What You See Is What You Get and hopefully a lot more straight-forward to use!
    • There’s also a new way to manage your devices and notifications on different clients.

Dept of Non Chat Clients 🎛️

nheko-krunner (website)

A KRunner plugin to list joined rooms and possibly other things from nheko.

LorenDB says

I have updated nheko-krunner to work with the latest D-Bus API from nheko. There is no new release out yet, but expect to see a release (possibly with other cool things) after the next nheko release.

Circles (website)

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

cvwright reports

Happy Friday all! Once again we have a new build of the Circles Android app for your beta testing enjoyment.

Updates in this release (v1.0.5)

  • Renamed the app back to "Circles". Technically the proper name of the app is "FUTO Circles", but it will show up on your home screen as simply "Circles", similar to how Google Photos is "Photos" and Google Maps is "Maps". The Circuli name was too hard for most English speakers to pronounce, and it didn't solve our other issues with the name. "FUTO Circles" should do the trick.
  • We're keeping the Circuli name for our online service.
  • Added QR-code-based device verification.
  • Made registration tokens optional, i.e. it's up to the server whether to require them or not. Currently we do require registration tokens on our servers, and you can sign up with the token 0000-1111-2222-4444.

Dept of SDKs and Frameworks 🧰

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

ben announces

Long-awaited and with a bunch of final bug-fixes on the server side, this week eventually saw the merging of the sliding sync extensions, enabling e2ee and to-device message support via sliding-sync on main. With that, and some additional APIs on, a new Element-x with e2ee support was made available. A release that also features the latest work on the timeline API, which, too, has seen its fair share of progress this week - mainly internal fixes and debugging helpers.

As a result of the sliding sync work, just earlier today, an important PR was opened for jack-in, the experimental debugging TUI client based on matrix-rust-sdk (which we use for debugging sliding sync): now allowing you send (encrypted) messages, too.

Following last weeks announcement we also made the Rust-Sec public, indicating why we recommend upgrading to 0.6.1, which we released shortly prior.

Other than that, work has been progressed in the background on the pretty complex problem of async in uniffi and system-specific runners, namely libdispatch on ios rather than tokio, as well as work on uniff proc-macros.

️👉 Wanna hack on matrix rust? Go check out our help wanted tagged issues and join our matrix channel at Matrix Rust SDK.

libQuotient (website)

A Qt5 library to write cross-platform clients for Matrix

kitsune reports

A new beta for libQuotient 0.7 is out, with a few fixes and improvements across the board but especially in E2EE-related code. This one is still a bit too early for Linux packagers but we're steadily approaching the release. The release notes are available at a usual place: https://github.com/quotient-im/libQuotient/releases/tag/0.7-beta2

Dept of Events and Talks 🗣️

Matrix User Meetup Berlin

saces says

Next Matrix user meetup 2.11.2022, 8 pm @ c-base

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.

Also when the bbq is lit you may wish you brought 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

Dept of Interesting Projects 🛰️

Chatrix (website)

Matthew announces

Automattic look to be working on a wordpress plugin called Chatrix, forked from Element’s Chatterbox (in turn built on Hydrogen)… https://github.com/Automattic/chatrix-frontend

hg-dashboard (website)

thejhh announces

We published our example dashboard fullstack app at Github. It uses Matrix as one of the database options to save application's stored state -- and also contains sample configurations for multiple Matrix Home servers. The project is complete full stack sample project which can be used to kick start new projects. It has REST backend written in TypeScript using Spring Boot style API implementation, architecture copied from enterprise Java world to TypeScript. The frontend is implemented with ReactJS. It also has docker-compose configurations and a simple testing framework implemented.

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.

RankHostnameMedian MS
1neko.dev318
2keks.club474
3alemann.dev531
4trygve.me532.5
5utzutzutz.net588
6justinruiter.nl680.5
7mozilla.org1290
8kittenface.studio1702
9rom4nik.pl1894
10matrix.cirk2.de2523

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.matrix.org196.5
2kumma.juttu.asia244.5
3willian.wang479
4frai.se502.5
5grin.hu509.5
6conduit.hazmat.jacksonchen666.com522.5
7forlorn.day727
8rustybever.be879
9dendrite.s3cr3t.me1303
10valha.la1547

That's all I know

See you next week, and be sure to stop by #twim:matrix.org with your updates!