Matrix Live πŸŽ™

Dept of Status of Matrix 🌑️

Matthew announces

https://arewep2pyet.com is finally here as a tracker for our progress on P2P Matrix

Dept of Spec πŸ“œ

TravisR 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

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've been largely looking at proposals which are at or near FCP in an effort to get them through the last stages of the process. We're also thinking about what the next release (v1.3) looks like and when we'll end up putting it out into the world. If you have MSCs which you'd like included, please stop by the #sct-office:matrix.org on Matrix with your suggestions - if they're near enough, we'll try to get them in.

Random MSC of the week

The script has elected MSC3391: Removing account data as the random MSC this week. It's a small but interesting MSC which helps clean up account data on the server when it's no longer needed, though how this sort of removal gets represented to clients can be a challenge. It's currently missing an implementation if someone is looking for a medium complexity contribution this weekend πŸ˜‰

The Chart

So many MSCs are in the open state, which is why we're continually looking at merging MSCs which are ready to go.

Dept of Servers 🏒

Synapse (website)

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

Brendan Abolivier reports

This week, we've released Synapse 1.56! It includes only a couple of new features but quite a few bug fixes and internal improvements. One of the main changes included in this version is that Synapse will now refuse to start if configured with open registration with no verification (e.g. email, recaptcha, etc). This is an attempt at reducing the likelihood of spam across the federation, as most cases of abuse we've observed over time usually involves the attacker(s) finding homeservers with open registration and automatically creating a lot of accounts on them in order to evade sanctions.

This version of Synapse also deprecates the groups/communities feature of Matrix. This is a feature we introduced back in 2017, and was the predecessor of Matrix spaces. But now that it has been mostly replaced by spaces, we have decided to retire this feature, which we thank dearly for its 4 years of good and loyal service to the federation.

Read all about this, and more, in the release announcement on the Matrix.org blog! πŸ™‚

Dendrite / gomatrixserverlib (website)

Second generation Matrix homeserver

neilalexander announces

This week we released Dendrite 0.8.0, which is primarily a feature release, and then Dendrite 0.8.1 which fixes an emergency bug. It's also a recommended upgrade if you are running a Dendrite deployment. It includes:

  • Support for presence has been added

    • Presence is not enabled by default
    • The global.presence.enable_inbound and global.presence.enable_outbound configuration options allow configuring inbound and outbound presence separately
  • Support for room upgrades via the /room/{roomID}/upgrade endpoint has been added (contributed by DavidSpenler, alexkursell)

  • Support for ignoring users has been added

  • Joined and invite user counts are now sent in the /sync room summaries

  • Queued federation and stale device list updates will now be staggered at startup over an up-to 2 minute warm-up period, rather than happening all at once

  • Memory pressure created by the sync notifier has been reduced

  • The EDU server component has now been removed, with the work being moved to more relevant components

  • It is now possible to set the power_level_content_override when creating a room to include power levels over 100

  • /send_join and /state responses will now not unmarshal the JSON twice

  • The stream event consumer for push notifications will no longer request membership events that are irrelevant

  • Appservices will no longer incorrectly receive state events twice

Our sytest compliance numbers are now:

  • Client-server APIs: 83%
  • Server-server APIs: 95%

As always, join us in #dendrite:matrix.org for more news and discussion.

Dept of Bridges πŸŒ‰

matrix-hookshot (website)

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

Half-Shot says

Matrix-Hookshot: The one with the widgets release

Hello webhook fans! As teased last week, configuration widgets have landed in hookshot! 1.4.0 now contains all you need to setup your very own webhooks without having to leave the comfort of your GUI. The plan is for widgets to be greatly expanded over the new few releases to support more services. Eventually, this work is going to propagate out to other matrix.org bridgey projects πŸŒ‰.

The full feature list for this release looks a bit like:

  • Add support for configuring generic webhooks via widgets. (#140)
  • Show the closing comments on closed GitHub PRs. (#262)
  • Webhooks created via !hookshot webhook now have their secret URLs sent to the admin room with the user, rather than posted in the bridged room. (#265)
  • Automatically link GitHub issues and pull requests when an issue number is mentioned (by default, using the # prefix). (#277)
  • Support GitLab release webhook events. (#278)

Update away, and let me know how you get on.

matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair reports:

A Matrix-KakaoTalk puppeting bridge.

Many updates this week! New features include:

  • Mentions & replies, both incoming & outgoing
    • Small exception: Matrix->KT replies don't yet work in KT "open channels" yet.
  • Ability to create a portal by inviting a KT puppet to a DM
    • Note that this currently only works for KT direct chat channels that already exist & have been active recently.
  • Connection resilience between the Python and Node components of the bridge
    • i.e. If the Node component ever exits & restarts, the Python component will reconnect to it automatically. This helps both with deployment (since it allows the components to be started in any order) and crash tolerance (since a Node crash & restart no longer requires a manual restart of the Python component)
  • Clear warnings when receiving a KT message that the bridge doesn't yet support

At this point, the bridge should be fairly usable now. Very soon I'll open a Matrix-bridged KT channel to act as a public stress-test!

Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues

Heisenbridge (website)

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

Release v1.11.0 πŸ₯³

  • Fixed retry behavior on startup to wait for HS startup
  • Ignore TAGMSG messages from IRC server
  • Fixed HTML messages not working as commands
  • Fixed room aliases in messages dropping the message completely
  • Upgrade to Mautrix 0.15

Just your typical bug fix release but this release also breaks support for homeservers not supporting the "v3" API path so if you run Synapse 1.47 or older the bridge will not start. Sorry.

Go and get some spring cleaning from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Dept of Clients πŸ“±

Thunderbird

freaktechnik reports

Thunderbird is a free open-source email, calendar & chat app.

The latest Thunderbird beta finally has Matrix support enabled by default. Get Thunderbird beta now to try it out. There have been many improvements to the Matrix implementation since the last update, including:

  • Almost complete end-to-end encryption support
  • Support for displaying formatted messages
  • .well-known home server discovery
  • Message redactions
  • Now all room invites let you respond
  • Lazy loading room members

Element Web/Desktop

kittykat reports

  • We removed skinning! It won’t be in the release this week, but will land in 2 weeks (roughly). If you notice bugs, please report them!
  • Threads Beta went into the RC!
  • Looking at a module system for extending functionality - if you have modules we haven’t talked about, come by #element-dev:matrix.org to let us know.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Work on video rooms continues, and we’re exploring how we can make them feel more native.

Syphon (website)

Chat with your privacy and freedom intact

0x1a8510f2 says

Syphon is a Matrix client with heavy emphasis on privacy and ease of use; currently in open alpha.

Hi all πŸ‘‹.

We released 0.2.13 this week mainly fixing an annoying bug that could cause messages sent while a configured proxy server was down to be re-sent multiple times once the proxy came back online. If you use a proxy with Syphon, this update is highly recommended!

In addition, this release will only show the option to use hidden read receipts if the feature is supported by your server.

Finally, a range of translation updates and improvements are included in this release.

More changes are coming soon, including a (currently work-in-progress) implementation of MSC2228 (self destructing events). As far as we know, we're on track to be the first user-facing implementation of this MSC, putting Syphon on the bleeding edge of Matrix!

Nheko (website)

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

Nico reports

Thanks to the awesome polyjuice client, Nheko now supports MSC3700, which slightly improves privacy in encrypted rooms. It also lead to us fixing issues with the secure symmetric secret storage, where some clients use a different base64 encoding than recommended in the spec, which could make unlocking the secrets with a recovery key or passphrase fail. And we also improved the key queries on initial login, which would sometimes fail to_device messages with a warning, that the device is unknown.

As a small feature, you can now close the currently open room using Ctrl-W, spaces are not treated as DMs under some circumstances anymore, you should get a less confusing error message than 500 when entering an invalid alias now and lots of fixes to the translations.

Thank you, LorenDB, Apurv and Mikaela for the contributions!

Hydrogen (website)

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

Bruno reports

Have released the SDK, v0.0.10 with custom tiles support. Calls and theming are getting closer, the latter we were planning to release this week but hit a blocker for theming support in develop mode, so we'll have to postpone to next week.

Element iOS (website)

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

Manu announces

  • Considering dropping support for iOS12 - this will impact 0.9% of sessions. Requiring iOS 13 or newer will allow us to use SwiftUI libraries.
  • You will be able to opt in to threads in the next release (currently in testing), alongside updates to room preview on long press in room list, ability to share any location and support for more languages

Element Android (website)

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

benoit reports

  • Release candidate 1.4.11 is currently available on the PlayStore if you are a tester. Should be pushed to production next Monday! F-Droid publication is in progress too. Learn more about the full release content here: https://github.com/vector-im/element-android/releases
  • Add banner to timeline when location sharing is running. Live Location Sharing (a.k.a. LLS) is still a work in progress and not available in the Element app yet.
  • Improved unit test coverage (especially around login with MXID)
  • Improved how threads look in the main timeline
  • Add notification for users to opt in to threads
  • Polishing around spaces to bring them into line with latest designs
  • Hotfix for leaving all rooms in a space without leaving the DMs. The hotfix is included in the release candidate 1.4.11.
  • We are considering modifying our rules to format source code. We will try to limit the impact on forks, but it will not be easy.

Dept of Non Chat Clients πŸŽ›οΈ

Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr reports

Since last time, we've made a lot of small quality-of-life improvements, but a few changes that stand out are:

  1. We've improved support for offline PWA usage.
  2. We've improved caching of space contents, reducing the number of times that we need to hit the spaceHierarchy endpoint and improving performance.
  3. We've moved to a more in-the-spirit-of-the-spec way of handling hidden annotations: these are now represented by rooms with an m.space.parent event, and no correpsponding m.space.child event in the resource-space.
  4. We've added a modal for viewing image messages at full-size.

Number 4 works nicely with my teaching-assistant-bot (built with matrix-bot-sdk, mathjs, and chartjs), which helps me visualize information about student activity.

MSC3752 - Markup Locations for Text, has also filled out quite a bit! Implementation coming soon hopefully.

As always, if you'd like to learn more, or talk about the future of social annotation at matrix, come join us at #opentower:matrix.org!

Matrix Highlight (website)

A decentralized and federated way of annotating the web based on Matrix.

Daniel announces

Matrix highlight saw some "under the hood" changes this week, in particular a refactor to rely less on the Chrome/Firefox extension API. This should make it possible (in theory, and with some more work) to run Matrix Highlight on pages without installing anything! Aside from the obvious, I think that there are additional use cases opened up by this change; one such case I have in mind is as a commenting system on a site (a la cactus comments, but with the ability to highlight page snippets!).

In the process of all of this, I've spent some time running Matrix Highlight in Firefox. I've encountered no issues during this time, so it seems like the tool is usable from FF, too.

Dept of SDKs and Frameworks 🧰

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict reports

Trixnity 2.0.0-RC1 has been released. This release candidate contains many breaking changes due to a large refactoring, which allows us to share a lot code between server and client implementations of the Matrix APIs. Yes, that means Trixnity can be used to implement a matrix server! We also made some progress to make the client module (with all the high level logic) multiplaform. This is the only module, which does not support Kotlin/Native and Kotlin/JS yet. There are many other features (like client-side notifications!), which has been added. See the changelog for more details:

features/improvements:

  • clientserverapi-server: new module for server-side REST endpoints of the Client-Server-API (Server-Server-API will follow soon)
  • olm: libolm is bundled into trixnity-olm jars
  • client: push notification support (push rules are evaluated)
  • client: introduce helpers to get complete timeline as flow (no more complicated loops to get the timeline)
  • client: allow subscribing to all timeline events -> really helpful for bots with e2e support
  • client: allow to sync once (e. g. for push notifications)
  • client: content field of TimelineEvent gets also set for unencrypted events
  • client: public access to keys
  • clientserverapi-model: allow custom field in pusher data
  • core: introduce BaseEventContentSerializerMappings

bugfixes:

  • client: remove direct room, when other user leaves room
  • client: change varchar length to support MariaDB
  • clientserverapi-client: first sync after pause without timeout

simplematrixbotlib (website)

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

krazykirby99999 says:

An easy to use bot library for the Matrix ecosystem written in Python. https://matrix.to/#/#simplematrixbotlib:matrix.org

Version v2.6.3 Released!

2022-04-06 5f54f69

Notes:
  • The command matcher now has support for case-insensitive matches.
Additions:
  • Add case insensitive option to command matcher
Modifications
  • Update Pillow Dependency to version 9.0.1
Removals:
  • None
Deprecations
  • None

Polyjuice (website)

Elixir libraries related to the Matrix communications protocol.

uhoreg announces

Polyjuice Client Test is a testing tool for Matrix clients. Since the last TWIM update,

  • two new tests have been added: key history sharing (MSC3061) and no plaintext sender key (MSC3700).
  • more clients endpoints have been implemented or stubbed. This has improved compatibility with some Matrix clients, and reduced noise in the logs.
  • the deployment at https://test.uhoreg.ca/ now automatically runs the latest version from git. This Matrix-based continuous deployment is powered by another personal side-project, which will be revealed in the future.
  • the UI is now significant less ugly (unless you hate purple, in which case you may find it more ugly).
  • #polyjuice:uhoreg.ca now exists for discussing anything related to the Polyjuice project

Dept of Ping πŸ“

Dept of Ping will return!

That's all I know 🏁

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

The Foundation needs you

The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.

It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.

Support us