Ben Parsons

175 posts tagged with "Ben Parsons" (See all Author)

This Week in Matrix 2022-04-14

14.04.2022 19:16 β€” This Week in Matrix β€” Ben Parsons
Last update: 14.04.2022 19:10

πŸ”—Dept of Servers 🏒

πŸ”—Conduit (website)

cel says

  • Gained v9 room support on next branch: https://gitlab.com/famedly/conduit/-/merge_requests/257
    • Binaries available here: https://gitlab.com/famedly/conduit/-/blob/next/DEPLOY.md#installing-conduit
    • v9 rooms enable private rooms to allow access to members of a Space or other room without a separate invite.

πŸ”—Synapse (website)

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

dmr reports

Hello everyone. This week the Synapse team cut a release candidate for Synapse 1.57. It contains:

As ever, our warmest thanks to to our contributors for sharing their time, effort and expertise with the project. We look forward to seeing your work in the wild, come the 1.57 release proper on Tuesday the 19th of April.

On develop, we have been powering through a number of different tasks:

Speaking personally, my efforts to manage Synapse's dependencies using poetry are coming to a close. As I write this, I've just submitted my last (planned!) PR for this project. It's been several months in progress now, and there were many moving parts; some unexpected bugs in poetry and even one in pip; plus a heck of a lot of CI config to change and understand. My sincere thanks to the broader Synapse team for their help in getting the last batch of changes made, reviewed and merged. Once this is all said and done I hope we'll all reap the benefits of

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-hookshot 1.5.0 (website)

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

Half-Shot reports

Hey webhook-consuming-people! The hookshot webhook bridge 1.5.0 update has now been released. This release is a bit softer than 1.4.0, containing some smaller features and bugfixes. Thanks to everyone who contributed!. The highlights are:

  • Allow specifying msgtype for generic webhook transformations. (#282)
  • Add new GitHubRepo config optionnewIssue.labels which allows admins to automatically set labels on new issues. (#292)
  • Allow priority ordering of connection command handling by setting apriority: number key in the state event content. (#293)
  • Support GitLabpush webhook events (#306)

The matrix-docker-ansible-deploy playbooks have also been updated to be 1.5.0 compatible :)

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair reports:

A Matrix-KakaoTalk puppeting bridge.

This week brings many new features:

  • KT<-> Matrix message deletion/redaction
    • Note that KT doesn't allow deleting a message if it's too old, so Matrix->KT redactions will fail for old messages.
  • KT->Matrix user name/avatar live updates
    • As opposed to only being updated on backfill / manual sync
  • KT<->Matrix read receipts
    • Caveat: KT->Matrix read receipts are only updated live, not on backfill / manual sync
  • KT->Matrix member join/leave
    • Only joins were tested so far, but leaves should work too
  • KT<->Matrix admin status / power levels
  • KT->Matrix channel name, description, and cover photo
  • General stability & usability improvements
  • systemd setup instructions

I've also launched an instance of the bridge & opened a public portal room for testing purposes:

Logging in to my bridge instance is restricted, but Matrix users can still join the room thanks to the magic of relaying!

At this point, I'd say the bridge is now fairly usable. Please try self-hosting if interested!

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

πŸ”—Dept of Clients πŸ“±

Matthew reports

A new GTK4 matrix client called gotktrix surfaced on HN, written in Go with a bespoke matrix client SDK implementation. Looks impressive!

πŸ”—Nheko (website)

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

Nico reports

After a long and arduous journey, LorenDB's dbus interface for Nheko got finally merged. Currently this allows you to list rooms as well as switch between them. In the future we might add simple messaging support, so that you can automatically send messages into specific rooms using scripts. The API is disabled by default, since it is not authenticated. Enable it at your own risk!

Another long standing PR, that finally got merged, was MTRNord (they/them)'s support for pretty power level formatting. Nheko can now tell you what changed in a power level instead of just telling you that it changed. This should make them much more accessible to users, that don't like looking at the raw event source all the time (weird, eh?).

The image viewer should also be more reliable now and notification counts should be correct after a restart.

We have also been playing around with qt6 support. At this point we have a working Qt6 branch, with a few functional regressions:

  • No voip (gstreamer has no Qt6 support yet)
  • No drop shadows on buttons
  • No switchable color schemes

So far Qt6 looks pretty great and seems to fix a lot of the minor annoyances.

We are also still looking for some student or interested individuum to take part in the Google Summer of Code and improve the call support in Nheko! Deadline is drawing close, so if you intend to apply, better work on your proposal quickly! If you need any feedback for your proposal, feel free to DM me and ask me to review it/questions. I'm looking forward to someone applying! <3

Anyway, merry christmas everyone or whatever you are celebrating this weekend!

πŸ”—Element Web/Desktop (website)

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

kittykat announces

  • Threads Beta is live, find it in Labs!
    • As always, check it out and let us know what you think.
  • We’re aligning on a style guide and a new module system (links will be shared once both are finalised)
  • Added our first Cypress test - this will improve how we create and run e2e (end to end) tests. The tests will continue to be run by CI.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Continuing to get a native lobby screen for video rooms together

πŸ”—Element iOS (website)

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

Manu announces

  • We will inform users in the next release that we will no longer support iOS12 and 13. It will be effective the release after, i.e. April 25th.
  • We had a big drop on UTDs (Unable to Decrypt errors) since 1.8.8.
  • We are setting up the ElementX-iOS project to rewrite the Element-iOS app. It will be based on SwiftUI and the Matrix Rust SDK. The roadmap is available here.

πŸ”—Element Android (website)

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

kittykat says

  • Element 1.4.11 is available on the PlayStore and on F-Droid. Release notes: https://github.com/vector-im/element-android/releases
  • We may experience some delays in shipping the app through the Android PlayStore as we are in discussions about whether not decrypted messages should be reportable
  • Cleanup to the SDK API has landed on develop - this will help with generating API documentation and migrating to the Rust SDK
  • Roadmap for migration to the Rust SDK

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

kittykat announces

Threaded Messaging

  • Exciting news this week; the Threads Beta is live on all platforms! If you haven’t seen Threads yet, head to Settings > Labs and check it out.
    • Please note; If your homeserver doesn’t yet support threads functionality you may not see the beta, or your experience will be degraded. If this applies to you, you’ll see a warning message before you activate Threads.
  • The team is continuing to squash bugs and improve performance, we’ve also started working on the next improvements…
  • Notifications and badges are top of mind for us next. We need to ensure accuracy of badge counters and consistency between platforms (if you use more than one). We’re looking at this now so keep your eyes peeled for our upcoming MSCs.

Community testing sessions

  • We are restarting our testing sessions! Join #element-community-testing:matrix.org to take part
  • We are trying out a new asynchronous format with office hours for discussion to enable more people to be involved

πŸ”—Dept of Encryption πŸ”

πŸ”—libolm

uhoreg reports:

libolm 3.2.11 has been released. This release mainly features improvements to the Objective-C and Java bindings, but also fixes building of the documentation, which was broken for quite a while. For more details, see the release notes.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—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 says

Over the last two weeks, we have been busy working towards the 0.6.0 crates.io release of Ruma. If things go to plan, it should be published in the coming weeks (but no promises). That means mostly finishing some large refactorings, but we also got some bug fixes in, as well as a number of convenience functions for working with certain events:

πŸ”—Dept of Internet of Things πŸ’‘

πŸ”—HASSkbot - Home-Assistant ask bot

Oleg reports

HASSkbot can be used to control an action in Home-Assistant via Matrix reactions.

It's an Opsdroid bot, which reacts to a home-assistant entity state change (like person leaving a zone) and asks for confirmation in Matrix if it should run additional home-assistant automation. Matrix reactions are used for confirming or canceling an action.

πŸ”—Dept of Bots πŸ€–

Arya K reports

Merseklo is now out of beta it is a moderation bot for matrix written in pure bash with the only deps being jq and curl

πŸ”—Honoroit (website)

A Matrix helpdesk bot

Aine reports

benpa is back in town and I can't keep silence: here is a small update on Honoroit - v0.9.6 comes with "stable spaces" support that will work with new versions of element (yes, even on Element Android from F-Droid).

Go check the source code and say hi in the #honoroit:etke.cc

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—DWeb Camp

cel reports

DWeb Camp 2022 website and registration launched: https://dwebcamp.org/

  • August 22-24 BUILD; August 24-28 CAMP; Aug 28-29 TAKE DOWN.
  • Camp Navarro, CA, USA
  • Announcement: https://matrix.to/#/!WBhcGXTDMlzyTPWoJv:matrix.org/$164991727237835sdywy:matrix.org
  • Volunteer: https://dwebcamp.org/participate/
  • Apply for fellowship: https://dwebcamp.org/fellowships/
  • Sponsor: PDF

DWeb Camp is a gathering hosted by Internet Archive and volunteers dedicated to Decentralized/Distributed web projects. Previously it happened in 2019, and Matrix had some presence there. Maybe people from Matrix projects and/or Matrix.org will be there this year?

πŸ”—That's all I know 🏁

Come back next week for a much restored TWIM! With Matrix Live, Spec updates, Dept of Ping and so on. :D

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

This Week in Matrix 2022-04-08

08.04.2022 19:27 β€” This Week in Matrix β€” Ben Parsons

πŸ”—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!

This Week in Matrix 2021-09-10

10.09.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

Chatting with Manu about iOS, Mobile, team growth and more. See video description for agenda!

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Incoming security fix

As just blogged there is an important security fix coming for several Matrix clients. More news, and patched versions will be announced on Monday. Though there is no evidence this vulnerability has been exploited, please be ready to upgrade on Monday.

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa announced:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

Lots of new MSCs this week. Thanks to everyone contributing!

πŸ”—Random Spec of the Week

The random spec of the week is... MSC2832: HS -> AS authorization header!

I'm actually surprised myself that this wasn't part of the spec already! Looks like it would be a nice to-do to get this implemented and then checked off by approvers. Anyone want to submit some PRs to HS and AS implementations? πŸ™‚

2021-09-10-3GWdT-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Dimension

TravisR said:

Dimension, an integration manager alternative for Element, got a refresh from @TimeWalker to bring the project up to modern day standards. Please give it a go if you've been running Dimension, and report bugs if there's problems! While I haven't personally had time to maintain it as much as I'd like, it's great to see people taking on 3 year old bad code and fixing it πŸ˜„

For TWIM readers, Dimension is an "integration manager" that replaces the default one shipped with Element. It's not entirely mobile-ready yet, but does give a user interface for managing various bots, bridges, and widgets. In practice, an integration manager isn't needed as most bots and bridges (and even widgets) can be set up without an integrations manager, like all of https://t2bot.io/ (ironically, given Dimension was originally targeted at t2bot.io). People do still use it though to configure self-hosted platforms with their very own Element, Synapse, bridges, and bots.

While I still probably won't have much time personally to maintain it, PRs are certainly accepted. Dimension is a bit complex to work within and test, but people in #dimension:t2bot.io should be able to help out.

πŸ”—Synapse 1.42.0

callahad told us:

Synapse 1.42.0 is out now! This release includes support for Room Version 9, which fixes an issue with Version 8's support for restricted rooms. We also implement a bunch of new MSCs (including MSC3231: Token authenticated registration by Callum Brown as part of his Google Summer of Code project), improve efficiency, and sidestep a longstanding issue with users getting stuck in unsupported room versions. Read the announcement for details!

πŸ”—Sydent

This week saw the release of Sydent 2.4 which finally implements MSC2265: mandating case folding when processing e-mail address local parts. After upgrading, Sydent administrators must manually run a script to retroactively case-fold existing email addresses in the Sydent database.

This Sydent release also includes support for Jinja2 templating, a complete overhaul of our CI/CD pipeline, and a comprehensive update to the codebase to follow modern Python practices including the addition of mypy type hints throughout.

Lastly, we'd like to welcome Shay to the Backend Team at Element. Her work as an Outreachy intern paved the way for the recent improvements to Sygnal and Sydent. Thanks, Shay, and welcome aboard!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

And another week, another Kubernetes Helm Chart update, this time seeing matrix-synapse updated to 1.42.0 - as well as a whole lot of fixes to support the new ingress object version introduced in Kubernetes 1.19

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-appservice-bridge reaches 3.0.0!

Half-Shot told us:

Hi folks, we're massively pleased to announce the third major release of the TS/JS bridging library matrix-appservice-bridge. This release contains several large breaking changes to the previous way of life, most notably we have stopped using the matrix-js-sdk for most of our code, instead using the matrix-bot-sdk (Hi TravisR , we see you up there!).

There are several reasons why we went this way:

  • Notably, this library focuses work on simply implementing APIs and bridge/bot logic. There is no additional cruft to support client use-cases or browsers.

  • It's historically had a brilliant coverage of the CS and AS APIs, and has been extremely flexible to add new stable and unstable APIs to it.

  • At the start of this project, it was the only library with a complete Typescript coverage. Typescript types continue to be extremely useful to us.

  • We're hoping to make use of the upcoming encrypted appservices support, to replace the slightly janky pantalaimon support the bridge library currently uses.

Thanks to Travis and the matrix.org bridge team for working through these changes!

There are a bunch of common sense improvements that break API compatibility in this release also, so please be sure to check them out and update. We don't anticipate supporting 2.X except for extreme circumstances.

Finally, we'll be updating the matrix-org suite of bridges over the coming weeks so please watch for bugs and let us know how we're doing!

πŸ”—Dept of Clients πŸ“±

πŸ”—SchildiChat for Android

SpiritCroc announced:

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.

After a couple of weeks/months of internal testing and public beta testing, the latest stable version (1.2.0.sc42) now supports UnifiedPush!

This means that you can now choose your own push provider, if you do not want to use Google's FCM push notifications. Huge thanks to @sim_g:matrix.org for working on this!

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) said:

You might remember my short story from last TWIM about the race between different translators? Seems like that one was good enough to motivate a few people to contribute translations. While those don't seem to be 100% complete yet, we saw a significant jump in translation percentages (especially Portuguese), so thank you to everyone who contributed to that!

Thulinma also made the whole userprofile scrollable, which improves the experience on small screens a lot. He also implemented message deduplication by event id, which is required by the spec to be done on the client side. This fixes a lot of duplicates when using conduit and your join event appearing 2~3 times on synapse.

We also fixed an issue with how different homeservers update one time key counts and added some additional code to remove old one time keys, if we ever uploaded to many (which might have happened in the past in a few edge cases). We also now escape img tags in usernames correctly in more places, redundant date separators when paginating back in a room should not appear anymore and tastytea decreased the margins on blockquotes, so that they look less jarring and take up less space.

πŸ”—Fractal

Alexandre Franke announced:

So many merged requests have been merged since our previous update two weeks ago that I can’t even 😲.

The biggest news is that multi-account support landed in fractal-next (don’t be fooled by the title of the MR, it’s more than just a widget!). I feel like this is one of the most requested features across all clients, yet not many have it yet, and I’m ecstatic that we’re joining them πŸŽ‰. This work was done as part of GSoC by Alejandro under the mentorship of Julian πŸ‘.

2021-09-10-oMAP5-image.png

Kai made it so that rooms are sorted by activity in fractal-next, like they already are in stable βœ”οΈ. He also fixed module inception, for better code quality πŸ›.

Julian landed a whole bunch of changes ❗️ He added scrolling and a scroll to bottom button, fixed keyboard shortcuts and a wrapping issue with long β€œwords” that caused the timeline to jump to a wider size. But all this pales in comparison to loading previous events 🀯

πŸ”—Element Clients

Updates from the teams.

Delight team

  • Testing and polishing of Spaces.
  • Room version 9 will be marked as the preferred version for MSC3083 restricted rooms on matrix.org and released in Synapse 1.43.

Web

  • Released Element Web 1.8.3 RC2.
  • Pushing forward with threads, improving on our Labs prototype. We’re exploring what backend and spec changes we will need to support threads robustly.
  • Cross-signing bug fixes.

iOS

  • 1.5.3 is available on TestFlight. It will be released on Monday with:
    • Startup optimisation. The duration is divided by 3 or 4
    • Media size selection on sending: the option must be enabled from settings
    • URL preview under a LABS setting
  • We made good progress on SwiftUI screen templates. We will be able to use them soon for real views or screens
  • Better app navigation is still in progress

2021-09-10-P1Hi4-ima_cfb17e8.png

Android

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-bot-sdk

TravisR offered:

v0.6.0-beta.2 has been published of matrix-bot-sdk as an early version to support encryption on bots and improvements to appservices. It's a bit self-directed to figure out how it works, but #matrix-bot-sdk:t2bot.io is available to try and help out.

Please give it a go and report bugs. The final v0.6.0 release is expected to contain not only encryption support for bots, but also appservices and real documentation. For now though, it's just the bots.

πŸ”—MRSBFH - Matrix-Rust-SDK-Bot-Framework-Helper

MTRNord announced:

After 6 Months I finally got a use for this again so I finally did update this.

Basically everything as before but now including recent tokio, recent (stable) matrix-rust-sdk and rust edition 2021.

Source as before over at https://github.com/MTRNord/mrsbfh

πŸ”—Dept of Bots πŸ€–

πŸ”—Mother Miounne v1.0.0 is here

Aine said:

Miounne? What is it?

It's an "automation backend" bot of etke.cc and has following features:

  • send html forms from your website directly to matrix

  • manage matrix-registration invite tokens in matrix chat

Miounne hits first stable release. I already shared some info about it here some time ago... but now it's stable! Source code has 83+% of unit tests coverage and some bizarre bug have been fixed.

Besides, now you can use pinned version of the bot (docker registry)

PS: we have #miounne:etke.cc room to discuss (whine) and post updates about it

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Patience

Ryan announced:

Patience, a full stack integration testing approach for Matrix clients and servers, has added initial support for Hydrogen this week. As it already supported Element Web, we now have a (basic) system for testing multiple clients together which is taking shape! πŸ₯³ From here, we plan to add configuration options to express the permutations of clients you want to test together.

This project is still in its early stages, but we hope to eventually have support for many different clients and then use it to test common flows like user verification, which can differ quite a lot across clients. If you're interested in this topic, feel free to join the new #matrix-patience:matrix.org room.

2021-09-10-Vd4Jl-example.png

πŸ”—Final Thoughts πŸ’­

Someone has been making Matrix fanfic! I'm not sure how federation ties in, and for some reason they feature rubber duck debugging at one point but otherwise it looks fun :) https://www.youtube.com/watch?v=9ix7TUGVYIo

πŸ”—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
1envs.net470.5
2trolla.us597
3boba.best612.5
4helderferreira.io878
5stewart.zone1001
6xerbo.net1344
7dolphincastle.com1575
8matrix.org1899
9spooks.cyou1987.5
10nheko.im2050

πŸ”—#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
1tomsmeding.com208
2weasy-is-my.name278.5
3dendrite.nordgedanken.dev294
4sspaeth.de296
5vtilburg.net559
6jae.su569
7mtr.ceph3.us957.5
8caughtquick.tech1120

πŸ”—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 2021-09-03

03.09.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

We forgot to mention that Doug is also the creator of Watch the Matrix! https://github.com/pixlwave/Watch-The-Matrix This allows you to use your Apple Watch as a native client (rather than through another iDevice)

These fellows all recently started to work for Element, and (claim!) to enjoy it. Element are HIRING, so if YOU think think you'd like to apply, check out https://apply.workable.com/elementio/ for current listings and details of how to apply.

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Conduit Beta released

Conduit is a Matrix homeserver written in Rust https://conduit.rs

timokoesters announced:

We finally did it! We released Conduit Beta: https://conduit.rs/release-0-2-0, we even made it to the Hacker News frontpage: https://news.ycombinator.com/front?day=2021-09-02

This is huge news for us and hopefully we will see a lot more Conduit instances pop up in the near future.

Thanks everyone!

Congratulations to Timo and the gang, you're making superb progress!

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa said:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

Obsolete MSCs:

Abandoned MSCs:

πŸ”—Spec Updates

You may be wondering: what's up with all of these abandoned MSCs?? The answer is that the matrix-org/matrix-doc repo changed its base branch to main to help preserve the git history since the spec website rewrite. In doing so, all PRs were automatically updated to the new base branch by github... except those that were coming from deleted users and repos. Those ones were simply closed!

But as they seemed to be have been effectively abandoned by their authors, it was more of a cleanup than an accident. However, if your MSC was affected by this change and you would like to continue it, please contact someone in the #matrix-spec-office:matrix.org and we'll help you out.

πŸ”—Random Spec of the Week

The random spec of this week is... MSC2448: Using BlurHash as a Placeholder for Matrix Media!

MSC2448 defines a way for clients to include a "blurhash", or a short, textual representation of a blurred version of an image, inside events which other clients can show while waiting for thumbnails to download from media servers. This replaces the potentially blank space while an image's thumbnail is loading with a (IMO) beautiful alternative!

Yes I wrote this MSC... but I swear it's what the script picked! We do not question the script!!

2021-09-03-X2UAA-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad said:

Two big notes this week:

  1. Synapse 1.41.1 is out and it contains patches for two security vulnerabilities which could inappropriately disclose private room metadata to unauthorized users on a participating homeserver. Please upgrade.

  2. Room Version 9 is coming in Synapse 1.42 next week. This version fixes an oversight in which event fields are protected from redaction in room version 8, making it possible for restricted rooms to break if a join event is redacted. Because event IDs are based on the redaction algorithm, we can't fix this without creating a new room version.

    In the interest of compatibility across the federation, Synapse 1.42 will still instruct clients to create restricted rooms using room version 8. Synapse 1.43, scheduled for release on 21 September, will begin instructing clients to use room version 9 instead.

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace announced:

And yet again another week of Kubernetes updates, my Helm Charts now have element-web on 1.8.2 and matrix-synapse on 1.41.1

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—GitHub Discussions in Matrix

Half-Shot told us:

Hey folks! I had some spare time today so I've invested it into the matrix-github bridge. The latest work is GitHub discussions support. It's still needs a bit more testing / minor feature implementation, but I leave you with a screenshot below of how it currently integrates spaces!

2021-09-03-VNjap-image.png

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

We had a race between 3 Translators this week. All 3 of them were trying really hard, so in my opinion every placement is a first place, buuuuuut Thulinma actually came first by bringing the Dutch translation from 5% to 100%. A few hours later Priit came in as a close second updating the Estonian translation to 100%. ISSOtm noticed that and tried to catch up which resulted in a 3rd place finish for the French translation. Now I understand the excitement people feel watching others compete in sports without having to do anything themselves!

red_sky (nheko.im) meanwhile fought a much more difficult enemy, Apple documentation and code signing! To be honest, I expected him to be beaten, but Nheko's DMGs are now actually properly signed and notarized. So if you are on macOS, you should now see less ugly warnings when installing Nheko. All nightlies building of the master branch are signed as well as our future releases.

In more community contributions, resolritter fixed the right click menu not working on replies. So you can copy a link from a reply now by right-clicking it without having to scroll up. Thulinma fixed window alerts not working when using conduit, because Conduit does not implement the /notifications endpoint Nheko uses and he helped me debug and fix device lists not showing up when using Conduit as well as sessions always getting rotated in "Send encrypted messages to verified devices only" mode.

In our work to stabilize E2EE we also now require a proper secrets daemon running on Linux (and other platforms, but there it is always provided by the OS). This is used to store the pickle key as well as the cross-signing secrets, so that an attacker can't read the from the config file. We already used such a daemon before, but we failed silently and we didn't use it for the pickle key until now. So if this prevents you from running Nheko, please open an issue so that we can work on a solution. Those APIs can be really fickle so additional testing and feedback would help us out a lot!

Also exciting is that Nheko now supports playing encrypted audio and video files without storing a temporary unencrypted copy on disk as well as animated images like WebP and GIF! It took us a while to figure out a proper solution, but now you can send animated stickers and you will finally be able to understand why other people were lauging at still images. (We also had to fix some bugs in our sticker editor, where we didn't add the mimetype to the sticker info for that.)

Some more embarrassing news, I didn't know I was a moderator in #conduit:fachschaften.org, so I happily pinged everyone in the room while discussing room mentions. To prevent that from happening in the future, Nheko now shows a red warning above the message input if you will be pinging the whole room to give you time to reconsider. If that is not enough to stop me from doing that, we might require confirmation before sending such messages in the future, but so far this seems to work. Pinging everyone by accident can really scare you and composing a message in Matrix shouldn't be scary!

I hope I didn't forget anything and please make sure you check out Conduit, since they are doing a great job in revealing bugs in Nheko!

πŸ”—FluffyChat

FluffyChat is the cutest cross-platform matrix client. It is available for Android, iOS, Web and Desktop.

krille announced:

FluffyChat 0.39.0 has been released

This release fixes a bug which makes it impossible to send images in unencrypted rooms. It also implements a complete new designed new chat page which now uses a QR code based workflow to start a new chat.

  • feat: Dismiss keyboard on scroll in iOS

  • feat: Implement QR code scanner

  • feat: New design for new chat page

  • feat: Use the stripped body for notifications and room previews

  • feat: Send on enter configuration for mobile devices

  • fix: Prefix of notification text

  • fix: Display space as room if it contains unread events in timeline

  • fix: missing null check

  • fix: Open matrix.to urls

  • fix: Padding and colors

  • fix: Sharing invite link

  • fix: Unread bubbles on iOS

  • fix: Sending images in unencrypted rooms

2021-09-03-8UQ-K-scaled_screenshot_20210829-113804.jpg

πŸ”—Element Clients

Updates from the teams.

Delight team

  • Testing and polishing of Spaces.

Web

  • Released Element Web 1.8.2
  • We’ve added an early, incomplete prototype of Threads to Labs
  • Bug fixes

iOS

  • App startup has been improved by x3 by lazy loading room messages and read receipts
  • Element-iOS is now iOS12 minimum. Code have been cleaned up
  • URL preview is still in progress but it should be available in the next release, 1.5.3
  • SwiftUI: There is now a target to run the Xcode project without the MatrixSDK to speedup SwiftUI preview. This is the first piece for the coming new screen templates

Android

  • Working on upgrading Android Gradle Plugin to 7.0.2 and other dependencies.
  • Set up GitHub actions and reduce the number of tasks run by Buildkite
  • Spaces PRs are merged one by one to develop, the feature will be available in the coming releases
  • Working on crypto: dehydrated devices, Olm fallback keys

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Simple-Matrix-Bot-Lib

krazykirby99999 offered:

πŸ”—Version 2.1.0 Released!

This version of the simplematrixbotlib package adds the ability to send messages formatted in markdown via the bot.api.send_markdown_message() method. Example usage is shown below:

#### Respond to all messages from users with a hello world message that involves markdown formatting

import simplematrixbotlib as botlib

creds = botlib.Creds("https://home.server", "user", "pass")

bot = botlib.Bot(creds)

@bot.on_message_event

async def hello_world_md(room, message):
    match = botlib.MessageMatch(room, message, bot)

    markdown_message = "# Hello World from [simplematrixbotlib](https://github.com/KrazyKirby99999/simple-matrix-bot-lib)!"
    if match.is_not_from_this_bot():

        await bot.api.send_markdown_message(
            room_id=room.room_id,

            message=markdown_message)

bot.run()

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Circles

cvwright announced:

Circles is a project to build a secure, end-to-end encrypted social network, using Matrix as the foundation.

πŸ”—News

We're getting very close to a real App Store launch. The latest beta release this week is 0.98 This version might be The One! So please, if you haven't tried Circles in a while, give this one a shot. Also please share the link with any friends and family who you think might be interested. The current signup token has plenty of slots for everyone.

If you want to see some activity in your circles, invite me to follow your Community circle and I'll invite you to follow back. I'm @cvwright:kombucha.social.

πŸ”—WARNING

If you've been using Circles with your own (non-Kombucha) server, you probably DO NOT WANT this version. Support for bring-your-own-server will return very soon after our App Store launch.

πŸ”—Latest updates

  • Broke and then re-enabled new account signup. Thanks to everyone who helped diagnose this one, and sorry if you were unable to sign up using a recent build.

  • Fixed a weeks-old bug where posting a message into a circle would then send you back to your list of all your social circles. Big thanks to Yosef for bringing this to my attention.

  • Fixed a bug in recent 0.9x builds where the Matrix rooms underlying circles and groups were being created with invalid encryption parameters. If you've been unable to post anything, this is the likely culprit. The fix is to update to the latest build, then delete your old circles/groups and create new ones.

  • We have a new icon. It's blue! I was worried that Apple might think the old icon looked too much like the Apple Photos icon.

  • New and improved interface for managing your account information. Added support for changing your password and for deactivating your account. I hope you never want this last one, but Apple requires it for apps that allow you to create accounts.

  • Removed support for Markdown formatting in posts and image captions. This is a sad one, but unfortunately the performance of the open source library that we were using for Markdown just wasn't up to the task. On the bright side, our timelines load much more quickly now, and the scrolling should be much smoother. Look for Markdown support to return with the release of iOS 15 later this year.

  • Another update to the Recent Activity list. Now it should refresh itself automatically if/when it initially comes up empty.

  • Improved layout and usability on iPad.

πŸ”—CoMatrix - Constrained Matrix

tobi reported:

The CoMatrix project enables the usage of the Matrix protocol (more precisely Matrix Client-Server API) for constrained IoT devices via CoAP and CBOR in a constrained network (e.g. a 802.15.4/6LoWPAN network).

CoMatrix provides a gateway, which ports Matrix to CoAP/CBOR/(DTLS). This gateway communicates with constrained IoT devices on one side via CoAP+CBOR and translates to the Matrix protocol on the other side (i.e. HTTP+JSON). CoMatrix also provides a client library (for RIOT-OS) which is a starting point to implement CoMatrix clients (for constrained devices) which are able to interact with Matrix homeservers via the gateway.

Currently CoMatrix supports the following features:

  • Sending of messages to a Matrix room

  • Receiving the last message of a Matrix room

  • User registration at a Matrix Synapse HS

  • Joining a Matrix room upon invitation

  • Login of a user at a Matrix Synapse HS

  • Logout of a user at a Matrix Synapse HS

More information:

  • Project website: https://comatrix.eu/

  • Code repository: https://gitlab.com/comatrix/comatrix

  • CoMatrix will be presented at RIOT Summit 2021 (online; free registration) on 10.09.2021 at 11:30 AM (UTC+0): https://summit.riot-os.org/2021/

πŸ”—pipeline-runner receives jobs over Matrix

thejhh offered:

I have made a small 120k pipeline-agent software (including all dependencies except NodeJS v8) which can run on multiple platforms (including OpenWRT) and takes pipeline work over the Matrix protocol. In the end it's going to be used to setup things like VPN connections between gateways.

We also have a commercial web portal almost published where one can create web apps and configure pipelines to process the results. And yes, the portal also uses Matrix as its persistent storage -- it was implemented using my Matrix CRUD Repository from last week :)

The agent software (pipeline-runner) is open source and has zero (0) runtime dependencies except NodeJS, and available from here: https://github.com/sendanor/pipeline-runner -- It's still in early development, though.

πŸ”—Final Thoughts πŸ’­

πŸ”—Room of the week

timokoesters reported:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #music-discovery:matrix.org

"Discover music through peers - Please write a small description of your discoveries. No uploads of non-free music please. For discussions and chat please visit the room's sibling #musicdiscussion:matrix.org "


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—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
1nordgedanken.dev295
2trolla.us524.5
3neko.dev578
4almum.de613
5envs.net648.5
6das-labor.org947
7milkte.ch1372
8caughtquick.tech1400.5
9elcyb.org1452
10kreatea.space1805.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
1sspaeth.de297
2weasy-is-my.name379
3pc.koesters.xyz:6168402
4test.siika.solutions460.5
5tomsmeding.com497
6conduit.cyberdi.sk736
7rcp.tf737.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 2021-08-20

20.08.2021 20:19 β€” This Week in Matrix β€” Ben Parsons
Last update: 20.08.2021 18:52

πŸ”—Matrix Live πŸŽ™

Half-Shot's bridge notes this week

  • GSOC! abbyck/Abhinav's email bridge
  • Bridge team has been busy, on the EMS side we've released Signal/WA for early bird testing.
  • Landmark changes in bridge libraries: we've released 3.0.0-rc1 of matrix-appservice-bridge. Both the IRC bridge and the Gitter bridge have tested it with great results.
  • Tadzik has been making massive gains on the IRC bridge, formatting tweaks and bugs being nailed.
  • Finally, I have a car!

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa reported:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

Don't be mistaken by the rather empty list above, there were many PRs to the contents of the spec flying around this week! These include some further contributions from lukaslihotzki, some clarifications from dkasak and some spec contributions and tooling documentation additions from richvdh. Also a clarification from uhoreg.

Thank you to everyone for your PRs!

Otherwise, there has been a small amount of activity across the spectrum of MSCs this week. One MSC to call out is https://github.com/matrix-org/matrix-doc/pull/3283, which could do with some more input from the wider community.

πŸ”—Random MSC of the week

And finally, something fun. I've written a small script to pick a random MSC that people may or may not want to have a look at.

And this week we've got πŸ₯...

MSC2437: Store tagged events in Room Account Data!

Have a look if you haven't already, or take another look again if you have πŸ˜€

2021-08-20-yaCbk-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Neil Alexander said:

This week, we tagged the v0.5.0 release candidate, which contains two major advancements on the encryption front: support for server-side key backups and support for cross-signing. The addition of these features makes Dendrite significantly more user-friendly, as it is now possible to log out or share keys across devices without losing your conversations.

We'll be aiming to finalise this release next week. Stay tuned in #dendrite:matrix.org for more details.

Sytest compliance currently sits at:

  • Client-server APIs: 65%, up from 61% last time

  • Server-server APIs: 92%, same as last time

Those sytest numbers!! Might be time to start playing with dendrite?

πŸ”—Synapse

callahad said:

We are on track to release Synapse 1.41 next week. This version will use an unstable property proposed by MSC3244: Room version capabilities to advertise to clients that they may create restricted rooms using Room Version 8, despite the default room version remaining at 6 for the time being.

This strikes a balance between the broad compatibility of an older default room version, while still making newer features available when requested at room creation time. However, from next week you are more likely to encounter v8 rooms, so please do ensure your homeserver is running at least 1.40.

I'd also like to tip my hat to Element employee Olivier, who has put in the work to ensure that tagged Sygnal releases are automatically built and uploaded to Docker Hub via GitHub Actions. Thanks, Olivier!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

This week too sees updates to my Helm Charts, with element-web being bumped to 1.8.0 - and then subsequently 1.8.1

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Heisenbridge roundup!

hifi said:

Heisenbridge is a bouncer-style Matrix IRC bridge.

  • Automatic queries (DM rooms) from IRC users can now be disabled and a query opened manually if needed (messages appear in network rooms)

  • Plumbs can now be set to not do disambiguation or ZWSP injection

  • Small cleanups and fixes

Heisenbridge is now considered stable and v1.0.0 has been released! 🍻 πŸ₯³

Focus is shifting to v2.0.0 which will be a major refactor. The 1.x series will at least receive bug fixes if not features. Do note that if you are using the master branch or latest tag for Docker it may cause a breaking change in the future when the work starts being merged. Highly suggest moving to version tags regardless of the deployment method. If you are using matrix-docker-ansible-deploy it has been updated to v1.0.0 as of writing so pulling the latest master there is advised.

Thanks!

πŸ”—matrix-appservice-irc

tadzik said:

This week brought the release of 0.30.0, which includes

  • Better formatting of long messages and code blocks – thanks 14mRh4X0r!

  • Quality of life improvements to admin room command handling

  • Numerous documentation improvements

  • And more!

More goodies coming Soon[tm], so watch this space :)

πŸ”—matrix-appservice-bridge 3.0.0 is now in RC

Half-Shot told us:

If the car wasn't enough, I bring more news! Our matrix.org bridge library, matrix-appservice-bridge has had a total shakeup. Version 3.0.0-rc1 is out and with it comes the migration from the matrix-js-sdk to the matrix-bot-sdk. This is a massive change underneath that should result in faster performance, better typings and hopefully lower memory footprints too.

I'd encourage everyone using this library to update and see how well it works for you! The IRC and Gitter bridges have already experimented with this change and have seen good results, so I look forward to hearing feedback :)

(See details about the referenced car below and in Matrix Live above)

πŸ”—Dept of Clients πŸ“±

πŸ”—Fractal

Alexandre Franke reported:

Fractal updates three weeks in a row? 😱

Kai was on fire this week πŸ”₯ with 5 (❗️) new merge requests that all landed! The highlights are that rooms are now sorted by activity and room members now have a power-level property. The other ones (!815, !816, !817) are maintenance and code quality related.

Julian Hofer also contributed a code quality change by making every subclass use Default.

Shout out to Julian Sparber, who’s still busy with his upstream work in the Rust SDK, and managed to review and merge all the above contributions.

πŸ”—Sailtrix

hengyedev said:

This week, I released Sailtrix v1.3 on OpenRepos.

New features:

  • Notification functionality

  • matrix: URI scheme support

  • Tab based layout

  • Sorting rooms by activity

  • Fixed a bug where editing in encrypted rooms did not appear correctly

  • Avatars and display names are displayed for direct message rooms.

Matrix: #sailtrix:matrix.org

OpenRepos: https://openrepos.net/content/hengyedev/sailtrix GitLab: https://gitlab.com/HengYeDev/harbour-sailtrix

2021-08-20-PieIo-screenshot-1.png

πŸ”—NeoChat

Carl Schwan reported:

This week Janet improved receiving files in NeoChat. Now downloading a file can be stopped, a file type icon is displayed and it looks better! Other than that Felipe Kinoshita made some small visual improvements to the day separator in the timeline and Tobias continued working on E2EE inside Quotient.

Tomorrow Tobias and I will be doing a small presentation/demo of NeoChat at frOSCon in German. It's online so you don't have any excuse to not watch it: https://programm.froscon.de/2021/events/2711.html

2021-08-20-in7Dg-image.png

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

  • Nheko now shows you the verification status of all devices in a room as well as in the memberlist. This is important so you can tell, if an unverified device may get access to a message, if you send it. You can always disable sending messages to unverified devices for extra peace of mind.

  • callum's work on Token Authenticated Registration got merged! πŸŽ‰

  • manu's room directory (finally) got merged. This means you can now discover public rooms on your server and join them by clicking the room directory button, that Nheko had for 3 years but was disabled until now! Support for the room directories of other servers as well as filtering by network should come in the future.

  • There is now an "Allow them in" button on pending knocks in the timeline, joins via room membership in a different room now tell you, what user's server was used to sign off on the join and you can set a room to restricted or knock only. (You currently can't change the list of allowed servers though).

  • Dialogs should now have a close button again on Windows, the emoji search field now clears on closing the emoji picker and we added a workaround for stickers not showing on Element iOS, because iOS can't display stickers without a thumbnail, even if a thumbnail makes no sense for stickers. (We just copy the sticker url into the thumbnail url.)

  • Nheko can now download encryption keys from online key backup. Uploading to online key backup will come soon(tm).

  • If you are interested, I will talk about Nheko tomorrow (21.08. starting 16:10) at FrOSCon in the Matrix dev room. Make sure you check out the other talks too, if you speak German! https://programm.froscon.de/2021/events/2706.html

Phew, that was a mouthful.

2021-08-20-A0aW4-clipboard.png

πŸ”—Element Clients

Updates from the teams

Delight team

  • This week, our web, iOS and Android engineers are all enjoying some time off.
  • On backend, we’ve completed pagination of the Spaces Summary. This week, we’ve been looking at performance improvements to the Summary API.
  • We intend to mark room Version 8 as the preferred version for MSC3083 restricted rooms on matrix.org and in Synapse 1.41 (due for release next week) via MSC3244. Once this change is made, Element clients will show UI to create restricted rooms within a Space, and prompt users to upgrade rooms if necessary when making them restricted.
  • Our design team is exploring some tweaks on how to make Spaces a little bit clearer and easier to understand.

Web

  • We released 1.8.1 which fixed some regressions with calls - sorry for any failed calls!
  • Work on our threads prototype continues. We’re hoping to have something to look at internally next week.
  • Sentry submission support has been added to Rageshakes. We expect to enable this on https://app.element.io next week.
  • We’ve been fixing some bugs around cross-signing, Windows font rendering, and image blur hashing.
  • Our new triage process has been published on the wiki.

iOS

  • Element Alpha work is complete. This is a new app for internal testing. A QR code is available on every PR like this one to install the build on a device. Only devices registered in the Element Apple Developer account can install this app.
  • Improved notification content: No more β€œMessage” notification.
  • Fixed some timeline layout issues.
  • Media upload sizing: We added a prompt when sending video to select the resolution of the sent video. Media size prompt can be disabled in settings.
  • URL preview work has started.
  • App Navigation improvement: Working on room navigation to prepare the ground for threading.
  • On the performance side, we are working on room messages lazy loading to improve application speed.

Android

  • Fix authenticated jitsi not working in release (proguard issue)
  • Handle call ended reasons (busy, invite timeout).
  • Working on Olm fallback key support
  • Work on call ui and call tiles is finished, waiting to be reviewed
  • Start working on extracting API client from the SDK

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Polyjuice Client πŸ§™

uhoreg said:

Polyjuice Client v0.4.2 has been released. This release features more functions for creating messages, including file and media messages (thanks to multi prise), replies, reactions, and edits. Polyjuice Client can also now be considered a serious Matrix library as it has a new function to generate rainbow-coloured messages! 🌈 Multi prise has also added support for registering a new user, redacting messages, and searching the user directory.

Polyjuice Util v0.2.1 (an Elixir library for Matrix features that can be used on both the client-side and server-side) was also recently released. The main feature for this release is support for handling Matrix URIs, and supports mxc:, matrix.to, and matrix:-style URIs.

πŸ”—Simple-Matrix-Bot-Lib

krazykirby99999 reported:

Version 2 of Simple-Matrix-Bot-Lib will release very soon. It is complete in all but the documentation. If you would like to try version 2 early, you can find it on a branch of the git repository here https://github.com/KrazyKirby99999/simple-matrix-bot-lib/tree/v2.

Some of the changes are shown below:

Version 1Version 2Summary
bot.add_message_listener(example_handler)@bot.listener.on_message_event
or
@bot.listener.on_custom_event
In version 1, each the bot.add_message_listener method was used on message handler functions for them to react to messages. In version 2, this has been replaced by a decorator, @bot.listener.on_message_event. A similar decorator, @bot.listener.on_custom_event(event) can be used to react to other events. For information on supported events, refer to the matrix-nio docs.
creds = botlib.Creds()creds = botlib.Creds(<br /> homeserver="https://example.org", <br /> username="username", <br /> password="password", <br /> session_stored_file="session.txt"<br /> )<br />
or
creds = botlib.Creds(<br /> homeserver="https://example.org", <br /> login_token="MDA..gZ2"<br /> session_stored_file="session.txt"<br /> )<br />
In version 1, the only way to login to a homeserver was to use a combination of a username and password. In version 2 it is also possible to login using a SSO login token as well. As before, the homeserver argument is required, and the session_stored_file argument is optional.
match.args #For message "one two three", returns "two three"match.args #For message "one two three", returns ["two", "three"]In version 1, match.args returned a string. In version 2, match.args returns a list of strings.

These changes are only some of the most important changes between versions 1 and 2, and there are more changes in addition to these. I apologize for the delays in releasing version 2.

πŸ”—Dept of Bots πŸ€–

πŸ”—Mjolnir

TravisR told us:

Mjolnir v0.1.19 is out now with a voice message protection built-in (ideal for public communities where voice messages can't be easily moderated) and updates to the shutdown room command to support modern Synapses. Check out !mjolnir protections after upgrading, and visit #mjolnir:matrix.org for help and support.

πŸ”—Audio/Voice Message Prevention Maubot Plugin

MTRNord told us:

Since element now landed voice message support I build a small maubot plugin which prevents audio and voice messages as those cannot yet get restricted by power level.

It starts by warning you via replies, after a configured amount of warnings goes over to kicking and after a certain amount of kicks it will ban you in the room the event was sent in.

The counter is global so if a user in room A runs out of warnings and the same user sents a voice message in room B where the bot is present the bot will ban the user also in room B without further warnings.

2021-08-20-r2wxc-image.png

Source at: https://github.com/MTRNord/maubot-audio-preventer

This plugin is already running on my maubot at @mjolnir:nordgedanken.dev

πŸ”—Middleman

jaywink reported:

New version of Middleman, the helpful relay bot in the middle. Version 0.2.0 in addition to various smaller changes and fixes, enables sending out messages from the command room to any room the bot is in, supports relaying notices (so you can command other bots using the Middleman bot πŸ€–) and adds support for flagging certain rooms as "mention only", in which case only mentions are relayed.

Find Middleman here: https://github.com/elokapina/middleman

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Matrix-Dev Room @ FrOSCon (virtual) is already tomorrow!

Oleg said:

This weekend we are organising a Matrix Dev-Room at the FrOSCon with some quite interesting talks (in German πŸ‡©πŸ‡ͺ):

Take a look at the conference schedule and join us at #FrOSCon:fiksel.info!

FrOSCon will be a virtual event and it's free! See you tomorrow!

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Half-Shot's car

Half-Shot said:

Howdy folks, it's been aaaaages since I've done mad little project but I had some LEGO and was bored on a Sunday. I present to you matrix-poweredup! This is a little bot that connects to any LEGO PoweredUp devices (using the node-poweredup library). You can then start controlling the motors via Matrix, and have the sensors report back into the Matrix room. It's currently limited to a RC buggy I picked up over the weekend but it's very extendible. It also includes a web application to control things via a gamepad, if that's your bag.

There will be a little demo at the end of Matrix Live, so watch this space

2021-08-20-RNy6w-image.png

πŸ”—Server Stats

MTRNord reported:

Some updates on the serverstats project:

As a few of you noticed the pages are currently down due to some mess that happened (not going into detail on purpose here).

The pages however will soon come back. I am now using the time they are down to improve the code and some pages on it. So dont be worried it is not dead but it will come back as soon as I get those changes done πŸ™‚

πŸ”—Circles

cvwright reported:

Circles is an iOS app for end-to-end encrypted secure social networking and sharing, built on top of Matrix. Its goal is to provide a safe and convenient way for close friends and families to share things that they wouldn't post publicly -- e.g. for parents to safely share pictures of their kids. You can also use it to share updates with your friends, without a creepy advertising company data mining every word.

Circles features include:

  • Social "wall"-like functionality and timeline of friends' posts for each of your social circles, e.g. Friends, Family, Neighbors, Coworkers, etc.

  • Private groups

  • Encrypted photo galleries

Recent updates to the Circles beta include:

  • Support for use with any Matrix homeserver, including a new encrypted recovery and key backup mechanism that should be compatible with other Matrix clients like Element. (Please note: For use with standard Matrix accounts, be sure to select "Advanced options" at login and enter your passphrase for key backup / recovery.)

  • Emoji reactions

  • Markdown formatting for text posts and image captions

  • Better support for larger screens (iPad)

The latest beta build of Circles (v0.91) is available from Apple on TestFlight

πŸ”—Dept of Guides 🧭

πŸ”—Digital Justice

Bram said:

As a hobby, I built a website called Digital Justice. It's a website that explains in layman's terms what certain digital topics are (like data sovereignty, software autonomy and abandonware continuity) and why those topics matter.

I'll also write several articles related to digital rights. For now, there's three articles: one that explains how to join Matrix, one that explains how and why the government should strive towards decentralization, and one that explains why users should consider using Matrix instead of Signal.

The website may be a bit too simple for privacy gurus who know their stuff, but it's meant as an accessible resource to help people understand why privacy matters. Feel free to use the website as a resource, share the RSS feed or use it as a FAQ to your colleague who doesn't understand why you're so adamant on using an open communication protocol.

If you'd like to see something corrected or would like to add something to the website, the source code's here and you can always contact me through the website.

πŸ”—Final Thoughts πŸ’­

πŸ”—Room of the week

timokoesters told us:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #physics:matrix.org

"Friendly Physics Related Discussion Talking Point: LIGO & Hawking's area theorem https://tinyurl.com/nzuaaepv Book Club 22nd August 15:00 BST | Bishop & Goldberg (manifolds) | Book Club Site: https://tinyurl.com/2sn9upx2 +stardust:matrix.org"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—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
1boba.best367
2envs.net501.5
3catvibers.me507.5
4neko.dev517
5trolla.us540.5
6eisfunke.com744
7mozilla.org991
8taboulisme.com1015.5
9imninja.net1016
10sumnerevans.com1137

πŸ”—#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.nordgedanken.dev317
2musketeer-chat.ml514
3dendrite.kreatea.space1110.5
4weber.world2480
5dendrite.s3cr3t.me2933.5
6dendrite.matrix.org7872.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 2021-08-13

13.08.2021 19:59 β€” This Week in Matrix β€” Ben Parsons
Last update: 13.08.2021 19:33

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa offered:

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

Work on Spaces continues with MSC2946 (Space Summary API), specifically revolving around how to paginate the summary. This has called into question how pagination across Matrix works in general, which is a prime target for refactoring - perhaps an upcoming consistent pagination MSC? :)

Otherwise, as listed above, MSC3289 (room v8) has merged! It brings with it the ability to grant the ability to join a room based on one's membership in another room. While the was originally conceived for allowing users that are part of one Space to be allowed to join rooms, it has been built upon in other creative ways. Such as in MSC3325, where it could be used to make room upgrades more seamless!

And finally, a special thanks to Lukas Lihotzki for all of their spec PRs this week. They're been stellar!

2021-08-13-MVPF_-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

Big news! Synapse 1.40 is out and it comes with support for Room Version 8! Version 8 includes "restricted rooms" which are only visible and joinable by members of a specific Space (or via direct invitation). This finally makes it useful to use Spaces as containers for private rooms, like you might with a company, guild, or open source community. Once invited to the parent Space, members can join and discover the otherwise private rooms within. No more /invite spam every time you bring someone on board!

Also: If you've received any push notifications in Element Android or Element iOS this week, they've come via our shiny new stateless release of Sygnal! If you haven't received expected push notifications on those platforms this week... please alert us immediately. πŸ˜‰

Lastly, Element is overjoyed to welcome David Robertson to the Synapse team. Welcome aboard, David!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace reported:

And this week too keeps on going with the regular Kubernetes Helm Chart updates, this time bumping matrix-synapse to 1.40.0.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Gitter

Eric Eastwood reported:

Exciting update this week on the MSC2716 front for backfilling historical messages into existing rooms! All of the big pieces are now merged for full-fat federated historical messages in Synapse πŸ’ͺ

MSC2716 was also consolidated and updated to propose the /batch_send implementation we're using in Synapse. There is also a plan for how this can be backwards compatible with existing room versions so no need for those pesky room upgrades. This will help us be able to jump in early and use this for Gitter as soon as the new event types become stable. Go jump in on MSC2716 to give feedback and read up on the details πŸ˜€

πŸ”—Dept of Clients πŸ“±

πŸ”—Cinny v1.1.0

ajbura said:

It has been almost two weeks since we have launched Cinny and here is what we have done in these days:

πŸ”—Features

  • You can now decrypt message history by importing encryption keys.

  • We now support few commands along with emoji autofill and our unique go-to commands.

  • You can send messages with markdown. (This message is sent from Cinny)

  • It now supports replying messages and message deletion.

  • It now shows MXID on hover over display name.

  • You can now see who reacted on message by hovering over reaction.

  • Channels/rooms can be joined by alias.

πŸ”—Bugs

  • Fixed login issue on servers that don't support delegation.

  • Fixed login issue related to non-compliant localpart. (Thanks to phildenhoff)

  • Fixed invalid password issue. (Thanks to Troplo)

You can find more about Cinny at https://cinny.in

Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny

Twitter: https://twitter.com/@cinnyapp

2021-08-13-9eps4-reply_preview_in_butter_theme.png

πŸ”—Ement.el

alphapapa offered:

Ement.el, a Matrix client for Emacs, continues to improve. Some of the changes in the past week:

Additions

  • Messages may now be written in Org-mode syntax (a format similar to but more powerful than Markdown). Internally, it's automatically converted to HTML and sent as the message's formatted body. This supports nearly any HTML feature that Org-mode can export to, including rich text, bulleted and numbered lists, and even tables (this message is being written directly in Org syntax; see a table of new bindings at the end of this list).

  • An optional pop-out compose buffer makes writing and editing long messages easier (also being used for this message).

  • Read/fully-read marker lines are now displayed after the last read message, and these are synced with the server and other clients. These lines can also be placed with a command, making it easy to return to a certain event later, even on other clients.

  • Usernames at the beginning of messages may optionally be colored to match the addressee's username. This especially helps following conversations in busy rooms.

  • Ement.el is confirmed to work with Pantalaimon, the E2EE-aware reverse proxy, making encrypted rooms work transparently. Once Pantalaimon is installed and configured, connecting through it with Ement.el is trivial, and this step is documented in the readme.

Improvements

  • Per-user displayname and message colors have improved (and configurable) contrast ratio with the background color.

  • Reactions are sorted by the number of users who have sent each one.

  • Unread rooms are displayed more prominently in the room list.

  • New default bindings make it quick to jump to the mentions and notifications buffers.

  • Sync timeouts are handled more gracefully and Ement.el re-syncs automatically.

  • Various minor fixes and enhancements.

And here's the new-bindings table, written directly in Org syntax and sent automatically as HTML:

BindingCommand
S-SPCScroll up
M-SPCMove to last-read marker
C-kDelete message
M-g M-lSwitch to room list buffer
M-g M-mSwitch to mentions buffer
M-g M-nSwitch to notifications buffer

Come join us in #ement.el:matrix.org!

2021-08-13-s-1xM-ement-for-twim.png

πŸ”—Fractal

Alexandre Franke announced:

Fractal updates two weeks in a row? 😱

In our fractal-next branch, Julian tweaked the style of the ugly β€œthis is an early development version, here be dragons” warning, while GSoC intern Kai did a couple maintenance tasks: he updated some documentation and fixed clippy warnings.

The stable branch also saw some activity, with new contributor πŸŽ‰ Amanda fixing two bugs (#392, #803) with a single merge request, sorting out our handling of <p> tag trimming.

πŸ”—Element Clients

With updates from the teams!

Delight team

  • The tool for migrating communities to spaces in Element Web has been completed
  • Lots of accessibility support for Spaces in Element Web
  • Preparing Element Web to take Spaces out of Labs
  • Pagination of the spaces summary now works for local rooms, we're continuing work on fetching data over federation.
  • On iOS, we’re working on exploring rooms and browsing users in a space

Web

  • v1.8.0-rc1 is available on https://staging.element.io/
  • Work on threads continues - we are narrowing down on a first prototype based on treating chained replies as threads
  • We’ve spiked support for Sentry which will give us more insights into how the app is working in the wild
  • Support for hot module reloading for React components, following last week’s work on CSS hot reloading
  • Improved the look and feel of image blur hashing by adding some animations

iOS

  • The release candidate 1.5.1 is available for testing on TestFlight. Voice messages are enabled by default
  • Towncrier is now enabled on all of our 3 repositories
  • Reaction count got a fix. Please rageshake if you see unexpected count
  • Notifications content has been fixed or improved
  • Element alpha is almost finished. This is a new app that we will use for internal testing. There will be a QR code on every PR like this one to install the build on a device. This device must be part of our ad-hoc device list
  • On the performance side, the incremental sync has been improved and merged on develop. Next is lazy loading room messages

Android

  • We made 2 releases this week: 1.1.16 to fix a regression that prevented sending messages in e2ee rooms and 1.2.0 with voice messages enabled by default
  • Voice messages have been improved before the release
  • We continued to update the call UI with call tiles in the timeline

πŸ”—Sailtrix

hengyedev said:

Sailtrix is a matrix client for SailfishOS.

Here's a summary of Sailtrix development this week:

  • Added notifications support

  • Changed the layout to use tabs

  • Added display of timestamps to messages

  • Display names are shown for direct messages.

  • Messages sent by the same user in succession are grouped

Join us in #sailtrix:matrix.org . GitLab: https://gitlab.com/HengYeDev/harbour-sailtrix

Download at OpenRepos: https://openrepos.net/content/hengyedev/sailtrix

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

You now get notified, if someone reuses a megolm session index, because that in theory could be used by an attacker to send seemingly verified messages. We also now render decryption errors more nicely and users can now explicitly request decryption keys (in addition to the automatic key requests in the background that already existed). We also fixed an issue, that could corrupt the database when using the flatpak and if you lost your network connection, Nheko should now reconnect faster instead of potentially waiting 17 minutes for a TCP timeout. The storage for cross-signing secrets should now be more reliable, you can close image popups with the "Escape" key, close the current room by double clicking it and a few more miscellaneous bugfixes.

You can track the remaining E2EE bits, before we declare our E2EE support as stable, in this comment now: https://github.com/Nheko-Reborn/nheko/issues/23#issuecomment-894689158

πŸ”—Dept of Bots πŸ€–

πŸ”—Hebbot

Felix reported:

I released Hebbot v2.0 (the matrix bot which generates the thisweek.gnome.org blog posts)

https://github.com/haecker-felix/hebbot/releases/tag/v2.0

It has learned how to handle images / videos, and can now insert them directly into the rendered markdown. Creating new posts has been significantly simplified and now makes even less work for the author. For example, Hebbot now automatically generates a command to quickly download all images/videos at once.

Maybe other communities are interested in creating a "This Week in X" blog as wellπŸ‘€?

2021-08-13-NQPFN-ima_f906312.jpeg

πŸ”—Maubot-Pocket

jaywink offered:

I find "read it later" services like Pocket extremely useful, but fail hard at actually keeping my read it later list at a sane level. For me it's hard to maintain the list and actually read through things as choosing which one to process feels overwhelming due to the amount of items.

Randomization to the rescue! I made a Pocket plugin for Maubot which gives me a random article from my list and allows me to easily archive it. Now I don't need to decide which article to pick, the computer does that for me!

Source code and info: https://github.com/jaywink/maubot-pocket

Ps. Maubot is truly awesome as a bot system, well documented and easy to develop on 😻

2021-08-13-1Tte3-maubot-pocket.gif

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Matrix @ Bornhack 2021 β›Ί

carl reported:

Bornhack is a 7 day outdoor tent camp where hackers, makers and people with an interest in technology or security come together to celebrate technology, socialise, learn and have fun.

This year, AsbjΓΈrn and I are hosting a couple of events related to Matrix:

If you attend Bornhack, please come by and say hi! If you are thinking about attending, don't hesitate to reach out and ask us anything πŸŒ΅β›Ί

πŸ”—Final Thoughts πŸ’­

πŸ”—Room of the week

timokoesters reported:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #gamedev:matrix.org

"game development"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—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
1envs.net452
2boba.best501
3trolla.us656
4mindlesstux.com947
5matrix.sp-codes.de1040
6cyberdi.sk1598
7shortestpath.dev1846
8ziroh.be1972.5
9catvibers.me2392
10casavant.org2617

πŸ”—#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.nordgedanken.dev402
2dendrite.s3cr3t.me1333.5
3dendrite01.fiksel.info1577
4weber.world4128

πŸ”—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 2021-07-30

30.07.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

Let's learn about PyQuotient with Vlad and Alexey.

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Element raises $30M as Matrix explodes!

At first when I read the headline I was scared - explodes? How can I protect myself from this explosion? After a moment of reading this huge news, however, I was relieved - Matrix has exploded in popularity, and Element have all new funding to keep driving the ecosystem forward. Let's go!

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa announced:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

  • There were no new MSCs created this week.

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

πŸ”—Spec Updates

While a quiet week for MSC state changes (shown above), there's still plenty of work and collaboration happening!

Spaces work marches forward as MSC3083 has been merged - allowing for users to join a room in a space based on their membership in a space. We think this will really help with the management of Spaces that contain lots of rooms that are otherwise invite-only.

Otherwise MSC3291 (Muting in VoIP calls) has been receiving positive feedback this week!

Finally, MSC3289 (room v8) is ticking along as the implementation is tested in Synapse and Complement tests.

2021-07-30-7paYt-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad told us:

Synapse 1.39.0 is out!

Of all the pull requests we landed, my hat is off to MadLittleMods and his Graphviz prowess in #10250, which moves us one step further down the path toward MSC2716: Incrementally importing history into existing rooms. Mmm. Graphs.

But back to Synapse! You should check out the release announcement, but the bulk of the work this cycle went into internal cleanups. Synapse should also be slightly more performant, reliable, and should log fewer spurious errors. Of note, ShadowJonathan did a lot of work with pyupgrade and com2ann to move the entire codebase to more modern Py3.6+ conventions and inline type annotations; thanks, ShadowJonathan!

Synapse 1.39 also continues our march toward unifying Synapse's interface for extension modules, and we've now exposed plugin hooks for the account_validity option, and experimentally implemented hooks for third party event rules.

Lastly, special thanks to kroeckx who has submitted 17 pull requests against our SyTest test suite in the past month, mainly arising from running SyTest against Conduit. Thank you!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—matrix 1-click app

j3s (he/him) offered:

Hello! This week, I created a matrix 1-click app on the DigitalOcean marketplace. It's basically a pre-baked droplet image that is pre-configured with synapse, element-web, caddy, postgres, plus some setup and moderation tools. My intent was to make self-hosting a Matrix system as easy as pointing some DNS records and running a single script. It makes a lot of sense for smaller, more casual Matrix homeservers, and can serve as a good starting point! It also includes some small utility scripts - ./reset-password, ./new-user, etc.

Secrets like the postgres password and registration password are generated on first boot, there's no sensitive data baked into the image. Of course, it would be nice to be able to verify this - the source code used to build the image is being open sourced. I'm just waiting for some internal processes to finish. It will show up at https://github.com/digitalocean/marketplace-matrix somewhat soon!

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Heisenbridge

hifi announced:

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

  • Lazy joining of IRC users (see below)

  • Keep nick feature has been added

  • Bridge aliveness can be tracked from bridge bot presence

  • Ident replies can be customized by the admin for all users, default to mxid hash

  • Pillifying IRC nicks has been improved

The biggest impact feature this time around is configurable lazy joining IRC users which improves the experience of joining massive IRC channels by not flooding the homeserver with join events. This is now the default and can be changed globally by the bridge admin or overridden per room by users.

Many fixes here and there. Still a few issues left before 1.0 and a lot of testing.

Thanks!

πŸ”—Dept of Clients πŸ“±

πŸ”—Announcing Matrix client Cinny 1.0.0

ajbura reported:

Cinny is a web-based matrix client focusing primarily on simple, elegant and secure interface.

The story started when a friend of mine introduced me to matrix and even after his help it was too difficult for me to get around with Element. I guess it was because Element is too different from other popular chat apps. Then I tried to find a good alternative for web but no success.

That's when me and my friend thought about creating Cinny. For the few weeks we were doing it for fun but when we shared a screenshot of the prototype, the response from people was surprising and that's when things got interesting. We got to know that a lot of people out there are looking for a simple and modern client and so we started building it.

Screenshot on Chrome desktop (see below)

πŸ”—Features

Cinny support the following features:

  • Login/logout and registration of accounts

  • Four different themes

  • Basic alphabetically sorted channel list with unread notification indicator

  • Creating channels and joining/leaving public channels

  • Creating Direct messages

  • Inviting users to channel and basic user list

  • Sending text messages, emojis and attachments

  • Support viewing edited messages, reactions, replies, attachments and markdowm

  • Read receipt for latest messages and typing notifications

  • History scroll and button for quickly scrolling to bottom in room timeline

  • Channel topic, join, leave, kick, ban, avatar/nick changes in room timeline

  • Sending/receiving encrypted text messages and attachments

You can find more about Cinny at https://cinny.in

Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny

Twitter: https://twitter.com/@cinnyapp

2021-07-30-h1N8o-preview-butter.png

Cinny is astounding. A client appears to us nearly fully-formed and looks great while doing it!

πŸ”—Ement.el

alphapapa announced:

Many improvements have been made to Ement.el, a new Matrix client for Emacs. Ement.el can now send and display images, replies, and reactions, as well as edit sent messages. It also supports desktop notifications, configurable by the user to pop up for mentions or for all rooms with open buffers. (Room: #ement.el:matrix.org)

Something something expands until it reads... Matrix?

πŸ”—Element Clients

Updates from the teams

VoIP

  • 1:1 screen sharing is now merged and on develop! Please give it a try and report bugs - plan is for it to go out in the release after next (ie. two weeks from Monday). Huge thanks to Simon for working on this.
  • Simon also has PRs up for mute status signalling, done via MSC3291
  • Fixing the bug where the buttons in a call don’t work in full screen mode

Web

  • v1.7.34-rc.1 is out (maybe even .2 by the time you read this) - full release planned for Monday
  • Continuing to figure out a plan of attack for threading
  • Looking at message bubble feedback & fixing bugs
  • Also looking at fixing blurhash bugs

iOS

  • The coming release, 1.4.8, which is available on TestFlight, supports voice messages. The feature is under a labs setting. DM and room tabs now contain only rooms. Local contacts and the public rooms directory can be found elsewhere in the UI. Full changelog at https://github.com/vector-im/element-ios/releases/tag/v1.4.8.
  • We continue to make good progress on papercuts (https://github.com/vector-im/element-ios/milestone/58) and the overall app stabilisation.

Android

  • Release candidate 1.1.15 is getting prepared. It will include voice messages, under a lab flag.
  • Some bugs on the crypto part have been fixed, it should improve the performance on e2e rooms.

πŸ”—FluffyChat v0.35.0 has been released

FluffyChat is the cutest cross-platform matrix client. It is available for Android, iOS, Web and Desktop.

krille reported:

This release introduces stickers and a lot of minor bug fixes and improvements.

πŸ”—All changes:

πŸ”—Feature

  • Add sticker picker [205d7e8]

  • Also suggest username completions based on their slugs [3d980df]

  • Nicer mentions [99bc819]

  • Render stickers nicer [35523a5]

  • Add download button to audio messages [bbb2f43]

  • Android SSO in webview [befd8e1]

πŸ”—Fixes

  • Reset bootstrap on bad ssss [b78b654]

  • Hide stickers button when there is not sticker pack [b71dd4b]

  • Download files on iOS [a8201c4]

  • Record voice messages on iOS [4c2e690]

  • cropped sticker [a4ec2a0]

  • busy loop due to CircularProgressIndicator [15856e1]

  • Crash on timeline [a206f23]

  • typo on website [00a693e]

  • Make sure the aspect ratio of image bubbles stays the same [a4579a5]

  • Linux failing on attempting to open hive [76e476e]

  • Secure storage [0a52496]

  • Make sure the textfield is unfocused before opening the camera [6821a42]

  • Close safariviewcontroller on SSO [ba685b7]

πŸ”—Refactor

  • Rename store and allow storing custom values [b1c35e5]

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma

iinuwa announced:

This summer's gone by so fast it feels like it's only been a week! Here's a summary of what's happened with Ruma the past few weeks:

We have had a productive summer with our two Google Summer of Code students, Adam Blanchet and Devin Ragotzy. Adam finished implementing the last of our Identity Service API endpoints, bringing us to 100% implementation of all the Matrix API endpoints! (And we promise there are no bugs because "Rust," right?)

Besides improving the Matrix ecosystem, Devin has been helping the Rust ecosystem at large by writing some Clippy lints to improve our codebase and upstreaming his additions.

Read more here: https://ruma.dev/news/gsoc-2021-intro/.

πŸ”—Dept of Ops πŸ› 

πŸ”—maubot-ldap-inviter

David Mehren offered:

I made maubot-ldap-inviter, a maubot plugin that (surprisingly) invites users into Matrix rooms, according to their membership in LDAP groups.

We are switching from RocketChat to Matrix in the next round of a software engineering course where students work on software projects in small groups.

RocketChat has a LDAP sync, which we previously used to auto-add students and tutors to the chatrooms they need to be in (global announcement room, helpdesk, chat for their group etc.). As there was no such feature for Matrix, I built the bot over the last few days.

It's still somewhat specific to our LDAP setup, but if anyone wants to use the bot and has questions, just open an issue in the repo!

πŸ”—Dept of Services πŸš€

πŸ”—Mother Miounne from etke.cc

Aine reported:

Mother Miounne is here

At etke.cc we suffered long enough with 2 things - order form on website and invites on private matrix servers.

No more suffering! Because now the Mother Miounne exists and it does 2 things (for now): handles of web/html forms (sends it to matrix room) and handles invite tokens (integrates with matrix-registration)

We use it as backend of etke.cc service for some time, but still consider it as unstable, so try it yourself, hope it can help you πŸ˜‰

PS: #miounne:etke.cc - matrix room with news & discussions

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Matrix @ FrOSCon 2021 (virtual)

Oleg reported:

Great news! Matrix Dev-Room and Matrix booth are approved! πŸŽ‰

We are currently creating a schedule and we have open slots for talks and workshops!

If you like to present your topic or just help out please contact me (@oleg:fiksel.info) (or [email protected]) now! Language is preferably German, but English is also ok.

See you at #FrOSCon:fiksel.info πŸ˜‰

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—TheBoard

Timo announced:

This is a personal project I started a couple of weeks ago. I was dreaming of a good open source solution for OneNote or GoodNotes far a long time. There are already great projects, likeXournal++ and Whitebophir. But, they do not include the extent of possibilities to flexible host, collaborate and structuring the notes I have wished for.

Recently, I was thinking about the exact requirements I wanted for such a whiteboard:

  • Real time synchronization (cloud storage)

  • Authentication/account infrastructure (to invite and collaborate on one whiteboard)

  • Adding/Removing ppl to a whiteboard

  • Reliable hosting (when having cloud storage, I don't want to trust a one-man project to continue hosting. And a lot of ppl won’t self-host.)

  • Structuring whiteboards in categories

  • Viewing history and display which part has been drawn by which person

  • Annotating other whiteboards with new layers

  • Hosting for media like PDF's and images

Looking at this list, Matrix was such an obvious choice. I could comment every point but basically with: "A whiteboard should be a Matrix room" everything is said.

TheBoard (probably not the final name) is exactly that. The frontend is not done yet, but already in an okay looking and usable state.

Before trying it out: It takes really long to log in with an account with lots of rooms. So, I highly recommend to NOT use your main Matrix account. Additionally, it is necessary to tag rooms as whiteboards. (really un-intuitive UX that will be improved) But for now the + button needs to be pressed and a (empty (not necessary but recommended) AND UNENCRYPTED) room needs to be selected.

UPDATE I just (on Friday) finished initial spaces support to categorize the whiteboard in notebooks (aka spaces). They can only be create within a matrix client that supports spaces. But they will be displayed properly in TheBoard. (see screenshot)

Any problems, ideas and feedback is highly welcome as a github issue or in the matrix channel #TheBoard:matrix.org.

πŸ”—TLDR:

This project is whiteboard (similar to OneNote) which is

using Matrix as its backend. All your drawings are stored in matrix rooms on your matrix server and are accessible to anyone who is invited.

Try It out at: https://toger5.github.io/TheBoard As always: use at your own Risk

Join the matrix channel at: #TheBoard:matrix.org Github: https://github.com/toger5/TheBoard

2021-07-30-A8NSR-screenshotTWIM.png

πŸ”—graph.settgast.org updated

Chris announced:

Thanks to the awesome https://serverstats.nordgedanken.dev project by MTRNord my small server version history graph now contains more of the matrix fediverse: We went from ~3000 to over 5000 active visible homeservers on https://graph.settgast.org/

Two superb projects combining forces! I've long been a fan of Chris' graphs for tracking the growth of the server ecosystem.

πŸ”—Matrix in the News πŸ“°

πŸ”—Famedly in the news!

uhoreg offered:

Famedly in the news! https://e-health-com.de/details-news/messenger-am-uk-frankfurt-ermoeglicht-simultane-ueberfuehrung-von-chats-in-die-patientendokumentation/

πŸ”—Final Thoughts πŸ’­

πŸ”—Happy Sysadmin day! πŸ₯³

Oleg made us aware:

Let's use this day to thank your Matrix home server admin! Especially folks managing Matrix.org and all the public bridges! ❀️

(If you are hosting yourself then you can tap yourself on a shoulder for doing a great work 😁)

πŸ”—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
1envs.net370
2boba.best451
3kapsi.fi462.5
4aria-net.org771
5trolla.us828
6gnome.org932.5
7privacytools.io986.5
8ntns.in1195.5
9zemos.net1347
10catvibers.me1801.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
1cd.mau.dev72
2dendrite.nordgedanken.dev295
3conduit.rs536
4dendrite01.fiksel.info1157
5dendrite.s3cr3t.me1703.5
6matrix-testing.0x1a8510f2.space3640.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 2021-07-23

23.07.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

This week gematik announced they will use Matrix for their interoperable instant messaging standard.

Loads of coverage is available, take a look!

English

  • https://www.zdnet.com/article/germanys-healthcare-system-is-using-this-open-source-standard-for-encrypted-instant-messaging/
  • https://thestack.technology/matrix-germany-healthcare/
    • see also https://thestack.technology/element-messenger-matrix-protocol-one-to-watch/

Dutch

  • https://tweakers.net/nieuws/184736/duitse-gezondheidsinstellingen-gaan-onderling-communiceren-via-matrix-protocol.html

German

  • https://www.heise.de/news/Matrix-Messenger-fuers-deutsche-Gesundheitswesen-6144988.html
  • https://www.golem.de/news/videochat-deutsche-gesundheits-it-wechselt-auf-matrix-2107-158334.html
  • https://stadt-bremerhaven.de/gematik-ti-messenger-setzt-auf-das-matrix-protokoll-als-basis/

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa offered:

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,

πŸ”—Spec Updates

Room Version 8 has been proposed as part of MSC3289! This intends to include the new "restricted" room version from MSC3083, which allows access to a room based on one's membership in another room, as is most useful for features related to Spaces.

2021-07-23-kziJ3-stacked_area_chart.png

sorunome has been working on MSC2545:

Sorus Image Packs MSC2545 is taking shape more and more! While barely anything happened on the actual MSC itself, nheko recently implemented a sticker picker based on it, and there is a PR for fluffychat for a sticker picker, too, finally making stickers interoperable between clients of different vendors!

Here's a video of fluffychats sticker picker in action: https://gitlab.com/famedly/fluffychat/uploads/26382317e2424d7566eb18e102ddd6cb/fluffy-sticker-picker.webm

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad told us:

🚨 Yesterday we published Synapse 1.38.1 which mitigates a client bug triggered by changes to /sync responses in 1.38.0. Specifically, new Element Android sessions were unable to decrypt messages in end-to-end encrypted conversations.

βš™οΈ Otherwise, we've been doing quite a lot of internal / infrastructure work. Notably, we've completed the move from three separate CI systems to just one: GitHub Actions. We're also, for the first time, publishing Debian packages for our Release Candidates. We hope these changes move us towards a more reliable and seamless release process.

We'll have a lot to talk about re: Synapse 1.39 next week, but until then, enjoy the weekend! πŸ–

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace announced:

And this week too has brought updates to my Helm Charts, with element-web being updated to 1.7.33 and matrix-synapse to 1.38.1

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-puppeteer-line

Fair told us:

A bridge for LINE Messenger based on running LINE's Chrome extension in Puppeteer.


This week brings plenty of usability improvements:

  • There is now the list-contacts bot command to--you guessed it!--list the Matrix puppets of all of your contacts.

  • It's now possible to sync a chat with a LINE user by inviting their Matrix puppet to a DM, instead of having to wait for someone to send you a message in LINE for the bridge to auto-sync it. This is especially useful with list-contacts.

  • LINE group chats that haven't been used recently are now included in the set of chats that get bridged on a sync operation.

  • The number of chats to sync at startup time & on-demand is now configurable, as a bridge config setting & a parameter to the sync command, respectively.

These changes make it possible to sync LINE chats/groups that previously may not have gotten synced, due to the intricacies of how LINE on Chrome handles chat history (especially on first use of the bridge).


Discussion: #matrix-puppeteer-line:miscworks.net

Issue page: https://src.miscworks.net/fair/matrix-puppeteer-line/issues

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

LorenDB has rewritten the invite dialog as well as the memberlist in Qml. This means they work now much more reliably and show the users in appropriate colors and a few other small improvements.

Apart from that, Nheko now has support for sending stickers! This is based on Sorunome's awesome MSC2545, so no integration manager is needed and it is trivially easy to share your sticker packs (just invite someone into the same room!). You can use stickers from your account data or upload stickers into a room so every room member can use it. If you found a sticker pack you like, you can enable a pack from a room globally by going into Nheko's room settings. You can check my current preferred set of stickers here: matrix:r/nico's-stickers:neko.dev

Currently you can't edit a sticker pack yet from Nheko. Support for that will come in the near future. Until then you can use either FluffyChat, Element's DevTools or my hack to import Telegram sticker packs into a room. Note that Nheko's sticker pack support is incompatible with integration server based sticker packs like the one Element uses. On the other hand, you don't need an integration manager to use them! Custom emote support based in the image packs MSC is coming in the future to Nheko too.

Furthermore we fixed some bugs to move E2EE in Nheko out of Beta. We are close now and we have a plan!

That's all, don't get your hands too sticky!

2021-07-23-gg3Eo-clipboard.png

2021-07-23-xHW8i-clipboard.png

πŸ”—Fractal

Alexandre Franke announced:

It’s been three weeks already since our last update and we have a fair amount of new things to report.

As I write this, our interns Alejandro and Kai are at GUADEC, the annual GNOME conference, presenting during the interns lightning talk. The former has submitted a couple of merge requests (!793 and !794) that were necessary for the UI to accommodate his upcoming multi-account work. The latter has provided a view for when no room is selected. As for their mentor, Julian, he changed member loading so it only happens once a room is opened, to improve performances. He also changed Matrix event handling to use SyncRoomEvent, which paves the way for display of various message types in the timeline of a room.

Giuseppe offered two nice additions to the login view:

And to conclude this summary, we welcome πŸŽ‰ newcomer Veli TasalΔ± who fixed a papercut I reported: when typing long messages, buttons next to the message entry were expanding along with the entry and now they keep nicely aligned.

πŸ”—Element Clients

Delight team

  • We’ve been shepherding MSC3083 into FCP to improve private spaces
  • We’ve also been working on restricted room support in Synapse and Element Web & Android
  • We’ve been improving onboarding experiences for Spaces, improving 3pid invites on Android, improving email invites and making matrix.to aware of spaces
  • On iOS, we’ve finished the first implementation of Space navigation which we can share soon!
  • We’re also figuring out what’s missing to mature Spaces enough to exit beta

VoIP

  • Call event tiles for 1:1 calls merged, for better summaries of call history.
  • 1:1 screen sharing ready to merge!
  • Looking at bug where jitsi calls stay always-on-screen even when hung up.

Web

  • Released v1.7.33
  • Message bubbles PR merged!
  • Updated desktop to electron 13, complete with new n-api build of seshat (thanks, Poljar!)
  • More work on changelog tooling

iOS

  • We cancelled the release of 1.4.6 because of the discovery of high profile bugs or crashes . We will release 1.4.7 on the App Store on Monday. Those releases contain mainly bug fixes and papercuts
  • Voice messages are almost there. They are on develop under a LABS settings. They should be part of the next release candidate next Wednesday.
  • There are several papercuts in progress: URL preview, decryption of notifications content by default, removal of local contacts from the DM room list tab, removal of the room directory from the group room list, etc to list the major ones.

Android

  • Release 1.1.14 which fixes an important issue regarding message decryption is live on the PlayStore, on the beta channel, and will be in production quite soon. A patch has been applied to matrix.org to fix the problem.
  • Beside that, we are still polishing the spaces and voice messages

Ε imon Brandner shared some images of the new VoIP UX:

2021-07-23-m-Auj-125999362-eff54798-f9f7-421a-8e2b-6ed87a4f582c.png

2021-07-23-XEixh-120305328-e7a0e700-c2d0-11eb-9bc0-a93f4366b848.png

Naturally the screen sharing feature will allow you to share your own screen, rather than Ε imon's!

πŸ”—Beeper update

Tulir said:

πŸ”—Desktop

  • New keyboard shortcuts:

    • Navigating room list with arrow keys when there's no room open (and esc to close the current room)
    • Global shortcut to open Beeper
  • Rooms are opened where you left off (like Telegram, WhatsApp, etc) instead of at the bottom

  • Updated unread room indicators: a colored circle around the room avatar (screenshot here)

πŸ”—Bridges

πŸ”—LinkedIn

We've integrated the LinkedIn bridge into Beeper. The bridge is in beta and is generally ready for use. Since the last update, we moved it to GitLab, added a Docker image, and implemented reaction and redaction handling in both directions! We also fixed a bunch of bugs across the board to improve reliability.

πŸ”—Android SMS

The Android SMS bridge mentioned in the last update is progressing. It should be ready for self-hosted use in a few weeks, so our next update will probably include that.

Related to the SMS bridge, I've made mautrix-syncproxy, which is a microservice to do the /syncing required for end-to-bridge encryption (to-device events and such) in the cloud and forwarding the data to the normal appservice transaction endpoint. When combined with mautrix-wsproxy, it allows the SMS bridge to only have a websocket connection, which uses significantly less battery than a HTTP request every 30 seconds. The sync proxy partially implements MSC3202 and the to-device part of MSC2409 (partially because it only does individual users rather than all appservice-owned users).

We're hiring React, iOS, Android and SRE/Devops engineers. If you're interested, check out https://jobs.ashbyhq.com/beeper or DM Eric Migicovsky.

2021-07-23-Nbx_w-image.png

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruby

Ananace told us:

Just tagged and pushed version 2.4.0 of the Ruby SDK, along with an updated image for the example bot. This version adds support for the Matrix URIs as well as some basic spaces functionality, it also fixes some errors due to the removed empty /sync fields in Synapse 1.38.0

Feel free to drop by #ruby-matrix-sdk:kittenface.studio for any questions or comments.

πŸ”—Dept of Bots πŸ€–

πŸ”—Hebbot (This Week in X bot)

Felix told us:

Several GNOME contributors and I have been following TWIM and really enjoyed the concept. Since open source is about stealing sharing ideas, we wanted to deploy something similar for GNOME.

I gave this room's beloved twim-o-matic a try and fiddled a bit with the code. But I soon found that it is too specialised for matrix.org. That's when I decided to write a project agnostic TWIx bot based on matrix-rust-sdk called Hebbot!

Here is how it looks in practice with a companion website for GNOME. If you’re interested in how it looks behind the scenes, have a look at this blog post which explains how it works.

I released a first version on July 17, but I’m already working on making it smarter for a next release. In the meantime you can already use it for your project!

Love it, though I wish twim-o-matic had more of my attention! Maybe we can retire it and use Hebbot..?

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Matrix Plugin for OctoPrint

Cadair offered:

This week I have developed a new plugin for OctoPrint which is a tool for controlling and monitoring 3D printers, which sends notifications about your prints and status of your 3D printer to matrix. The existing OctoSlack plugin also has Matrix support but fell foul of the /sync response changes in Synapse 1.38, and also sent the images from the camera to Matrix as inline images rather than m.image events, so they didn't render on some clients.

My new plugin can send messages on most events supported by OctoPrint, but the core events which are configurable through the OctoPrint web UI are print started, paused, completed and failed as well as print progress notifications. If you want Matrix notifications for your 3D prints, you can install the plugin through the official OctoPrint plugin repository or by installing from the GitHub repository. If you have any feature requests or pull requests, contributions to the plugin are very welcome.

Here is a preview of a print progress notification from something I was printing last night:

2021-07-23-opi2f-IMG_20210723_124408.jpg

2021-07-23-fZf-n-matrix_logo_print_status.png

πŸ”—Matrix in the News πŸ“°

πŸ”—Matrix & IRC | Size & Stability

Gwmngilfen said:

Following on from my post about how I'd like to convince Ansible to move to Matrix, I looked into the relative sizes of the networks, took a look at the active users in our channels, and even took a shot quantifying bridge restarts and netsplits to assess relative stability. Check it out here

πŸ”—New Public Rooms 🏟️

πŸ”—Beyond Chat

Ryan reported:

A new Beyond Chat room (#beyond-chat:matrix.org) has been created! This room is meant for discussing various projects that build on Matrix for use cases beyond chat, such as collaborative documents, blogs, generic key-value databases, tools for thought, etc. Please join if these topics interest you. πŸ˜„

The Beyond Chat chat room is where Ryan chats about uses of Matrix beyond chat

πŸ”—Dept of Welcomes πŸ‘

πŸ”—VoIP

Robert Long announced:

Hey everyone, my name's Robert Long. I've just joined Element last week and I'm coming in to work on the VoIP team. This week I started working on full mesh video conferencing and I'm super excited to share more as the work progresses!

Welcome Robert! Can't wait to see progress here. We'll even bring back the Dept of VoIP :D

πŸ”—Final Thoughts πŸ’­

πŸ”—Room of the week

timokoesters offered:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #godot:feneas.org

"A very helpful and friendly place for general discussion or questions pertaining to the FOSS Godot game engine and using it to make games, whether one is just beginning to learn or wish to discuss more advanced aspects of game (or Godot) development."


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—Royal Navy using Matrix!

Amazing to see @Navy_Innovation showing off low-bandwidth @matrixdotorg decentralised comms to 1SL (Head of the @RoyalNavy) using Titanium: our CivTAK Matrix plugin. At this rate Matrix is on track to become the common language across the entire public sector!βš“οΈπŸ“»πŸ‡¬πŸ‡§ https://t.co/UDIA2GBVm9

— Element (@element_hq) July 23, 2021

πŸ”—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
1envs.net358
2maunium.net432
3sorunome.de461.5
4kapsi.fi547
5boba.best566.5
6trolla.us767.5
7heitkoetter.net952.5
8aria-net.org1035
9konqi.work1186
10roeckx.be1696

πŸ”—#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
1conduit.supercable.onl173
2dendrite.nordgedanken.dev184
3matrix.org322
4dendrite.neilalexander.dev398.5
5conduit.rs1451.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 2021-07-16

16.07.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa announced:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Closed MSCs:

πŸ”—Spec Updates

Several members of the Spec Core Team reviewed MSC2674 (Event relationships) this week in order to help push along the efforts to finally ship aggregations in the spec. Otherwise MSC3245 (voice messages via extensible events) is moving along with final comment period proposed this week. The implementation in Element Web in reportedly working well, helping to prove the spec in practice. And finally, MSC3277 (scheduled messages) which appeared over the weekend to try and allow for scheduling events to send later in Matrix (and all the fun edge cases that come with it).

Thanks to everyone who submitted, read and reviewed MSCs this week. It takes people to move this stuff forward!

2021-07-16-9h_yU-stacked_area_chart.png

πŸ”—Dept of GSoC πŸŽ“οΈ

πŸ”—Google Summer of Code 2021: first evaluations complete!

We heard from Callum last week, and will have more reports in future, but for now just know that all seven GSoC projects are progressing well. To remind yourself of this year's projects, see the list provided by Google or our welcome blog post.

Alexandre Franke added:

I reckon you can count the two Fractal interns as well. :)

Reckon you're right pardner! We'll look forward to a roundup of the work done for Fractal too.

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander told us:

In case you missed it, we released Dendrite 0.4.0 on Monday and wrote a blog post about it! It's taken us a little while to get to this release, but it includes a number of quality-of-life improvements and changes that will significantly reduce the amount of resources needed to run a Dendrite server. The full changelog is available on GitHub and many juicy details in the aforementioned blog post, but at a high level this release includes:

  • All-new state storage, designed to reduce the amount of disk space that the roomserver takes up to store room state by aggressively deduplicating state blocks and snapshots

  • Improved appservice support, with a number of bridges now working with Dendrite

  • Shared secret registration (using the same API shape as Synapse)

  • Optimisations in the federation API /send and /get_missing_events endpoints to reduce memory usage

  • Improved state resolution v2 performance when dealing with power level events

  • Per-room queuing to reduce head-of-line blocking on the roomserver input API

  • Lots of bug fixes around invites, registration, sync and media, and 5 panics fixed

Since the release, we've been working on:

  • Completing key notary support

  • Fixing state_default for power levels in gomatrixserverlib

  • Resolving some issues around rejecting invites, particularly when the remote server is not available

  • Reducing the cost of checking if the local server is in a given room

Since our last update, our Sytest compliance numbers have been on the rise again, taking us ever closer to our goals:

  • Client-server APIs: 61%, up from 60% last time

  • Server-server APIs: 92%, up from 80% last time

  • Appservice APIs: 52%

As always, please feel free to join us in #dendrite:matrix.org for general Dendrite chat, and #dendrite-dev:matrix.org if you are interested in contributing!

πŸ”—Synapse

callahad told us:

The big news of the week is the release of Synapse 1.38, which converts several integer columns to bigint, allowing Synapse to process more than 2 billion (231) events. Which, incidentally, matrix.org did last week πŸ“ˆ:

2021-07-16-N2mUM-synapse-event-bigint.png

But that's not the only thing new in Synapse 1.38. We also landed the ability to set an expiry time on cache entries, allowing you to reclaim memory from infrequently accessed caches. Configuring this to "1h" on matrix.org has already yielded a noticeable reduction in overall memory use πŸ“‰:

2021-07-16-3j8uF-synapse-1.38-cache-expiry.png

We'd encourage you to read the full announcement for more β€” See you next week πŸ‘‹!

πŸ”—Registration management for Token Authenticated Registration

callum told us:

Another short update about my GSoC project, this time about the Synapse admin API for managing tokens. https://calcuode.com/matrix-gsoc/2021-07-16_admin-api.html

See also Matrix Live with Callum last week.

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace said:

This week too brings updates to my Helm Charts, with Synapse having been updated to 1.38.0.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-puppeteer-line

Fair said:

A bridge for LINE Messenger based on running LINE's Chrome extension in Puppeteer.

Docker is now supported, via Dockerfiles that actually work now! But for the time being, Docker images must be built manually, as I am yet to deploy a Docker registry for prebuilt images.

Also, sample systemd service unit configuration files are now available, courtesy of @lecris:lecris.me πŸ™‚

For more info on all of this, see SETUP.md.

What I'm working on next is a bot command to list all of your LINE contacts & groups (similar to mautrix-whatsapp's list <contacts|groups>), and the ability to sync a LINE DM by inviting a contact to a Matrix DM. This will allow messaging LINE contacts that the bridge didn't yet create a portal for.

And please, feel free to try out this bridge! It should be serviceable for day-to-day usage now. I still won't be able to host a public instance of it for a while, though (as it is fairly hefty due to having to run Chrome), so you'll have to self-host if you want to try it.

Discussion: #matrix-puppeteer-line:miscworks.net

Issue page: https://src.miscworks.net/fair/matrix-puppeteer-line/issues

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

This week we fixed bugs. Switching room should now be quite a bit faster again and once Qt 6.3 is released with some important bugfixes, scrolling in Nheko should be super smooth. (We can't enable that flag yet, because of 3 bugs in the item pooling code in Qt.)

Other bugfixes:

  • Inline images sometimes wouldn't show, but now inline emotes and images should render once they are loaded! (This took me a year to figure out)

  • You can now send edits in encryted rooms again, if they are a reply to an event.

  • No more reply fallback in the room list.

  • At some point timed out verification requests started showing up on startup. That regression is fixed now.

  • Fix rooms not showing up after login because we were off by one.

  • Fix some cases where the loading spinner wouldn't stop animating and as such consistently use CPU, when a room is open.

  • Cache db transactions to reduce allocations and memory zeroing when loading a room or scrolling.

  • Fix some edge cases in the blurhash decoding, that could lead to brownish image previews.

  • Fix accepting an invite not placing you in the joined room.

πŸ”—Element Clients

With updates supplied by the teams

Delight team

  • We’ve been shepherding through MSCs to improve private spaces, namely MSC3083 (Restricting room membership based on space membership)
  • Meanwhile, we’re also implementing outstanding polish, planning steps for Spaces to exit beta

Web

  • v1.7.33-rc.1 now up for testing on https://staging.element.io/ with support for blurhash, draggable picture-in-picture view for calls
  • Contributing to element web? There are new labels and magic keywords for pull requests to show better information in the changelogs. See the contributor guide for more detail.
  • Do you use the master branch of element web or any of the web projects? Please let us know - it may go away soon.

Android

  • Still polishing the voice message feature: add support for Android 5, improve timeline rendering, improve animation in the composer, support for RTL language
  • Work on the account notification settings

πŸ”—Hydrogen

A minimal Matrix chat client, focused on performance, offline functionality, and broad browser support. https://github.com/vector-im/hydrogen-web/

Bruno said:

Still working on getting a big update out today with rendering of formatted messages and a brand new member list in the right panel!

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—PyQuotient

Aksem told us:

First news about Python bindings for libQuotient, C++ Qt-based Matrix SDK

After a month of hard work, we(I as GSoC student and kitsune as mentor) have bindings with tests for almost all core classes and also initial version of the demo client, in which you can log in with a password or SSO, the server you enter is resolved automatically and also after successful login data is being synchronized. There is also a possibility to log out. So this part is on the same level as in Quotient.

Also, a small video with the client in action.

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Hack'n'Sun, the partially-Matrix-based summer tinkering camp

Nik offered:

Over the first weeks of July, Teckids e.V. held their annual summer camp for kids between 9 and 15 years. This year, after we started introducing Matrix and Element as a chat platform from September 2020 onwards, the camp was heavily relying on the platform for various parts.

Before the camp started, we invited all 90 participants to a chat room to get together, share a bit about what they expect, already did with coding and technical stuff, talk about what food they'd like to have for the barbecue, and stuff like that. Many of them engaged in the discussion, and started exploring Element (before you ask, yes, we hat a lot of snow and party poppers πŸ˜›!). Some got really excited that they could even change or add features to Element, or ask for such changes – we had to promise to hold a session where we find out how to add one new animation to Element. Unfortunately, Element is developed on GitHub, so the potential young contributors are locked out by the exclusive Terms of Use there. We are trying to reach out to Element HQ to find a solution.

During the camp, verifying crypto sessions using emojis again made for a good party game to get to know each other (like, find the kid a nickname belongs to on the camp site, start verification, and compare emojis – a lot of fun that we, again, did not even have to start, because someone always finds out about it and asks what it is about).

Now that everyone got to know Matrix for chatting, in one of our workshops, the participants discovered that not only people, but also devices can send messages, and react to replies – in that workshop, the kids built a chat-ops IoT door beel (for their tent on site, or room at home). They soldered a circuit board to fit an ESP (MicroPython) micro controller on, and coded a small program (using templates with differing complexity levels), defining what the door bell should send when a button is pressed, on what messages to react, and the like. We produced a fun video about the project (German audio, English subtitles): https://eduvid.org/videos/watch/20a50c25-ecb4-48c0-9b13-de2548f290d4?subtitle=en . The (minimal and somewhat buggy) MicroPython client library is published as Β΅trix.

Now, sadly, the event is over, and we slowly see (as expected, only a part of the) participants moving over to our long-term project chatrooms; we will start clearing the virtual camp site chatroom during the weekend to make room for a new group.

Asked about the regularity of these events, Nik replied:

We are still experimenting with our new camp formats. As bad as it all is, COVID caused a lot of innovation here because we were forced to leave the known roads we normally travelled, and now we are starting to integrate all that new stuff (like really embracing Matrix) into outdoor and presence events. I think we are on a really good way with it, and surely I will keep posting updates that might be of interest for the greater community.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Cactus Comments 🌡

carl announced:

Cactus Comments is a federated comment system for the open web built on Matrix.

This week, I'm reporting the changes to our backend service since it last appeared on

  • Feature: Restrict which users can interact with cactusbot (contributed by Karmanyaah Malhotra in MR !3).

  • Feature: Include comment section id in room name.

  • Bugfix: Malformed events no longer cause a crash loop.

  • Bugfix: Users can no longer register a site without a name.

  • Hotfix: Mitigated timeouts under heavy load with a temporary LRU cache.

  • Internal: Pin sub-dependencies.

  • Internal: Heavy linting in CI.

All these changes are available from version 0.5.0.

Demo: https://cactus.chat/demo

Matrix room: #cactus:cactus.chat

Introductory blog post: https://cactus.chat/blog/hello-cactus-comments/

Source code: https://gitlab.com/cactus-comments

πŸ”—Dept of Guides 🧭

πŸ”—New business-oriented guide to using Matrix and Element

The Reidel Law Firm from Galveston, Texas have produced an excellent business-oriented guide to using Matrix and Element. As they announced in a blog post last month:

Reidel Law Firm remains committed to providing top notch legal services in Franchise Law, International Trade Law, and Business Law while maintaining accessibility, (one of our Firm’s core values) to our clients, colleagues, and friends of the firm. Utilizing our own secured chat platform allows us to be in communication with our clients around the world while maintaining the utmost in data security and client privacy.

Schuyler "Rocky" Reidel added:

I believe in Matrix+Element and encourage my clients and law firms to get ahead of the curve or get left behind and become irrelevant. Email has to die, its just the worst. Also, I forgot to note earlier that the guide is copyright free. I hope other business owners will use and revise it for their own uses.

Strong words! You can find the guide from Reidel on their website.

πŸ”—Final Thoughts πŸ’­

πŸ”—Room of the week

timokoesters told us:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's room is: #formula1:matrix.org

"The pinnacle of motorsport! We're in an exciting time in Formula 1 with a close championship and exciting battles. Come hang out and chat about the upcoming race in Silverstone on July 18th!"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—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
1envs.net517
2kif.rocks552
3maunium.net652
4synapse.clippyco.com677.5
5maescool.be697
6utzutzutz.net788
7kapsi.fi789
8liberta.casa831.5
9trolla.us855
10nordgedanken.dev1106

πŸ”—#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.nordgedanken.dev89
2construct.supercable.onl197
3pc.koesters.xyz:6167217.5
4conduit.rs566
5dendrite.neilalexander.dev729
6dendrite.s3cr3t.me856
7dendrite01.fiksel.info872.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 2021-07-09

09.07.2021 00:00 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Ansible Community considers Matrix

Gwmngilfen offered:

I'm the Principal Data Scientist for the Ansible Community. We're hoping to switch to Matrix as our primary platform in the near future, and I've just written up my thoughts on why that's a good idea, what the consequences might be, and where we go from here. Find it at https://ansible.github.io/community/posts/matrix_and_ansible.html

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa told us:

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/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

A concrete plan has been drafted for publishing the new spec release, and is currently undergoing execution. This release will include many changes that have built up since the last release (back before the new spec redesign even), as well as the new Matrix Global Version Number scheme. Look forward to it dropping soon!

Otherwise Bruno has been hard at work continuing to push forward the various aggregation MSCs (1 2 3 4). MSC3083 (restricted room memberships) is being updated as part of finalising the new Spaces feature as well as MSC2716 (history import).

As well as lots of new MSCs as listed above. Busy times!

2021-07-09-ADEDa-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Conduit

Conduit is a Matrix homeserver written in Rust https://conduit.rs

timokoesters said:

The last two weeks I worked on a few very big optimizations. We also almost finished sqlite support for Conduit, which is slower than sled in benchmarks, but has much better RAM usage characteristics.

  • Batch up and cache /sync responses for when clients time out

  • LRU cache for deserialized PDUs

  • More efficient state res by only fetching events it needs

πŸ”—Dendrite / gomatrixserverlib

Neil Alexander said:

Rumours of Dendrite's demise have been greatly exaggerated. Stay tuned for more updates very soon.

We will stay highly tuned!

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

Big(int) news! This week Matrix.org processed its 2^31st event, exceeding the range of a PostgreSQL integer column for the first time. This caused a bit of a scramble in the aftermath of last week's spam attack, as we had a few integer columns in our schema which we needed to convert to bigint. Fortunately, we were able to complete the change sufficiently in advance (#8255), and also took the opportunity to audit other columns and sequences in the database which could conceivably overflow. Synapse 1.38, due out next week, will automatically migrate homeservers when they upgrade. We run the migration as a background task, so homeservers should continue functioning as normal throughout, though they may use a bit more disk and memory, especially when rebuilding indexes for the new bigint column.

We're also starting to hone in on our team's goals for this quarter, and it's looking like our primary focus will be on improving room join speeds. Wish us luck!

Lastly, we're overjoyed to announce that @reivilibre, a former intern on the backend team, joined Element this week! We can't wait to see where he helps us take Synapse!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace said:

This week too gets a Helm Chart update, with element-web having been updated to 1.7.32

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-puppeteer-line progresses

Fair reported:

matrix-puppeteer-line: A bridge for LINE Messenger based on running LINE's Chrome extension in Puppeteer.

This week was spent on adding proper support for LINE user joins/leaves (though invites/kicks are still a TODO), bug fixes, and ease of deployment. Docker and systemd setups will be ready shortly.

And this bridge should soon be listed on https://matrix.org/bridges/, if it isn't already πŸ™‚ Thanks madlittlemods (Eric Eastwood) for accepting the PR!

Discussion: #matrix-puppeteer-line:miscworks.net

Issue page: https://src.miscworks.net/fair/matrix-puppeteer-line/issues

πŸ”—Dept of Clients πŸ“±

πŸ”—Element Clients

Updates provided by the teams!

Delight team

  • Spaces:
    • iOS development is progressing, some (dev) can see spaces in the left panel
    • Wrapping up work on new settings for restricted rooms, and UI to promote the feature to space admins
    • Maintenance and bug fixing.

VoIP

  • Improvements to in-call designs on Android
  • Dial pad improvements about to land on web

Web

  • Working on performance testing on large accounts to catch slowdowns and generally improve app performance
  • More under-the-hood TypeScript conversion
  • Message bubbles experiment almost ready to land!
  • Working on universal macOS builds for the desktop app

Android

  • Element Android 1.1.12 is now live on the PlayStore, will be available on F-Droid soon
  • We are polishing the voice message feature
  • Also we are progressing well on the RustSDK integration

πŸ”—SchildiChat

SpiritCroc reported:

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.

There are two announcements that we can share with you this week:

  • SchildiChat for Android is back in the Google Play Store! Users who have previously installed the release using our own F-Droid repo will be able to update without the need to re-install. All previous ways to install the app will remain available as well.

  • You can now help us translate SchildiChat using Weblate! Note that this only contains SchildiChat-specific translations, we continue to use Element's translations where possible.

Apart from that, we have mainly been focusing on smaller improvements and fixes, while staying up-to-date with new Element releases.

For more information about SchildiChat, feel free to visit our website or check out our source code!

Also, feel free to join our Matrix rooms, which you can find in the new SchildiChat space: #schildichat:matrix.org

πŸ”—Nheko

Nheko is a desktop client using Qt and C++17. It supports E2EE and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) told us:

Spaces work is making progress. Some rooms can now be previewed. To improve that situation, I wrote an MSC to preview specific rooms. Alternatively we will try to get the previews for the few rooms you aren't joined to from the space summary API, currently we are just fetching the existing state. You can also now join previewed rooms and the design of joining invites was adapted to match it.

red_skyβ˜„οΈ went through the pain of fixing the Windows builds after we changed our http backend last week. So if you want to try it out, you can test it on Windows. We also replaced the old, boring spinner with an animated Nheko logo. If you see that a lot and think it is Nheko's fault, don't hesitate to open an issue! But in most cases it will probably be your server. Sadly no screenshot of how the spinner looks like, my server is too fast and taking a proper screenshot is too much effort because of that. ;p

We also fixed an issue with updating device lists in the develop version of Nheko. If you were using the nightlies, now is a good time to update! In more E2EE news, symmetric megolm backup fixes the issues I had with the online key backup, so looking forward to implementing that.

2021-07-09-dl7gn-clipboard.png

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Opsdroid 0.23

Cadair offered:

The latest release of opsdroid is out with various fixes which can be seen in the changelog. The main point to note for matrix users is that older versions of matrix-nio (the matrix client library used by opsdroid) did not support the synapse change to omit optional fields from sync. Therefore if you are using our docker images you will need to update to 0.23 to get a container with the newest matrix-nio included.

The other change which is relevant to matrix users is that Oleg has added support for version 2 of the Rasa NLU framework, so you can once again do open source, self hosted natural language bots.

πŸ”—Dept of Bots πŸ€–

πŸ”—home-assistant-bot release v2.0.1

Oleg announced:

πŸ”—This release adds a fix for compatibility with Synapse >= v1.38.0

This bot is based on opsdroid bot framework and aims to control actions in home-assistant via Matrix.

Feel free to come by at #home-assistant-bot:fiksel.info πŸ˜‰

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—Server_Stats Statistical Data

MTRNord offered:

Thanks to Gwmngilfen I touched RStudio and toyed a little with some data as well.

You can find some graphs over at https://github.com/MTRNord/server_stats_r_statistics/blob/main/scripts/rooms_members.md

For the first graph the credit fully goes to Gwmngilfen :)

The second one is in log scale for both axis but essentially the same :)

This is obviously currently very spare but I hope to add more statistics when I understand R lang :) This is in fact my first time doing something with R so my skillset is limited :)

πŸ”—Dept of Guides 🧭

πŸ”—Matrix Bot inside of a Docker Container

krazykirby99999 announced:

Run Matrix Python bots inside of Docker Containers with Simple-Matrix-Bot-Lib and Docker!

This is a guide for isolating and running your Matrix bot within a Docker container. It is also applicable to bots written using other libraries and languages.

https://simple-matrix-bot-lib.readthedocs.io/en/latest/usage-with-docker.html

πŸ”—New Public Rooms 🏟️

πŸ”—Room of the week

timokoesters told us:

Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?

This is why I want to share rooms (or spaces) I find interesting.


This week's space is: #mathematics-on:matrix.org

Biggest room: #mathematicsq&a:matrix.org

"For questions about any part of maths!"


If you want to suggest a room for this section, tell me in #roomoftheweek:fachschaften.org

πŸ”—Final Thoughts πŸ’­

Cadair offered:

In meta twim news, the twim updates bot (which posts in #twim_updates:cadair.com) has been upgraded to opsdroid 0.23 and now correctly keeps the formatted body when an event is edited.

πŸ”—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
1envs.net477
2kapsi.fi568.5
3trolla.us708.5
4matrix.debian.social735
5rollyourown.xyz747
6semisol.dev767
7boba.best771.5
8matrix.sp-codes.de784
9shortestpath.dev871.5
10nordgedanken.dev872

πŸ”—#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.neilalexander.dev602.5
2dendrite.s3cr3t.me803.5
3dendrite01.fiksel.info831.5
4conduit.rs2172.5

πŸ”—That's all I know 🏁

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