This Week in Matrix

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

Atom Feed

This Week in Matrix 2023-03-03

03.03.2023 00:00 โ€” This Week in Matrix โ€” Thib

๐Ÿ”—Matrix Live

๐Ÿ”—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://spec.matrix.org/proposals.

๐Ÿ”—MSC Status

New MSCs:

MSCs in Final Comment Period:

Accepted MSCs:

  • No MSCs were accepted this week.

Closed MSCs:

๐Ÿ”—Spec Updates

Other than spec text fixes in the matrix-spec repo, the Spec Core Team has mainly been focusing on push notifications, push rules and generally improving notifications across Matrix. This includes improving behaviour such as accidentally notifying someone when you mention their name, accidentally notifying people when you reply to a message, accidentally notifying when you edit a message and so on. The relevant MSCs are MSC3958, MSC3873, MSC3966 and MSC3758.

In addition, review of MSC3575 (Sliding Sync) and other sliding sync MSCs saw some in-depth review from Nico.

๐Ÿ”—Random MSC of the Week

The random MSC of the week is... MSC3013: Encrypted Push!

When you get a push notification for a new message on your phone, you may wonder how that message travels from your homeserver to you. Typically it isn't done directly - instead, when you receive a message that should notify you, your homeserver will generate a push notification specifically for you, and send this off to a Matrix Push Gateway. That Push Gateway is then configured to send your notification off to a service which knows how to route it to your device. This is usually Apple's Push Notification Service in the case of iOS devices, or Google's Firebase Cloud Messaging service in the case of Android devices (though FCM supports iOS devices too!). Your phone's OS will keep a consistent connection to one of these services if an app has registered for push notifications, and thus you can receive notifications from apps even when your Matrix client is not running.

But doesn't that leak all of your message notifications to Apple or Google? ๐Ÿ˜ฑ Not quite. While clients can choose to include all contents of a message in a push notification, most instead opt for only including the event's ID. When the push notification containing that event ID reaches your phone, it wakes up a small portion of your Matrix client which goes and fetches the full message content from the homeserver (plus encryption keys if the message needs to be decrypted). This way, you can still get a notification without your Matrix client needing to be open all the time. However, some metadata (such as when you are getting a notification) is still leaked to Apple/Google. Since the third-party service knows the event ID, it can correlate which users are in the same room by cross-referencing event IDs in notifications across multiple users.

It's also a bit of a resource drain that the client needs to go and talk to the homeserver to fetch the full event content. Ideally we'd just include it all in the notification - but then we end up sharing too much information with the push provider!

This MSC proposes a solution; encrypt the message content and send that in the notification! Message contents are encrypted using a public key provided by the client to the homeserver when registering for push notifications. The ciphertext passes through the Push Gateway (which may be run by a separate entity to your homeserver) and the Push Notification service (run by Apple, Google, etc.) and then finally down to your client where it is decrypted without the need for a web request as the private key will just be stored in the client.

And since a separate encryption key is being used per-device, ciphertexts of the same event will differ when encrypted for different users - eliminating the Push Gateway/Push Notification Service from being to correlate notifications across users (timing attacks are still possible, but this can be reduced by introducing a small amount of jitter into when notifications are sent out).

Anyhoo, if you're big on privacy (or security against those running Push Gateway/Notification Services), check out this MSC!

Continue readingโ€ฆ

This Week in Matrix 2023-02-24

24.02.2023 00:00 โ€” This Week in Matrix โ€” Thib

๐Ÿ”—Matrix Live

Transcription (Community made): https://en.miki.community/wiki/Matrix_Tutorial_7

๐Ÿ”—Dept of Spec ๐Ÿ“œ

TravisR announces

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals

๐Ÿ”—MSC Status

Merged MSCs:

Closed MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

๐Ÿ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've been aiming to get the requirements for MSC3952: Intentional Mentions landed as well as discussing MSC3952 itself, in addition to planning out what the next few spec releases are expected to look like.

Watch this space for progress on the Matrix 2.0 MSCs and other critical path items :)

๐Ÿ”—Curated MSC of the week

This week's random chosen MSC is MSC3575: Sliding Sync! It's one of the largest (or is the largest?) MSCs we've ever had, and dramatically changes how clients actually get updates from the server. It's worth the read if you're a client developer, though the team working on it is ironing out some bugs. Let us know what you think on the MSC :)

๐Ÿ”—The Chart

It seemingly was okay with being generated this week again, so here it is:

Continue readingโ€ฆ

This Week in Matrix 2023-02-17

17.02.2023 23:33 โ€” This Week in Matrix โ€” Thib
Last update: 17.02.2023 20:28

๐Ÿ”—Matrix Live

Thib was away this week, Matrix Live is finally coming back next week!

๐Ÿ”—Dept of Status of Matrix ๐ŸŒก๏ธ

๐Ÿ”—Gitter

madlittlemods (Eric Eastwood) says

If you didn't already catch it this week, Gitter has fully migrated to Matrix! ๐Ÿ˜Ž

We brought over all of the historical Gitter content to the gitter.im homeserver and gave everyone free rein over it via app.gitter.im, a Gitter branded Element instance.

Of course, since it's Matrix, you can use whatever client you want to access your public, private and one to one (now DM) conversations!

You can read about the full details in the blog post: https://blog.gitter.im/2023/02/13/gitter-has-fully-migrated-to-matrix/

Happy chatting! ๐Ÿค 

๐Ÿ”—Dept of Spec ๐Ÿ“œ

TravisR reports

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals

๐Ÿ”—MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

๐Ÿ”—Spec Core Team

The Spec Core Team has been busy working away at Matrix 1.6 (released earlier in the week) and aiming to get MSC3925: m.replace aggregation with full event, MSC3952: Intentional Mentions, and MSC2677: Annotations and reactions and all of their dependencies through the spec process. These are all MSCs the SCT has been asked to help get through the process - if there's an MSC we should be looking at, please let us know in #sct-office:matrix.org.

๐Ÿ”—IETF/MIMI/DMA

With the Extensible Events Core (MSC1767) being accepted last week, the focus now turns to all the other extensible event MSCs for images, files, etc. How does extensible events relate to IETF/MIMI/DMA, you ask? In our mission for having Matrix be the standard for interoperability, we need a content format that works for everyone. Events prior to MSC1767 could work with enough effort, though MSC1767's system makes things a lot easier when representing arbitrarily complex messaging features.

Stay tuned to TWIM for progress in this area. It's a relatively slow process, but we're working through it.

๐Ÿ”—Random MSC of the week

This week's random MSC is MSC2785: Event notification attributes and actions! This is effectively a replacement for the push rules system we have today, and a super interesting one (how do you even design a notifications system?). Focus has shifted a little bit since this MSC was first opened, though its ideas still comes up frequently when aiming to make smaller changes to push rules today.

๐Ÿ”—The Chart

The chart has been giving us a bit of grief when trying to be generated, but today it seems agreeable enough to include - enjoy :)

Continue readingโ€ฆ

This Week in Matrix 2023-02-10

10.02.2023 00:00 โ€” This Week in Matrix โ€” Thib

๐Ÿ”—Matrix Live

๐Ÿ”—Dept of Spec ๐Ÿ“œ

Andrew Morgan (anoa) says

๐Ÿ”—MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

Merged MSCs:

๐Ÿ”—Spec Updates

In keeping with our (roughly) quarterly release schedule of the Matrix Spec, v1.6 is due to be released on February 14th. That's only four days from now! The headline features are a new Jump-to-Date Client-Server API (MSC3030) and initial work on speeding up room joins (MSC3706), along with many other fixes and clarifications to the spec text itself.

If you haven't yet seen it, Matthew's Matrix 2.0 talk at FOSDEM walks through some of the upcoming features in the spec. Each will land in subsequent, future releases of the spec. Once all have landed, we'll call that Matrix 2.0 (in name and in actual version number).

Extensible events is one such upcoming feature. While the core proposal outlining the feature (MSC1767) will land in v1.6, the smattering of MSCs which describe how various event types will work under extensible events will span multiple upcoming spec versions. Watch this space!

๐Ÿ”—Random MSC of the Week

The random MSC of the week is... MSC2974: Widgets: Capabilities re-exchange!

This MSC is relatively simple; proposing a method for widgets to ask the client for additional capabilities after it has already been initialised. Doing so allows for increased security and privacy workflows, as the widget need only ask for access to certain pieces of data at the point that it needs it (rather than all up front).

A similar transition of permission granting happened in mobile devices and apps. Initially mobile apps would ask for all permissions they would need up front - which users would blindly accept. These days, mobile OS's have shifted to a model where individual permissions are requested upon attempting to complete an action in an app. This way, users have better context on the reason for the permissions request. (Oddly, browsers have yet to reach this stage with extensions - those still ask for all permissions up front.)

Do check out the proposal and its technical details if widgets are your thing!

Continue readingโ€ฆ

This Week in Matrix 2023-01-27

27.01.2023 21:12 โ€” This Week in Matrix โ€” Thib
Last update: 27.01.2023 20:21

๐Ÿ”—Matrix Live

๐Ÿ”—Dept of GSoC ๐ŸŽ“๏ธ

Thib reports

The Matrix Foundation is a candidate this year again to the GSoC programme. If you intend to mentor a student around your Matrix project, please ping me (@thib:ergaster.org) in the #gsoc:matrix.org room. Your project doesn't have to be set in stone yet: we need to have a good estimate of the number of mentors and projects applying before FOSDEM (by the end of next week).

Continue readingโ€ฆ

This Week in Matrix 2023-01-20

20.01.2023 20:42 โ€” This Week in Matrix โ€” Thib

๐Ÿ”—Matrix Live

Unfortunately no Matrix Live this week!

๐Ÿ”—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:

  • There were no new MSCs this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

๐Ÿ”—Spec Updates

This week and the week afterwards, the Spec Core Team are mostly focused on improvements to Matrix that we'd like to show off at FOSDEM 2023 this year! That consists of MSCs related to Faster Room Joins (MSC3943 among others) and Extensible Events (MSC1767).

๐Ÿ”—Random MSC of the Week

The random MSC of the week is... MSC3230: Spaces top level order!

This defines an algorithm and a data structure that can be used to order one's top-level list of Spaces and have that order sync across all of their clients. Rooms and spaces within a Space continue to have their order defined by an order key (and failing that, the origin_server_ts field) in the corresponding m.space.child event of their parent's Space's state.

I won't get into the details of the algorithm here (or its criticisms), but feel free to jump into the MSC and take a look!

Continue readingโ€ฆ

This Week in Matrix 2023-01-13

13.01.2023 20:11 โ€” This Week in Matrix โ€” Thib

๐Ÿ”—Matrix Live

๐Ÿ”—Dept of Status of Matrix ๐ŸŒก๏ธ

Dandellion announces

Back in July I started a discussion on wikidata for adding a matrix space property, after much discussion in the wikidata community (lead mostly by tgr) we instead landed on a Matrix room property. This now enables slightly more accurate semantics when describing matrix rooms belonging to organizations, projects, and people on wikidata.

Wikidata is a knowledge base available under a free license and using standard machine-parsable data to add information to what is known as the "semantic web", this allows querying for information like for example: Organizations with matrix rooms

As the rest of wikimedia's projects it's open for contributions!

๐Ÿ”—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.

Merged MSCs:

Closed MSCs:

๐Ÿ”—Spec Updates

As you can tell from the above MSC list, Extensible Events continues to charge forwards, with Travis working busily away at replicating all of the existing event functionality (plus new functionality - image albums anyone?) in a world containing Extensible Events. As always, take a look at the core MSC (MSC1767) for a background on what Extensible Events is, and why it's so exciting.

This week has also seen room version 10 become the default recommended room version in the spec! As a reminder, v10 brings the ability to have a room that's both knockable and restricted at once, as well as more strictly enforces the types of power level values.

Otherwise we've seen lots of movement in other areas of the spec. Expect to see some work done around push rules (which have historically been rather complicated and fiddly...) and notifications in the days to come.

๐Ÿ”—Random MSC of the Week

The random MSC of the week is... MSC3779: "Owned" State Events!

I remember this MSC fondly. It was originally born out of MSC3489's need to allow any user in the room to send m.beacon_info state events. This can easily be achieved today by lowering the required power level of m.beacon_info to the default user level. However, you then run into the issue of any user being able to edit any other user's m.beacon_info event!

Thus this MSC attempts to modify the state events permission model so that users can "own" certain state events that they send. We already somewhat have this functionality - if you put your Matrix ID as the state ID for any state event, only you or users with a power level higher than you can edit it.

Sadly this little trick (which we use for m.room.member events) doesn't work in the case of live location sharing, as the feature demands the ability to share location from multiple devices at once. Hence, trying to send two m.beacon_info events with the same state key would overwrite each other.

This MSC attempts to expand the functionality by modifying the definition so that a user "owns" a state event if the state key starts with their Matrix ID. Problem solved... for the most part!

Do check out the MSC if you have some use cases in mind that would benefit from something like this.

Continue readingโ€ฆ

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!