๐Ÿ“ข We are happy to launch The Matrix Conference on 20th-23rd October in Malmรถ, Sweden. Don't forget to get your ticket!

This Week in Matrix 2023-01-27

2023-01-27 โ€” This Week in Matrix โ€” Thib
Last update: 2023-01-27 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

2023-01-20 โ€” 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

2023-01-13 โ€” 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

2023-01-06 โ€” 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โ€ฆ

Matrix Community Year In Review 2022

2023-01-03 โ€” General โ€” Nico

Note: This was originally posted on https://blog.neko.dev/posts/matrix-year-in-review-2022.html , which also includes some small info boxes about each projects, which got lost in the translation.

As we send off 2022 with a bang, it makes sense to look back on what we did this year and where we want to go next year. In its holiday special post, the Matrix Foundation has been focusing on the core team's work. This post is focusing on the achievements of the community outside of the Matrix Foundation.

I tried to reach out to as many people I have seen do "stuff" on Matrix and have them write something they would see fitting for a year in review. Now, most people have better things to do between christmas and new years, so I hope you can excuse if some projects are missing. Also I probably forgot like half of the interesting people... HOWEVER! I hope you still enjoy what everyone wrote up. And don't forget to check out the official Matrix Holiday Update 2022 and of course read you weekly TWIM to keep up to date with any cool projects you find.

Continue readingโ€ฆ

The Matrix Holiday Update 2022

2022-12-25 โ€” General, Holiday Special โ€” Matthew Hodgson

Hi all,

2022 has been a rollercoaster of a year for Matrix.

On one hand, the network has doubled in size (44.1M to 80.3M visible matrix IDs). The wider world is having a grand awakening to the importance of decentralisation thanks to the situation at Twitter. Weโ€™ve seen an amazing number of major new players entering the Matrix ecosystem: Reddit appears to be building out new Chat functionality using Matrix; TeamSpeak announced Matrix-based chat in TS5; Discourse is working on adding Matrix support; Thunderbird launched Matrix support; Governments from Luxembourg to Ukraine have launched their own Matrix-powered chat infrastructure; and hundreds of other organisations ranging from startups to massive private & public sector entities are betting on the protocol. The European Parliament has used Matrix as a proof-point for the viability for communication interoperability between gatekeepers in the Digital Markets Act. FOSDEM 2022 ran smoothly via Matrix with over 23,000 attendees, making it the world's largest open source conference (with 70% of attendees using their own servers!). Sweden has published case studies on the benefits of Matrix for messaging interoperability. Meanwhile existing players like Germanyโ€™s BWI have expanded their scope to providing Matrix messaging to the whole German State; Automattic is busy building Matrix plugins for Wordpress; Rocket.Chat launched federation via Matrix, Gematik has been busy progressing their TI Messenger initiative for interoperable messaging within Germanyโ€™s healthcare industry, and Tchap in France is continuing to expand.

On the other hand, only a handful of these initiatives have resulted in funding reaching the core Matrix team. This is directly putting core Matrix development at risk. We are witnessing a classic tragedy of the commons. Weโ€™ve released all the foundational code of Matrix as permissively-licensed open source and got it to the point that anyone can successfully run it at scale themselves. The network is expanding exponentially. But in return, it transpires that the vast majority of these commercial deployments fail to contribute financially to the Matrix Foundation - whether by donating directly or supporting indirectly by working with Element, who fund the vast majority of core Matrix development today.

In short: folks love the amazing decentralised encrypted comms utopia of Matrix. But organisations also love that they can use it without having to pay anyone to develop or maintain it. This is completely unsustainable, and Element is now literally unable to fund the entirety of the Matrix Foundation on behalf of everyone else - and has had to lay off some of the folks working on the core team as a result.

Continue readingโ€ฆ

This Week in Matrix 2022-12-23

2022-12-23 โ€” 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!