This Week in Matrix 2023-03-10

10.03.2023 20:36 — 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://spec.matrix.org/proposals.

MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Accepted MSCs:

Closed MSCs:

  • No MSCs were closed/rejected this week.

Spec Updates

Review this week from the SCT focused on the future of OIDC and logging in via a QR code (MSC3906) - a feature other platforms have and one I would love immensely. Fixing notifications (MSC3966, MSC3873, MSC3758, MSC3952, MSC3958) as per last week, as well as trying to finally get MSC2677 (spec'ing the current state of Annotations and Reactions) into FCP.

Random MSC of the Week

The random MSC of the week is... MSC3972: Lexicographical strings as an ordering mechanism!

While there already is an MSC for a top-level ordering of Spaces in use across some client implementations today (MSC3230), the algorithm recommended for clients to implement apparently has some consistency flaws, leading to edge cases. MSC3972 attempts to address this by providing a different algorithm that does not have these flaws. A real-world implementation of the algorithm is also available today in Kotlin at https://github.com/Dominaezzz/MatrixSort.

Neither of these algorithms have been merged to the spec yet, but this new MSC may finally push this conversation forwards! I recommend client developers give it a read and leave their feedback as Pull Request Review comments on the MSC.

Continue reading…

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…

Matrix v1.6 release

14.02.2023 17:04 — Releases Travis Ralston

Hey all,

Matrix 1.6 is out there! Like Matrix 1.5 back in November, this release is largely a maintenance update. Matrix 1.1 through 1.4 have been relatively major upgrades, so a little time between features doesn’t feel like a bad idea :)

As with all spec releases, we encourage implementations to gradually update over the next few months rather than have support for everything on release day - please be kind to the projects you use, and help them gain support if able.

Matrix 1.6 sees just 7 MSCs get merged, though this is to be expected from a maintenance release. Check out Matthew’s Matrix 2.0 talk at FOSDEM for an idea of what’s expected over the next few releases.

We’ve covered a couple of the MSCs below, but read on to the full changelog for the full picture.

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…

FOSDEM 2023: Matrix’s first physical devroom

09.02.2023 21:12 — conferences Thib
Last update: 09.02.2023 17:02

For the past two years, FOSDEM couldn’t happen in-person. Fortunately we could help, and Matrix hosted the world's largest free & open source software conference online! This year we were finally back in-person… but not only.

The set-up we have arranged in 2021 and polished in 2022 has proved to be robust and served us well during the pandemic. Returning to an in-person conference didn’t mean we had to throw it all away… quite the opposite!

Continue reading…