This Week in Matrix

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

Atom Feed

This Week in Matrix 2022-01-14

14.01.2022 00:00 — This Week in Matrix Thib

Matrix Live 🎙

Dept of Spec 📜

anoa announces

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

Closed MSCs:

Spec Updates

Hot on the heels (relatively speaking) of v1.1 of the Spec being released in November, v1.2 is now on the horizon! As a reminder, we're working towards quarterly releases of the spec going forwards - no hard dates yet though.

While this is certainly an improvement in speed, when it comes to writing software and updating implementations: quarterly spec updates may actually seem too fast. This is OK; implementations of the spec are not expected to update as soon as a new spec release is published. Rather, it is more realistic to expect that the ecosystem updates gradually over the course of the next few months/year after the release.

Look forward to more concrete dates soon!

Random MSC of the Week

The random MSC of the week is... MSC2702: Specifying semantics for Content-Disposition on media!

This looks like a small, but useful improvement to the spec that never really received much love. Feel free to give it some!

Dept of Servers 🏢

Synapse (website)

Synapse is the reference homeserver for Matrix

anoa says

Happy Friday everyone! Today the Synapse team has released Synapse 1.50.0rc2. It fixes a particularly nasty federation-breaking regression that crept in during 1.50.0rc1. If you're currently running 1.50.0rc1, we implore you to update to 1.50.0rc2 as soon as possible!

In other news, a reminder that as of Synapse 1.50.0rc1, we have ended support for Python 3.6 and PostgreSQL 9.6 as per our dependency deprecation policy, as upstream has marked them as end-of-life.

We'll let the community test 1.50.0rc2 over the weekend to ensure that no other regressions have emerged (please test if you can)! If not, expect Synapse 1.50 to land sometime early next week.

Conduit (website)

Conduit is a simple, fast and reliable chat server powered by Matrix

Timo ⚡️ reports

It has been a long time since my last TWIM post, so here's a summary of all exciting news:

Features:

  • We now support RocksDB as a backend. Migrating to RocksDB improved both my memory and IO usage a lot.
  • You can select the database backend at runtime. No need to recompile a special version anymore.
  • Lazy loading works. This means initial syncs are significantly faster (1-2 minutes instead of an hour!)
  • Voice calls are now supported (requires configuring a TURN server)
  • The report feature is now implemented and sends a report into the admin room

Improvements:

  • Much faster state resolution
  • Batch inserts for events
  • Better appservice docs
  • Lots of bug fixes

All of this is currently available on the next branch. We are preparing to make a v0.3.0 release soon!

Join #conduit:fachschaften.org to help us test it.

Thanks to everyone who supports me on Liberapay or Bitcoin!

Dept of Bridges 🌉

Heisenbridge (website)

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi announces

Release v1.10.0 🥳

  • RELAYMSG sending support 🚀
  • Allow forwarding all IRC noise to network room 🤫
  • Support ZNC self-message caps ✅
  • Support CHGHOST caps (prevents leave+join on host change) ✅
  • Fix owner auto-registration (regression) 🐛
  • Upgrade to Mautrix 0.14 ⬆️

Sending RELAYMSGs have been requested for a while so now we do support that if the cap is added to request list. This makes plumbs on networks that support it work nicer. Receiving RELAYMSGs has not been implemented yet so they show up as external like before.

If you prefer keeping your IRC rooms clean without any IRC noise (mode changes etc.) you can now use a new FORWARD command in the network room to make all such events happen in the network room instead. This affects in-room commands as well.

ZNC users can now enjoy messages coming from your own clone in IRC rooms (including PMs!) if you wish so by keeping the znc.in/self-message cap enabled. This isn't extremely well tested yet but feedback welcome.

Not a breaking change but the caps support will cause connections to networks that ignore CAP requests take a few seconds longer unless you remove all the default caps for said network and it will never try requesting them again.

Mautrix 0.14 upgrade bumps the minimum version as well so packages beware.

Get some global warming from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Dept of Clients 📱

Nheko (website)

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

Nico announces

We rewrote the whole settings page (as a stepping stone to 100% QML). Please test it and complain about everything I broke! We also tried to organize it a bit better so that similar settings are grouped together and tried to use the right controls for the right things. Best case you didn't notice anything. ;-)

And we also now show which profile a notification is for on KDE. I don't think other DEs have such a feature, so those will just show the generic Nheko as always.

Hydrogen (website)

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

Bruno reports

We're about to release 0.2.23 after somewhat of a release hiatus. We've been working on two fronts:

  • Get the SDK out! Hydrogen was always meant to be easy to embedded, reuse in parts, and make customized versions of. But until now, actually doing that was quite challenging. Now that the SDK is out, you can use the hydrogen-view-sdk package in your projects and use parts of Hydrogen in your application. It's still early days, and we're still working out what symbols should be exported (finding a balance between APIs we want to support and utility), etc. Expect updates in the coming weeks. We're also not yet promising API stability for now, some APIs will very likely still change. Once we hit 1.0, we won't change things from underneath you anymore without increasing the major version.
  • Rich reply previews: as part of providing minimal support for threads (representing them as replies), we're switching from using the embedded reply fallback and actually looking up the replied-to message. One benefit is that reply previews will now updated when they are redacted (and edited, once we support that :).
  • Also fix some minor other things, like loading images when they are only partially visible, and a very basic location tile.

Element (website)

Everything related to Element but not strictly bound to a client

kittykat announces

Threads

  • Issue with thread panel rendering timeline has been fixed
  • Reviewing plans for backward compatibility with clients that don’t support threaded messages

Polls

  • iOS and Android starting on the next phase of development, look out for poll editing and other exciting changes! You can enable polls in the Settings, under Labs.

Community Testing

Analytics

  • You can now opt in to sending anonymous analytics data in the user settings on all platforms. Please enable it in the “Security & Privacy” menu, under “Analytics” to help us understand better how Element apps are used.
  • Mobile app users will see an opt-in screen on first startup on Android in 1.3.14 and iOS in 1.6.12

Element Web/Desktop (website)

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

kittykat announces

  • Maximised widgets merged into the release candidate and on track for the next release (see the Beyond Chat section for more info on this feature)
  • Fix code blocks being wrongly wrapped causing the line numbers to misalign, this was a regression in 1.9.8
  • Fixed ability to edit horizontal rules in markdown
  • Fixed some edge cases around Spaces not updating properly causing rooms to show up in the wrong Space
  • Add ability to cancel an outbound message during its encryption phase
  • Fix wrongly sending typing indicator when restoring a draft when changing room
  • Replace kick terminology with remove to be more inclusive
  • In labs (you can enable labs in Settings on develop.element.io or on Nightly)
    • Polishing bubbles layout
    • Upgrade to Electron 16 for Element Nightly - we are expecting this to help resolve some of the issues caused by Electron. Intending to release to production in 1.9.10 (two weeks away)

J. Ryan Stinnett announces

The maximised widgets feature in Element Web that Timo K. has been working on is now available for everyone on develop, and it's on track for the next web release. 🚀 It's a great match for widget-based collaborative editors, dashboards, games, and more. The widget becomes the focus of the room. You can optionally show chat from the room in a side panel, allowing easy discussion of the document / dashboard / game.

To try it out, add a widget to a room in the usual way, then look for the new "maximise" button in the room info panel's widget section. Please let us know in #beyond-chat:matrix.org or in issues if you have any feedback. 😄

Element iOS (website)

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

kittykat reports

  • Working on improving app startup speed (note that this is the green spinner, not the account sync)
  • Issue with home view in dark mode was reported this morning and fixed this afternoon
  • In development:

Element Android (website)

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

kittykat says

  • First time user experiences (FTUE) changes are starting to land, including changes to the login screen which will be available in next week’s release.
  • Replace kick terminology with remove to be more inclusive
  • Resolved issue with stuck event in the timeline, which will be released with 1.3.16

Beeper (website)

All you chats in one app.

Brad Murray announces

Beeper is a universal chat app built on top of Matrix. We've created 12+ open source Matrix bridges and integrated them into an easy to use all-in-one service which does not require setting up your own homeserver. You can learn more at beeper.com.

Our team is growing! We’re now at 25 people, all remote around the world. Recent additions include hifi (creator of Heisenbridge) and Finn (creator of signald).

We are hiring many full-time remote roles including:

  • Bridge developers
  • iOS engineers
  • Product designers

Learn more here and apply through that site, or message @eric:beeper.com

Beeper Desktop

  • We recently released a Beeper Desktop update with a new room list and a ton of UI improvements. Check out the video below!
    • Made it easier to triage your inbox by moving unread dots to left
    • Made the list of connected bridges more compact
    • New link previews
    • Loads of bug fixes including improvements to scrolling

Beeper Bridges

  • We introduced a new version of our iMessage bridge designed for Mac OS computers with SIP disabled. https://docs.mau.fi/bridges/go/imessage/mac-nosip/setup.html Now includes support for:

    • Tapbacks
    • SMS via Continuity
    • Threaded replies
    • Synced read states to other iDevices and

    Most importantly, we launched a cloud Mac service that allows you to use iMessage with Beeper if you do not have access to an always-on Mac computer. Included with your Beeper subscription!

  • Voice messages are bridged in native format in both directions for all Beeper bridges

  • Signal bridge now supports disappearing messages

  • All Instagram message types are now bridged

  • Added support for Telegram message reactions

  • WhatsApp bridge now backfills 3 months worth of chats

Beeper Android

  • Coming soon: A recent addition to our Android team has added encrypted search by massaging seshat into the app. Expect an upstream PR for this into Element Android as well!

Dept of SDKs and Frameworks 🧰

Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict says

Trixnity version 1.0.0 is out! I decided to make it 1.0.0 not because it is out of beta, but because it has most features you need to build a usable client. That means: cross signing has landed into Trixnity! The next big features will be room key backup and push notification.

Here is the changelog:

  • fully support cross signing
  • load members of rooms in an async way (you don't need to catch errors anymore)
  • reactive displayname and avatar url of the logged-in user
  • reactive avatar url for rooms
  • reactive is-direct-room state for rooms
  • better Android support for thumbnails
  • make part of device keys API public
  • merge SecureStore into Store (encrypt your database if you want to keep secrets secure)
  • move trixnity-client-api model-classes into separate module to use them e.g. for a matrix server implementation (thanks to @NicolasJouanin)
  • fixed long standing bug of wrong room name calculation
  • account data events are handled as if they have a key (like state events) to bypass inconsistency in the spec (maybe this will lead into a MSC)

ruby-matrix-sdk (website)

Ruby SDK for the Matrix communication protocol

Ananace says

Just cut a new release of the Ruby Matrix SDK, with 2.5.0 there's some preliminary support for Matrix 1.1 and the client/v3 API, the information for room knocking is exposed properly, some threading issues have had workarounds applied, and a bunch of fixes have been applied.

Additional thanks go out to the nice people submitting PRs on GitHub and the members of the #ruby-matrix-sdk:kittenface.studio room.

Ananace says

Currently running my own ping bot with it, I'm doing the GitHub (and hopefully also GitLab at some point) releasetracker bot, I've got my definitely not suitable for production MatrixFS, there's a notification module for TheForeman which we use at the university. And I've got some MSC hacks as well, like the MSC2108 testbed.

matrix-crdt (website)

Use Matrix as a backend for local-first applications with the Matrix-CRDT Yjs provider.

yousefed reports

I just open sourced a library called Matrix-CRDT: https://github.com/yousefED/matrix-crdt - feedback very welcome! It allows you to use Matrix as a backend for decentralized, local-first collaborative apps. Above you see a collaborative rich text editor (like Google Docs) powered by Matrix!

You can try the Rich text editor here: https://bup9l.csb.app (see also the links in the repo, e.g. there is also a collaborative todo-list example)

J. Ryan Stinnett adds

If you have a distributed data structure and an algorithm that ensures all participants end up with the same result when their actions are combined, then that's effectively a CRDT as well. For Matrix, there a few research papers like https://arxiv.org/abs/2011.06488 which examine the CRDT-like properties.

Dept of Bots 🤖

GH-Bot (website)

The worst (according to its author!) but simplest webhook bot for GitHub and Matrix.

Jae Lo Presti announces

First stable release of the gh-bot which is a simple webhook to Matrix bot made in Python. As of now, the bot supports webhooks from Github, Gitlab and Gitea (although support for this one is very light). Some other projects might do that way better than this bot but this is a learning project, to learn step by step how client interact with servers. The next step would be to add a CRT.sh integration to get notified when a certificate is issued for a certain range of domains (which is something we want since we saw an IRC bot do the same).

Dept of Interesting Projects 🛰️

matrix-art (website)

A Devianart Fork based on Matrix

MTRNord (they/them) says

Matrix-Art is a new social network prototype on Matrix.

It is a direct Devianart style clone. It currently has a focus on only images but is going to get extended to other media types eventually. I am doing this as a toy project, so it may sometimes have slow progress. The goal is covering the main functions Devianart provides (Posting, Sharing, Profiles, Following, Collections, Comments) as well as integrations to other social networks on matrix using MSC3639.

A lot of things are currently still missing, but I am trying to get uploading working next :)

An instance is hosted at https://art.midnightthoughts.space/ and the code is at https://github.com/MTRNord/matrix-art

Currently, the interface is limited to viewing basic data from a matrix room. In the future, there are plans to have an open registration as well as login with any account to use it. :)

Note however that I suggest against using your personal account just yet, even though the login works, as it may have unexpected room joins at this time. This is known and expected, but not production ready.

Also, at this time, there are no plans of e2ee support. This may get added after the main features are finished.

For questions, feel free to join #matrix-art:nordgedanken.dev :)

Dept of Guides 🧭

Stas'M says

I just wrote an article about my experience using Matrix, and the question... is it worth posting in the news? The article is written in Russian and published on Habr... and since it's pretty big I'm not sure about translating it to English 😅

Here is the link: https://habr.com/ru/post/599777/ - it also mentions TWIM.

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.net442
2mtx.koyax.org584
3kapsi.fi698
4finallycoffee.eu877.5
5aria-net.org1032
6trygve.me1049
7fff.chat1528
8samlord.me1551
9bitcoin.ninja1598
10kreatea.space1845.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
1conduit.supercable.onl397.5
2rustybever.be655
3dendrite.thomcat.rocks672.5
4dendrite.matrix.org794.5
5dendrite.neilalexander.dev958
6matrix.spooks.cyou1405
7matrix.awesomesheep48.me1534
8conduit.cyberdi.sk3041
9dendrite.beckmeyer.us6883

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 2022-01-07

07.01.2022 19:58 — This Week in Matrix Thib
Last update: 07.01.2022 19:18

Matrix Live 🎙

What a pleasure it is to be back with the community for the new year! This week Erlend is detailing what Commune is, and I'm flabbergasted by how well thought-through the project is.

Dept of we've been away for holidays

This week in Matrix should be called Three Weeks in Matrix, since there hasn't been TWIM updates during the holiday season. Nico has published a first and second communitwim while I was away. All the news reports since the last official TWIM still made it to the post you're currently reading!

Dept of Spec 📜

TravisR says

Your regular spec person, anoa, is out today so you're stuck with me, not-anoa. This time I got the script to work though 😇

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

Note: This is for the last 3 weeks given TWIM holiday :)

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Closed MSCs: Sadly, not every MSC makes it to the end.

Spec Core Team

In terms of Spec Core Team MSC focus for this week the last little bit, we've been working on getting MSCs merged into the formal spec itself in preparation for v1.2 this quarter. We expect the release to happen quite soon and to contain Spaces, room versions 8 and 9, and refresh tokens (no spec PR yet) in addition to all the other wonderful stuff which has landed.

The merged MSCs can be seen over at https://spec.matrix.org/unstable/ where they're queued up for the next release. Look out for Added in v1.2 labels throughout the spec, denoting what is new and exciting.

Random MSC of the week

The random MSC this week is MSC2192: Inline widgets (I promise it was random, after a few re-rolls). Inline widgets are a concept that allows for rich functionality in the timeline without needing to necessarily specify an explicit event type. For example, video embeds, minigames, etc could all be represented by inline widgets instead of dedicated event types.

The MSC needs updating to handle MSC1767: Extensible Events (and friends), but once there it could be a very powerful bit of functionality, with free fallback thanks to Extensible Events.

The graph

Here's a stacked graph of MSC progress:

Kegan announces

Sliding sync (aka sync v3) is described in MSC3575 - it's still very early days for the proposal which means a lot can change: and YOU can be a part of that. Please take a look at the MSC and provide any and all feedback, be it on the names of keys, format of JSON objects, or the kinds of operations that can be performed. I'm particularly interested in feedback from client developers who have complex room list sort orders or room list filtering requirements and bot/bridge developers who typically don't have a visible room list UI. Any and all feedback at this stage is welcome, visit #sliding-sync:matrix.org to join the discussion.

Dept of Servers 🏢

Synapse (website)

Synapse is the reference homeserver for Matrix

callahad announces

We're back! New year, new release candidate: we published Synapse 1.50.0rc1 today, marking the end of life for our Python 3.6 and PostgreSQL 9.6 support. We've also extracted some shared utilities into their own package, matrix-common, which is used by Synapse, Sygnal, and Sydent.

We'll talk more about what's in 1.50 next week when it formally releases.

The Synapse team is expecting to spend most of January on behind-the-scenes work as we gear up to virtually host FOSDEM again! Members of the team will be presenting two talks this year: Shay on Events for the Uninitiated, and Brendan on Beyond the Matrix: Extend the capabilities of your Synapse homeserver. Check out the full devroom schedule here.

matrix-media-repo (website)

Matrix media repository with multi-domain in mind.

TravisR says

v1.2.9 v1.2.10 got released as a maintenance update. With early support for Matrix 1.1, S3 storage classes, and blurhash fixes it's worth the upgrade though there are other goodies - check out the changelog, and report bugs to the issue tracker 🙂

Homeserver Deployment 📥️

Helm Chart (website)

Matrix Kubernetes applications packaged into helm charts

Ananace reports

And as a end-of-year update, my Helm Charts have gotten updated yet again. With element-web ending up on 1.9.8, matrix-synapse on 1.49.2 (and .1 before that), and matrix-media-repo on 1.2.10

Dendrite Helm Chart (website)

Helm Chart to deploy Dendrite on Kubernetes

jonnobrow reports

The first iteration of a Dendrite Helm Chart has been released under the k8s-at-home charts repository. It currently supports a full monolithic deployment and requires minimal configuration to get up and running (just need to generate a matrix key and mount it as per the instructions).

If polylith is your thing then I recommend the chart by S7evinK for now, although it is likely these charts will merge in the future.

The chart and documentation are available here: https://github.com/k8s-at-home/charts/tree/master/charts/incubator/dendrite

Dept of Bridges 🌉

Matrix Webhook Receiver (website)

An add-on for the matrix-appservice-webhooks bridge. Webhooks are essentially web interfaces for applications to "push" data to. The bridge can receive messages in a certain format, which is nice if the notifying app can be configured. Often it cannot.

kim says

matrix-webhook-receiver has hit 1.1.0! Give feedback or talk to us about it over in #matrix-webhook-receiver:matrix.org! 🙂

Features

  • Advanced Templating! It is now possible to set format and msgtype based on arbitrary values from the webhook JSON via Jinja2. Shoutout to qg for suggesting this and giving their feedback!
  • compatibility with matrix-appservice-webhooks forks that read avatarUrl instead of avatar_url
  • allow mxc:// URL avatars
  • improvements to the GUI, including automatically resizing text areas and msc:// avatar URL preview
  • improvements to templates/examples including making use of above features
  • more documentation, including Tips & Tricks and Related Projects

Notable Fixes

Full Changelog: https://github.com/HarHarLinks/matrix-webhook-receiver/compare/1.0.0...1.1.0

matrix-hookshot (website)

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

Half-Shot says

Howdy folks, it is the time of the year where everyone scarpers! Anyway, perfect time to announce that matrix-hookshot has gotten it's first major release!. 1.0.0 is here!

For those not in the know, the hookshot bridge is used to bridge GitHub, GitLab, JIRA and Generic Webhooks into Matrix rooms. It doesn't just bridge into existing rooms, but can also spawn dynamic rooms based on aliases, send you your notifications in a DM and do lots of other wonderful things!

The notable changes from the 0.1.0 release are:

  • The bridge has now been renamed from matrix-github to matrix-hookshot.
  • Now supports JIRA and Generic Webhooks in addition to GitHub and GitLab.
  • Includes new commands and metrics reporting.
  • Includes complete documentation.

You can get involved and start playing with it by checking out the release here

And that will be my last TWIM entry of the year. Have a good one and stay safe all 🐶

That was in 2021! Half-Shot is back in 2022 with more news

Hey folks! It was only last year we released the 1.0 release of hookshot, after many years of work to get it that far. I'm happy to announce that this week we've got another release. There are a number of buxfixes and improved documentation pieces landing (special shoutout to HarHarLinks for ensuring the docs are competent). The highlights are as follows:

  • Added support for Figma webhooks. this also means the archival of my old project matrix-figma
  • Support GitLab wiki page change events.
  • Added a new script validate-config which allows you to check your config file for simple errors. Handy for people writing ansible roles!
  • Add support for a html key on generic webhooks to set the HTML content of a Matrix message.

The project can be found over at https://github.com/Half-Shot/matrix-hookshot/, with pretty pretty docs at https://half-shot.github.io/matrix-hookshot. We're also in #hookshot:half-shot.uk if you prefer using Matrix to learn about these things!

Heisenbridge (website)

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi announces

Heisenbridge roundup!

Release v1.8.0 v1.8.1 v1.8.2 v1.9.0 🥳

  • Spaces support 🌃
  • Sort NAMES reply nicks 🔤
  • UNPLUMB network command to force unplumbing without being in the room
  • Proper SASL external with CertFP with mechanism override option (see notes)
  • Disconnect and cleanup from networks that have no rooms open ♻️
  • Reply (and reject) DM requests to ghosts with QUERY command ↪️
  • Try to keep IRC users in the room at all costs if they are on the IRC channel
  • Fix assumption of all IRC replies to have arguments
  • Prevent accidental namespace changes to cause mayhem
  • Finally convert from homegrown Matrix API stuff to Mautrix
  • Bump Mautrix requirement to 0.12=>0.14
  • Conduit support was broken in 1.8.x but fixed again in 1.9.0, sorry

Finally there's network level spaces support with a new SPACE command. This creates a new bridge controlled space for the network and automatically manages rooms in and out. There's an issue/feature with Element that all rooms that have been converted to DMs with /converttodm will appear in all bridge spaces. The workaround is to convert them back to regular rooms.

CertFP SASL has been updated to do SASL external flow by default. If you are upgrading and have used CertFP with OFTC you need to run SASL --mechanism=none for it to connect again.

Abandoned networks where the user has left all rooms including the network room will now automatically disconnect and cleanup. This is more in line what people would expect and prevents idle connections from hanging around.

Get your third vaccination from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Dept of Clients 📱

Nheko (website)

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

Nico announces

We just released 0.9.1!

This is a small bug fix release. If you reported an issue, there is a 15% chance it is fixed now! This release also supports pinned messages, although those will only show up after someone changed the pinned messages in a room currently (we didn't want to force a full resync just for such a small feature). The spaces list is also now nested, Nheko offers you quick access to your recently used reactions and Nheko will show you your direct chats in the sidebar. Apart from that there are quite a few bugfixes and smaller improvements, you can find the full changelog and downloads here: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.9.1

Thank you everyone, who helped shape this release!

Nico reports

Nheko now is a lot more efficient. We now use one Threadpool instead of 3, got rid of more than 60% of the allocations when scrolling through messages, layout half as much content when scrolling, blurhashes decode in 10% of the time and jdenticons allocate ~10% as much temporary buffers. We also deleted around 1000 lines of unused code. Tooltips also shouldn't steal the mouse focus when scrolling anymore, which could lead to sudden stalls when scrolling.

Additionally edits now replace existing notifications, tastytea added a manpage and fixed blurry or incorrectly sized custom emoji, you can now send custom emotes via the inline completer using ~ and completers now show a scrollable list with more Elements than before. Advanced users can also now opt into an insecure client side secrets storage via a hidden setting.

Nico says

We're baaaaack! Anyway, last week Drake just translated all of Nheko into Spanish, you can now zoom in and pan in the image viewer, emojis shouldn't split up into their segments anymore and Nheko should always be sending the qualified version of it (according the to the unicode test files, not by just appending FE0F). Blurhashes should be even faster still and we now have support for running the call event loop on macOS and Windows (although call support is still disabled there for now).

We are also now working to restructure our README. It has a lot of outdated stuff in it and you really want to see screenshots pretty early in the README! You can sneak a peak here: https://nheko.im/nheko-reborn/nheko/-/tree/README_updates

Element (website)

Everything related to Element but not strictly bound to a client

Danielle reports

Welcome to a new year at Element!

Threads

  • This week the Threads team has focussed their efforts on improving some of the smaller details and pesky bugs we’ve found in our first rounds of testing.
    • If you’d like to help us test Threads we’ll be asking for help in the Community Testing room over the next few weeks. Join#element-community-testing:matrix.org to stay in the loop.

Polls

  • Polls is available in Labs on all clients! While we know there are some minor improvements to be made, we’re proud of where we are and would love for you to start using it!

Community Testing

  • Our next session will be on Wednesday, 12th January at 16:00 UTC (17:00 CET). We will be testing the new release candidates on all three platforms! Join us at#element-community-testing:matrix.org

Element Web/Desktop (website)

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

Danielle reports

  • Work continues on the integration of PostHog analytics. With your explicit permissions we’ll receive anonymous usage data that will allow us to understand the areas of Element that are helpful (or not). This info will help fuel things like our Information Architecture project.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Information Architecture improvements are still being worked on - try it out by enabling things like the new Spotlight search and Breadcrumbs.
    • Message Bubbles are improving; We’ve been hard at work preparing them for a release in the coming weeks.

Element iOS (website)

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

Danielle announces

  • During the Christmas break we increase the speed of the app launch by 7x! Once stabilised this update will land with you.
  • Analytics changes have been merged into the RC and opt-in will be available soon.
  • In development:
    • More Spaces improvements are underway; You’ll soon be able to add rooms to Spaces, update room settings, and have room interactions on the ‘long-press’.
    • Improved onboarding! We’re hoping to make the first few steps in Element easy by simplifying some of the first tasks users take in the app, including signing up.
    • We’ve started building Message Bubbles on iOS. This will help to distinguish the messages you send from the messages you receive.

Element Android (website)

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

Danielle says

  • For Android we now have a PR review board to increase visibility into the state of PRs submitted by external contributors!
  • The new Opt-in screen for PostHog analytics tracking will be released soon.
  • Work on Message Bubbles has started and we can’t wait to share it with you!
    • If you have any feedback or questions about Messages Bubbles, please let us know now.
  • We’re also working on improving the sign up and sign in experience with some micro-improvements landing in the product soon.
  • We’re sorry for the delay of Element on F-Droid store, it will be available next week.

Dept of Non Chat Clients 🎛️

Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr says

A lot has happened with populus-viewer!

  • We now implement MSC2574! This MSC proposes a standard format for marking up resources (PDFs, other document formats, audiovisual media, websites, geospatial data...) using Matrix.
  • Room avatars are now displayed in the welcome view for PDF rooms
  • There's now a UI for using spaces to manage and share PDF collections
  • Reactions now work like element-web: click to mirror an existing reaction or redact your previous reaction

Next, I'm aiming to implement MSC3592, which proposes a standard format for basic markup on PDFs. Stay tuned! And if you're interested in learning more, come visit #opentower:matrix.org.

Matrix Wrench (website)

Matrix Wrench is a web client to tweak Matrix rooms.

ChristianP announces

Matrix Wrench is a web client to tweak Matrix rooms. After formerly calling it Matrix Navigator or Matrix Screwdriver, I finally settled on the name Matrix Wrench. ¯\_(ツ)_/¯ Version v0.2.0 comes with a Network Log which displays curl equivalents for all network requests. It also allows to easily add and remove room aliases. https://gitlab.com/jaller94/matrix-wrench/

matrix-streamchat (website)

Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.

f0x says

there's a pink theme and irc styling for matrix-streamchat now

Cactus Comments (website)

Cactus Comments is a federated comment system for the web, based on the Matrix protocol.

Asbjørn reports

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

We released version v0.11.0 of the client!

The client has been relicensed to LGPL. This means that you can now use Cactus Comments in non-GPL compatible projects. But mainly, this release brings a bunch of CSS improvements: introducing automatic dark mode, and making it easier to change colors with CSS variables.

Here's the changelog:

  • Relicense from GPLv3 to LGPLv3.
  • Rewrite large parts of the stylesheet to use flexbox.
  • Introduce CSS variables to the stylesheet.
  • .dark and .light CSS classes with default values for dark/light mode.
  • Bugfix: "View More" button no longer blinks when auto-refreshing short comment sections.

v0.11.0 changelog and IPFS links here.

/ipns/latest.cactus.chat is updated to point to the latest release, so sites linking there should already be using the new version.

Try out a live demo: cactus.chat/demo

Join our Matrix room: #cactus:cactus.chat

Dept of SDKs and Frameworks 🧰

simplematrixbotlib (website)

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

krazykirby99999 reports

Happy New Year!

Since the last post of TWIM, versions 2.5.1 and 2.6.0 of simplematrixbotlib were released.

Version 2.5.1 Released!

New Fixes:

  • Fixed #101 'Api' object has no attribute 'async_client'

Version 2.6.0 Released!

New Features:

  • A listener for handling m.reaction events has been added. Bot developers can now use Listener.on_reaction_event to smoothly handle reactions.

Example usage is shown below:

"""
Example Usage:

random_user
      !echo something

random_user2
      *reacts with 👍️

echo_reaction_bot
      Reaction: 👍️
"""

import simplematrixbotlib as botlib

creds = botlib.Creds("https://example.com", "echo_reaction_bot", "password")
bot = botlib.Bot(creds)


@bot.listener.on_reaction_event
async def echo_reaction(room, event, reaction):
    resp_message = f"Reaction: {reaction}"
    await bot.api.send_text_message(room.room_id, resp_message)


bot.run()

Request additional features here.

Source: https://github.com/KrazyKirby99999/simple-matrix-bot-lib

Package: https://pypi.org/project/simplematrixbotlib/

Documentation: https://simple-matrix-bot-lib.readthedocs.io/en/latest/

Matrix Room: https://matrix.to/#/#simplematrixbotlib:matrix.org

matrix-bot-sdk (website)

A TypeScript/JavaScript SDK for Matrix bots

TravisR announces

matrix-bot-sdk has had a v0.6.0-beta.3 release with beta support for crypto! It even includes documentation!

The crypto is considered beta quality at the moment: good enough to use for somewhat unimportant bots, but not fully recommended for production just yet. With that being said, I'm interested in bugs you run into - please use the issue tracker if you run into crypto not working.

Tutorials for the crypto setup are at https://turt2live.github.io/matrix-bot-sdk/tutorial-encryption.html

Note for appservice support to work then you'll need a Synapse with these PRs enabled (may require manual merge too):

  • https://github.com/matrix-org/synapse/pull/11538
  • https://github.com/matrix-org/synapse/pull/11617
  • https://github.com/matrix-org/synapse/pull/11215

For non-linux platforms, the rust-sdk will try to build itself which means you might need a working Rust stack. The Rust SDK repo itself has more information:

  • https://github.com/matrix-org/matrix-rust-sdk/blob/travis/node-bindings/crates/matrix-sdk-crypto-nodejs/README.md
  • https://github.com/matrix-org/matrix-rust-sdk/blob/travis/node-bindings/README.md

Bots and appservices don't automatically support encryption, but adding encryption should be easy. The Rust SDK dependency is required in either case, sorry.

Complement (website)

Matrix compliance test suite

Kegan reports

Complement has seem some updates this week in the test output that is produced onto the CLI. Details on how to add this to your CI process are contained in the README. Here's the difference when viewed using Github Actions:

Before:

After:

Polyjuice (website)

Elixir libraries related to the Matrix communications protocol.

uhoreg reports

Polyjuice Newt, the newest addition to the Polyjuice project, is an Elixir binding for vodozemac, the new Olm/Megolm implementation in Rust. At the time of writing, Polyjuice Newt supports encryption and decryption using Olm and Megolm, but by the time you read this next year, it may also support the SAS verification functions and pickling/unpickling.

Dept of Ops 🛠

NixOS Deployment (website)

Matrix packaging for NixOS

piegames announces

I don't think we've previously had any Nix/NixOS/nixpkgs related entries in TWIM, so I'll start ^^

The current unstable channel has extended its Matrix ecosystem support to also include Heisenbridge and Conduit packages and modules. This makes it super easy to deploy any of those services: For example, my configuration for Heisenbridge is 21 lines long, and Conduit is only 11 lines. You can browse the available configuration options online: services.matrix-conduit, services.heisenbridge (note that some of them are freeform and simply forward to the upstream configuration).

For those that are not into NixOS, a module is the code that turns the declarative configuration files into your running system setup. As an example, if you enable services.heisenbridge the following things are done for you:

  • Create a new heisenbridge user and group for the service
  • Create and manage the registration file for the homeserver (i.e. automatically regenerate it after the configuration changed)
  • Create a systemd service that runs the heisenbridge command with the requested bridge configuration. The unit also sets a few systemd security hardening options.

For support, join our Matrix space at #community:nixos.org and its Matrix-Nix channel: #matrix-nix:transformierende-gesellschaft.org

matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi says

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy can now help you set up Honoroit - a helpdesk bot.

See our Setting up Honoroit documentation to get started.

Slavi says

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy now supports Cinny - a new simple, elegant and secure Matrix client.

To try it out, see our Setting up Cinny documentation page.

Slavi announces

At matrix-docker-ansible-deploy, we believe that 2022 will be the year of the non-Synapse Matrix server!

Jip J. Dekker did the initial work of adding Dendrite support to the playbook back in January 2021. Lots of work (and time) later, Dendrite support is finally ready for testing.

The playbook was previously quite Synapse-centric, but can now accommodate multiple homeserver implementations, with Synapse still remaining the default.

To learn more, see our changelog entry about Dendrite.

Slavi announces

Thanks to Matthew Cengia and Shreyas Ajjarapu, matrix-docker-ansible-deploy can now bridge to Twitter using the mautrix-twitter bridge.

Note: the playbook already supports another Twitter bridge - mx-puppet-twitter.

To get started with this bridge, see Setting up Mautrix Twitter bridging in our documentation.

This brings the total number of bridges supported by the playbook up to 22. See all supported bridges here.

matrix-commit (website)

A Github Action for sending messages to a Matrix Room.

krazykirby99999 says

Version 1.2.2 Released!

A Github Action for sending messages to a Matrix Room. Changes should apply automatically if you are using tag v1.

New Features:

  • Link to repository added
  • Link to commit added

Before:

After:

Dept of Guides 🧭

Austin Huang says

A new Matrix guide has come into town: https://joinmatrix.org

In the hopes to expand Matrix's reach to the non-technical population, this guide is intended to give quick directions on how to use Matrix, as well as clear comparison between Matrix and other dominant platforms.

The pages are available on GitHub. Open to contributions!

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.net599.5
2thomcat.rocks768
3matrix.spooks.cyou862
4matrix.nicfab.it955
5aria-net.org1300
6aletheia.moe1611.5
7trygve.me1617
8mtx.koyax.org1703.5
9rollyourown.xyz1808
10microelectro.de1996

#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
1matrix.spooks.cyou366
2dendrite.matrix.org440
3sspaeth.de466
4rustybever.be546.5
5grin.hu966
6matrix.awesomesheep48.me1294
7dendrite.neilalexander.dev1537
8dendrite.beckmeyer.us1744

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-12-17

17.12.2021 00:00 — This Week in Matrix Thib

Matrix Live 🎙

A supercharged episode this week with five super exciting demos!

Dept of Spec 📜

TravisR reports

Hey all, it's me again, not-anoa, with your spec update. I don't have a graph for you this week, but I do have curated content which hopefully holds you over until next week 🙂

This week we've seen a few new MSCs get opened up:

As demonstrated, a few of them are follow-on work from aggregations. A lot of the work is an effort to get MSC2675 - Serverside aggregations of message relationships through FCP - it's changed quite a bit in the last week, so if you reviewed it before then please give it a quick read!

We're also gearing up for MSC1767 - Extensible event types & fallback in Matrix receiving attention early next year. This is currently being evaluated by features like MSC3245 - Voice messages, MSC3381 - Polls, and MSC3488 - Static location sharing. If all goes according to plan, the first pieces of Extensible Events will land soon.

Thib has caught me quite close to the deadline on TWIM, so while I don't have a random MSC for you this week I do recommend some light reading around aggregations and extensible events - these are both major features for Matrix and help shape the future for other, even more exciting, features.

Nico announces

Random MSC

Since the script didn't run, I manually generated random numbers until I actually got one, that matches an MSC and is not a draft!

So the random MSC is: MSC2461: Proposal for Authenticated Content Repository API

The goal of this MSC is to restrict who can access files in your content repository, which is used to share files, images, voice messages and more on Matrix. Currently this is secured by using random identifiers, but this MSC wants to add a few more restrictions: A signed-in user can still access everything, but if you don't provide an access token, when downloading media, you either can access no media, only media that was sent from that server, only media which the server already downloaded or everything. The level of access can be set by the server admin.

I think this would be really nice to have, but it has various challenges when implementing it in clients and when it needs to work across federation. It could limit how much random users can fill up your disk though, which is especially important for small server admins!

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

callahad reports

Happy holidays! This week we released Synapse 1.49.0, our last planned release of the year. This is the last release that supports Python 3.6 or PostgreSQL 9.6; if you've not upgraded, now is the time!

Most notably, this release includes stable support for MSC2918: Refresh tokens. This is a more secure alternative to long-lived access tokens, and we'd encourage clients to implement support for refresh tokens as described in the MSC.

We also released Sygnal 0.11, which includes loads of bugfixes. For the Element-managed Sygnal instances, this release has reduced our daily Sentry error rate by over 99%, dramatically improving the signal-to-noise ratio of our monitoring.

See you in January with Synapse 1.50! 🎄

Sydent

Sydent is the reference Matrix Identity server. It provides a lookup service, so that you can find a Matrix user via their email address or phone number (if they have chosen to share it).

dmr announces

I've just published the third and final post on Sydent's type annotations (part 1, part 2). This one is more reflective and tries to quantify our efforts: how well have we done?

Thanks for reading---I hope it's been useful.

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace announces

And yet again more updates have been done on my Helm Charts - bringing element-web up to 1.9.7 and matrix-synapse up to 1.49.0

Dept of Clients 📱

Nheko

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

Nico reports

We are planning to have a small release next week, that fixes a few issues with the 0.9.0 release. It would be lovely if some of you could test one of our nightlies or could check if the translations for a language you speak are up to date in our weblate.

Some of the fixes this week include another crash fix for handling matrix links from your browser, notification bubbles that can show values over 9000(!), better preview images for sticker and emote packs created in Nheko, allowing you to click links in replies, a few layout and click area fixes. Nheko now also keeps track of your latest reactions and gives you easy access to them in the hover menu.

Nheko now also finally supports pinned messages! Most of you probably don't know, but that feature has pretty much always been in the matrix spec, but very few clients expose it. Today Nheko joins that rank! It's part of our goal to provide better support for building communities. Topics can be quite limiting, because they can only contain plain text. Pinned messages allow for much more creative freedom! They can also be encrypted, while state events currently never are, but the key for that isn't reshared, so currently experience in encrypted rooms is a tradeoff. Maybe we'll go for an encrypted description event in the future, but for now this seems to be a good solution to bridge the gap.

Let's hope the current master branch is good and we'll have a release with ALL THE FIXES next week! And thank you everyone, who already translated and reported issues! It took less than 10 hours to have 5 languages updated to 100%! Last year we didn't even have that many languages at 100%! You guys are AMAZING! <3

Element

Everything related to Element but not strictly bound to a client

kittykat announces

Development has kicked off for location sharing! Watch this space for more news in the new year.

Threads

  • List of threads in a room is now more accurate and viewing very long threads has improved with the integration with the homeserver APIs. (These APIs are not enabled on matrix.org yet.)
  • Threads on mobile platforms are catching up to Web, with many changes in review.
  • Iterated on the design for restricted history threads and search results across all platforms.
  • Design for thread previews in room list has been improved for mobile platforms.
  • Improved Android bottom sheet expandable and scrollable behaviour design.
  • We’ve created MSC3567 to fix some edge cases with API calls

Polls

  • Only one Android bug is outstanding!
  • Gathering feedback to incorporate into the next phase of development, join us for the community testing session on Monday at 17:00 in #element-community-testing:matrix.org

VoIP

  • Continuing with polishing & bug fixing for full mesh calling app. One remaining bug somewhere causing members to not connect properly. Finalising how much of registration & login we can/want to implement for the short term until it’s replaced by OAuth login.

Community testing sessions

  • Tested all three Release Candidates (RCs) at the same time for the first time! Did not find any new web issues when testing first time user experiences and basic interactions on Web. We found 6 new issues on Android and 9 on iOS.
  • Tried out the Information Architecture changes on web with the Delight team. Very exciting to see these changes available in Labs already!
  • Closed 33 out of 60 re-tested encryption issues on Web and prioritised a few to be considered for upcoming work.
  • Next sessions, join #element-community-testing:matrix.org :
    • 17:00 UTC / 18:00 CET on Monday 20th December to test the new Polls feature
    • 16:30 UTC / 17:30 CET on Tuesday 21st December to squash more encryption bugs!

Element Web/Desktop

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

kittykat announces

  • We’ve been working on auto-generating code and documentation for events raised by our client analytics (code here, PR for documentation generation here). This allows us to publish a comprehensive list of everything our analytics capture, which is great both for end users and for people doing analysis.
  • In labs (you can enable labs features in settings on develop.element.io or on Nightly)
    • First milestone reached on Information Architecture! To try it out, enable “Threaded messaging”, “Use new room breadcrumbs” and “New spotlight search experience” in the Labs settings.
    • We’re actively collecting feedback on IA to review in the new year.
    • Starting work on Message Bubble defects

Element iOS

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

kittykat reports

  • Fixed an issue around some voice messages not playing in bridged rooms.
  • Polls changes are in this week’s release candidate (RC) and will be available behind a Labs flag in the next release.
  • Analytics changes have been merged into the RC and opt-in will be available soon.
  • In development:
    • Spaces is coming closer to completion: we’re there on space creation, adding rooms to spaces, space management and more. Release coming in the new year!
    • Work on implementing new login flow continues, with more improvements incoming.

Element Android

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

kittykat announces

  • Improvements to the timeline performance (faster display, faster scroll) after updates to the way we store timeline events.
  • Analytics framework has been merged, opt-in request will be shown to users once more translations have landed. For now, you can enable it in the settings.
  • Work on Message Bubbles has started!

Cinny

Cinny is a Matrix client focused on simplicity, elegance and security

ajbura says

Cinny v1.6.0

Features

  • Room Timeline
    • Add pagination in room timeline
    • Replies link back to original message event
    • Use formatted_body to parse markdown
    • Support rich replies
    • Separation of read/unread messages in the room
    • Typing outside of an input box should focus the message field
    • Spoiler display support
    • User pill display support
    • Custom emoji display support
    • Performance improvements
  • Export E2E key for decrypting history in another client
  • Replaced go-to commands with Room search modal (Ctrl + k)
  • Remember people panel state
  • Twemojified all kind of text (except inputs)
  • Add option to hide membership and user events from timeline
  • Messages now span to full viewport width
  • Add animation on hover in sidebar/avatar

Bugs

  • Fix defer typing notifications until it can't be a command
  • Fix checkbox in register page
  • Fix app sending read receipt in background
  • Fix crash on creating room
  • Fix dark theme colors

Security update

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

Dept of Non Clients 🎛️

Matrix Highlight

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

Daniel announces

I've been working on a matrix-based tool for highlighting and annotating websites. By building on top of matrix, we can effectively have a decentralized, federated and collaborative way to leave notes and highlights on pages. I wrote a brief introduction on my blog, as well as made a little bit of a simple demo video. Here's a copy-pasted list of planned and existing features:

  • Current: Create and send website annotations over Matrix.
  • Current: Store data in a decentralized and federated manner.
  • Current: Share highlights with other users, including those on other servers.
  • Current: Group annotations together and create multiple annotation groups
  • Planned: Use Matrix's End-to-End encryption to ensure the secure transmission and storage of highlight data.
  • Planned: Leverage the new m.thread MSC to allow users to comment on and discuss highlights.
  • Planned: Use something like ArchiveBox to cache the current version of a website and prevent annotations from breaking.
  • Planned Highlight PDFs in addition to web pages.

Come join #matrix-highlight:matrix.danilafe.com to receive updates about the project!

I haven't published the code just yet, but I'm going to as soon as the tool is in better shape.

Daniel announces

Matrix highlight for probably the last time this week. Highlight comments and self-editing are implemented, though I'm not sure I'll stick with this particular model.

Populus Viewer

A Social Annotation Tool Powered by Matrix

gleachkr announces

I've been teaching a class this semester using a tool built on the matrix-js-sdk and tentatively entitled populus-viewer. Populus-viewer uses Matrix as a backend for the social annotation of PDFs, with the goal of helping matrix become a platform for teaching and scholarly collaboration. If you're interested in learning more, or adopting populus-viewer in your teaching, come visit #opentower:matrix.org!

Populus-Viewer currently supports:

  • Annotation of PDFs with highlights and pin-drops
  • Matrix conversations based on annotations
  • Audio and video messages
  • Replies, reactions, and redactions
  • Markdown for rich text
  • LaTeX for mathematical notation
  • Typing notifications
  • Synchronized reading position across devices
  • SSO, with single-click links for embedding in an LMS like Canvas or Blackboard.

As the project develops, I'm hoping to continue to polish the reading experience, and to add support for other mime types (audio and video especially).

matrix-streamchat

Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.

f0x announces

TWIM I got started on the chat part of matrix-streamchat, to provide a lightweight embeddable Matrix client to be used alongside streams in Owncast and PeerTube. It will use guest access, and lots more features to come like extensive custom emote support. For now refactoring a bunch of things first before adding more flashy things, but who knows, you might see me do it live on https://stream.pixie.town

Dept of SDKs and Frameworks 🧰

vodozemac

An implementation of Olm and Megolm in pure Rust.

Matthew says

Introducing vodozemac (https://github.com/matrix-org/vodozemac) - a rewrite of libolm in Rust by poljar and dkasak! The intention is for this to become the reference Olm implementation going forwards, and to get it audited asap (and benefit from all of Rust’s nice safety and parallelism features, and better crypto primitives!)

simplematrixbotlib

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

krazykirby99999 says

Version 2.5.0 Released!

simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio. Version 2.5.0 adds improvements to the config feature.

Feature Changes:

  • Add allow/block lists: This allows bot developers to specify allow/block lists of users who have permission to interact with the bot using regex.
  • Permissions can checked with Match.is_from_allowed_user(), which lets the bot developer choose which responses are restricted.
  • The allow/block lists can by modified at runtime via the Config.add_allowlist(), Config.remove_allowlist(), Config.add_blocklist(), and Config.remove_blocklist() methods.

A thank you to HarHarLinks for their contributions to version 2.5.0!

Request additional features here.

View source on Github View package on PyPi View docs on readthedocs.io https://matrix.to/#/#simplematrixbotlib:matrix.org

Dimension

An open source integration manager for matrix clients, like Element.

TravisR announces

Dimension, an integration manager alternative for Element, has received a bunch of updates over the last couple weeks:

  • Added (early) support for matrix-hookshot's GitHub, Jira, and Webhooks bridging.
  • Most of a redesign complete to make it feel more like an Element UI rather than something special and third party.

If you're interested in helping out in getting the redesign finished, please check out https://github.com/turt2live/matrix-dimension/issues/458 which has reference mockups and linked issues. The major parts are the "complex bots" (Travis CI, RSS, etc) and the sticker integration. Unfortunately, I don't have enough free time to work on it myself in the near term, but will get back to it eventually 🙂

And now, a complementary screenshot of the Good™ parts:

Dept of Ops 🛠

matrix-commit

A Github Action for sending messages to a Matrix Room.

krazykirby99999 reports

Example Usage:

# .github/workflows/matrix-commit.yml
on:
  push:
    branches:
      - master

jobs:
  matrix_action_job:
    runs-on: ubuntu-latest
    name: Send Message to Matrix Room
    steps:

    - name: Checkout
      uses: actions/checkout@v2

    - name: matrix-commit
      uses: krazykirby99999/matrix-commit@v1

      with:
        homeserver: ${{ secrets.BOT_HOMESERVER }}
        username: ${{ secrets.BOT_USERNAME }}
        access_token: ${{ secrets.BOT_ACCESS_TOKEN }}

        room_id: ${{ secrets.ROOM_ID }}
        message: "#### New Commit:"

Notes:

Syntax:

  • The homeserver should be in the form of https://domain.tld
  • The username should be the username, not the user id. (krazykirby99999, not @krazykirby99999:matrix.org)
  • The room_id should be the internal room id of the room, not the published address. (!QQpfJfZvqxbCfeDgCj:matrix.org, not #thisweekinmatrix:matrix.org) This can be found under Room Options > Advanced > Room Information in the Element Client.

Other

  • If the room_id is not specified, the bot will send the message to all joined rooms.
  • If the message is not specified, it will default to Commit:.
  • The bot will join all invited rooms upon the start of an action.

Contributions are welcome - https://github.com/KrazyKirby99999/matrix-commit

Example Image

Dept of Bots 🤖

matrix-imposter-bot

A Matrix appservice for relaying messages.

mr_johnson22 says

matrix-imposter-bot - A bot that uses your account to repeat other people's messages. This gives relay-bot capabilities to puppet-only bridges.

I made this project a while ago to hack in a relay mode to the mautrix Facebook bridge. But as of this week, that bridge supports relaying natively! 🎉 Thus, my main motivation for maintaining imposter-bot is obsolete, and the project will be on indefinite hiatus.

With that said, it can (mostly) still be used to add relay support to any bridges that don't yet support a relay mode themselves--but native relay support is always better!

Thanks to everyone who's shown interest in the project, and to tulir for making such great bridges!

Dept of Interesting Projects 🛰️

ChatStat

An R package To Gather Stats From Chat Platforms

Gwmngilfen announces

A project has started to re-implement the venerable mIRCstats for Matrix! It's in very early stages, right now it only does "getting a data-frame of events for a list of rooms" and has no actual visualisations baked in yet. However, we're moving quickly, and I hope to have some initial easy-to-use viz in place over the Christmas break.

The project is written in R (because I am an R user, and its good for data and viz work :P) and you can find it here. If you're new to R and want to give it a go, check out the extremely brief howto I just wrote here. I look forward to all the ways you will tell me it's broken!

Dept of Built on Matrix 🏗️

Saint Petersburg Widget (A Board Game build on Matrix)

Timo K. announces

Board games are great. And Matrix and its widget api turned out to be an excellent environment to create collaborative board games. With some really impressive conditions:

  • I don't have to maintain a server with a database.
  • I don't have to create a custom account systems user need to register. They play with their matrix account, which also makes accessibility great. Someone invites you in a room with the game and you can play!
  • I just need to host one static file and ppl will be able to play as long as that static site exists.

This project tries to be two things. A tech demo and inspiration to what is possible with widgets (Especially, with the changes on how widgets can be displayed in element (Check the "matrix live" Demos! 😊) ) Second it should serve as source and resource. For ideas and solutions on how no trust games can be executed without server (third party) side logic. And, for the ones interested, also as a resource on how widgets are implemented.

Last but not least the game Saint Petersburg is really fun. It takes a couple of minutes to grasp the rules but it is one of those games where there are so many things that can be considered with simple rules that it becomes more and more exciting with each round. So I really invite you to check out the rules and give it a try. Its best to start in the Git Repo or join the this room: #st-petersburg-auth:matrix.org

To put it simple, the widget works like this: The game state is stored in the room state and is updated through the widget directly. This of course raises questions: How is it still possible to prohibit users from cheating and manually changing parameters like, how much money they own. Everyone (who has the permission) is always able to send whatever state events they want? How is it possible to draw random cards if there is no third party involved. Could I not just send a state event with the cards that I hope are going to be drawn and are beneficial for me. Can we make card drawing deterministic? Not really since then everyone know what is going to happen. Which kind of breaks the game...

I would be super happy, if someone is interested and wants to find answer to the questions above by checking out the README.

Matrix in the News 📰

kim says

There is an article (exclusive to paid subscribers) in the German tech news/magazine website heise.de about "Running your own messaging service using the matrix server" https://www.heise.de/ratgeber/Eigener-Chatserver-Mit-dem-Matrix-Server-einen-Messaging-Dienst-betreiben-6289020.html

I'm not a subscriber but sounds like they go over how to set up using the Ansible playbook #matrix-docker-ansible-deploy:devture.com

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.net451.5
2cri.epita.fr1019
3aria-net.org1446.5
4flueren.eu1576
5matrix.home.boris-wach.de3181
6trygve.me3519
7utzutzutz.net4038
8matx.myecloud.org4855.5
9rollyourown.xyz4989.5
10grimneko.de5127

#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
1rustybever.be461
2conduit.supercable.onl524
3dendrite.supercable.onl539
4conduit.cyberdi.sk953.5
5matrix.awesomesheep48.me1434.5
6s2.toldi.eu1593
70x1a8510f2.space2125
8dendrite.beckmeyer.us8497

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-12-10

10.12.2021 19:24 — This Week in Matrix Thib
Last update: 10.12.2021 19:09

The Adventures of TWIM bot

Last week the Matrix Scientists had turned this room into a portal to TWIM bot's ship tank so we could all fuel it with news about our work. The spec and hookshot news were reported late when the tank was already full, sending TWIM bot's ship into hyperspeed mode 🚀

We lost contact with the bot for a few days but managed to restore a connection with it. It appeared to have crashed on the green planet of Fuj'ehr. Its ship shattered in pieces at impact! 💥

The bot managed to find most of them, but some critical pieces of the engine were missing. We needed to find those pieces quickly before the mushy ground of Fuj'ehr swallows them forever! 😱

The Editor has asked the Matrix Scientists to reconfigure the room and bridge it to TWIM bot's navigation tools. Each news report highlighted the position of a piece of engine on its map. 🗺️

Matrix Live 🎙

This week my guests are the FluffyChat and MinesTRIX maintainers, following the v1 release of the simple and beautiful FluffyChat… and they want to work together!

Dept of Status of Matrix 🌡️

Austin Huang reports

Version numbers of each homeserver, updated daily using a GitHub Action, are now added onto my public homeserver list, in hopes that it will further aid those choosing a homeserver to use Matrix on.

Very handy to quickly know if a server is well maintained or not before making it your new home!

Dept of Spec 📜

anoa says

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

Spec Updates

Extensible events are coming! With lots of potential usecases to be built on top of the concept (such as threading, polls, and any type of data one would like to through on top of existing room events), extensible events are finally getting some love. New MSCs are available above, which detail some of these usecases. Exciting times!

A small correction from last week's issue: the next aggregations MSC to be focused on (after MSC2675 (serverside aggregations) is MSC2677 (annotations and reactions), as it's a more pressing blocker for usecases such as threading and polls.

Otherwise, the Spec Core Team is continuing to wind down in preparation for the holidays ☃️

Random MSC of the Week

The random spec of the week is... MSC3015: Room state personal overrides.

Quite a novel concept, and one that would enable many usecases, such as the ones described in the MSC itself. Check it out if that's something that interests you!

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

dmr reports

This week we cut Synapse release candidate 1.49.0rc1 It includes a bunch of work to supporta plethora of MSCs (MSC 2675, MSC3030, MSC2918, MSC2946), a crop of bugfixes and improvements to our documentation which incorporate Synapse's old wiki. And as ever, there's a bunch of internal type hinting to keep the Synapse team's blood pressure at healthy levels.

The formal release of Synapse 1.49.0 is scheduled for the coming Tuesday. This will be the last Synapse release of 2021 as the Synapse team prepare for a break over the Christmas period. Releases will continue at the usual pace in the new year, with 1.50.0rc1 slated for 2022/01/04 and 1.50.0 for 2022/01/11.

Please note: Synapse 1.49 will be the last version to support Python 3.6, PostrgreSQL 9.6, and Ubuntu 18.04 LTS (Bionic): by our next release, these will have reached their upstream end-of-life. If you're reliant on any of these platforms, please ensure you have plans to upgrade.

In other news, we're preparing to release a new version of Sygnal with a series of fixes for common errors. This should make Sygnal administrators much happier by removing an awful lot of error spam from logs!

Sydent

Sydent is the reference Matrix Identity server. It provides a lookup service, so that you can find a Matrix user via their email address or phone number (if they have chosen to share it).

dmr says

The second blog post on improving Sydent's type coverage should be published now. See the first post here from last week.

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace reports

This week has seen yet another set of updates to my Helm Charts, with element-web being bumped to 1.9.6 and matrix-synapse seeing fixes to non-standard port configurations and better support for modern ingressClass handling.

Dept of Clients 📱

Nheko

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

Nico reports

If you are using Nheko on a mobile device like the PinePhone, you should now be able to swipe between the room list and the spaces list. Since I don't use a PinePhone, feedback will be appreciated!

Neochat

A client for matrix, the decentralized communication protocol

Tobias Fella announces

NeoChat version 21.12 is out! You may have noticed that this version number is roughly twenty times higher than the previous one. This means that NeoChat is now twenty times as good as the last version. Or it means that version numbers are utterly meaningless and we switched to a date-based version number system since NeoChat is now released together with many other plasma-mobile related apps. This also means that new versions will arrive monthly from now on. New features and fixes in this version include - but are not limited to:

  • Spell checking while writing a message
  • Improved markdown to html conversion when sending a message
  • Built-in theme switching
  • Various fixes to login, logout and account switching
  • Support for custom emojis
  • Support for Spoilers
  • Support for Blurhashes

Element

Everything related to Element but not strictly bound to a client

Danielle Kirkwood announces

Threads

  • Threads is making excellent progress; This week we held 2 internal testing sessions, both of which went swimmingly.
  • We’re continuing our hard-work on Notifications to fix those up as best we can.
  • Also, we started work on the Threads Filter. The filter will allow you to choose between all the threads in a room and threads you’ve actively participated in.
  • If you’re using the Labs version of Threads, let us know what you think so far!

Polls

  • Exciting news on Polls; All development on Polls MVP is nearly complete, and will soon be making their way to a production environment near you!
  • Polls will be available behind Labs flags at first. We're excited to see people using it and we’re looking forward to hearing any feedback/comments.

Community Testing

  • Closed 20 out of 36 issues in encryption and verification (E2EE) this week.
  • We are planning three testing sessions for next week:
    • Tuesday 17:00-18:00 UTC - first time user experience on iOS, Android and Web
    • Wednesday: 16:00-17:30 UTC - information architecture changes on Web (with Michael and Nique joining us from the Delight team)
    • Thursday 16:30-18:00 UTC - bug squash edition on encryption, can we get the issue count to an all new low?
  • Join us! We’re at #element-community-testing:matrix.org

Element Web/Desktop

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

Danielle Kirkwood announces

  • We are monitoring and triaging feedback, which is submitted through the new feedback interface in the app.
  • In Labs:
    • Work continues on Information Architecture: this week we’ve made a spotlight search labs feature that we’ll be testing to replace the current filter.
    • We’re also starting to test preferences per space, so keep your eyes peeled for those.

madlittlemods (Eric Eastwood) reports:

Jump to date headers soon in Element

From the experimental MSC3030 implementation merge to Synapse update in TWIM last week, we now also have the start of some client usage in Element to make featureful jump to date headers!

If you've ever tried to find a message back in the past, you've experienced the burdensome task of having to scroll back manually for days, even months! With the jump to date headers, that will be a thing of the past 😌. Clicking any date separator in the room timeline, will give shortcuts to jump to last week, last month, jump to any date using the date picker, or even the beginning of the room to follow a room upgrade chain.

This is currently still in a draft pull request state but will give another update when it lands in Element Labs for everyone to use.

Element iOS

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

Danielle Kirkwood reports

  • On iOS it’s been a week of completing things!
  • We’ve made some final changes to PostHog analytics and MatrixKit has been integrated in element-ios.
  • There have also been lots of bug fixes - especially around an app crash.
  • Don’t forget! As per our update from last week, our release candidates are now prepared on Tuesdays (not Wednesdays).

Element Android

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

Danielle Kirkwood reports

  • Element Android 1.3.9 has been released on the PlayStore and is available for the beta testers:
    • This version adds support for draft voice messages and a new design for URL previews.
  • Opt-in PostHog analytics will land soon, and will be included in the next release.
  • A new "Legals” screen has been added to Settings in order for users to see all legal info pages for Element, the user's homeserver and the user's identity server (if any).
  • The next release candidate will be prepared next Tuesday.

Commune

Commune is a communications suite built on top of matrix. Commune aims to bring together chat, discussions, email and other interactive apps into a single matrix client.

erlend_sh says

So here’s the thing ahq (dev) and I (product) have been working on: https://github.com/commune-org/commune It’s a chat/forum hybrid. Still in pre-alpha, proof-of-concept stage.

Dept of Non Clients 🎛️

matrix-streamchat

Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.

f0x announces

TWIM I wrote a Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups. Was a great little 2 evening project to develop while livestreaming it's development :)

You can find the code and instructions at https://git.pixie.town/f0x/matrix-streamchat and a hosted instance at https://streamchat.pixie.town

Dept of SDKs and Frameworks 🧰

jOlm

Olm bindings for Java

brevilo announces

jOlm has seen two releases since the previous update, v1.0.7 and v1.0.8. jOlm now supports (and requires at least) the latest libolm version 3.2.7. Please note that we deprecated a number of methods in favor of renamed siblings. The majority of the old ones will be removed in the upcoming jOlm 1.1 release, likely published soon after libolm's announced security release on Dec. 13th. Please follow suit and update your implementations accordingly.

Summary:

  • 🧰 Maintenance and upstream update releases
  • ⚠️ Renamed methods for improved coherence and due to upstream changes (old ones deprecated)
  • ✅ Up to date with Olm 3.2.7 (new minimum requirement)

Changelog:

  • Deprecated methods (see the individual release notes for full details):
    • Account.markOneTimeKeysAsPublished()
    • Account.fallbackKey()
    • InboundGroupSession.export()
    • InboundGroupSession.importer()
    • Utility.ed25519_verify()
  • Refined unit tests
  • Updated dependencies

Cheers!

Dept of Videos 📹

Matthew reports

We previewed yet more native Matrix VoIP conferencing at CommCon: https://www.youtube.com/watch?v=A4k7DVIK5TE&list=PLvNS4EBAxmJJbvGW-PfXdXOSy9AjHjCLV

Half-Shot says

If you've got room for more video content, I also said more things about bridges. In this one, we do a live code session for a twilio bridge and watch it fly! https://www.youtube.com/watch?v=S5q3FLLvRn4

Dept of Interesting Projects 🛰️

Henri says

Wily Messenger Matrix client

Wily has launched an iOS Matrix client to enable messaging in restricted- or poor networks. mText and Room events are transferred as DNS payload, thus bypassing most captive portals, while message headers are minimized to enable messaging in very low bandwidth/high latency networks.

Wily Messenger is in POC stage, missing i.e. encryption at the moment, among others. We are committed to develop it further and invite a Kotlin developer to join our journey. DM @hp:hq.wily.im

Download: https://apps.apple.com/lv/app/id1576476396

Room of the Week 📆

TravisR says

We've set up a new Element Space for the Element family of clients and projects, finally. Feel free to join it at #community:element.io and be sure to check out #community:matrix.org while you're there for everything Matrix related.

There's also #element-translators:matrix.org for the Element Translators community out there.

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.net494.5
2nicoll.xyz548
3matrix.markshorten.co.uk857.5
4helderferreira.io1373
5almum.de1886.5
6diasp.in2958.5
7matrix.liamgooch.com2982
8mailstation.de3030.5
9kde.org3234
10matrix.org3415

#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
1envs.net138.5
2construct.supercable.onl165
3weasy-is-my.name317
4grin.hu403
5dendrite.supercable.onl531
6spacedn.com534.5
7matrix.org828
8matrix.awesomesheep48.me1084
9dendrite.s3cr3t.me1103.5
100x1a8510f2.space1332

The Adventures of TWIM bot continued

The members of the Federation have been very active and helped TWIM bot to find all the pieces of its ship! TWIM bot assembled everything together and put the engine back in its place... but at the last moment, as it was ready to take off, another bright spot appeared on the map following madlittlemods late report!

How could this happen? All the pieces of the engine were already there! Unsure of what to do, the bot asked Earth for directions. Earth confirmed: it was worth going to that new bright spot on the map.

The bot welded back the plate of the engine casing, made sure nothing could get into the ship in its absence, and started heading to the mysterious spot. The signal of our communication tools with TWIM bot weakens as it enters in the thick forest of Fuj'ehr…

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-12-03

03.12.2021 00:00 — This Week in Matrix Thib

The Adventures of TWIM bot

One thing you might not know is that TWIM bot is a space traveler, sent by the Matrix scientists to explore that zone called "The Possibilities". The #twim:matrix.org room is a portal to its energy tank, and we had received a distress signal!

To help the TWIM explorer fulfil its mission, we asked the Matrix community to fuel it with news before it crashed into space debris made of aggregated ignorance!

This week again, the community has been very active and explored many possibilities of the Matrix universe!

Matrix Live 🎙

For this week's Matrix Live my guest is Amandine and we're discussing how Element and 50 other organisations are trying to shape the future of EU's law for more interoperability. Bonus point: we have a double bridge demo with Matrix, Slack and Telegram!

Dept of Status of Matrix 🌡️

FOSDEM!

This year, the Matrix.org Foundation is excited to host the first ever Matrix.org Foundation and Community devroom at FOSDEM. A full day of talks, demos and workshops around Matrix itself and projects built on top of Matrix. Read (and answer to) our Call for Partipactions!

Finnish Admins to the Rescue

cos says

A group of Finnish Matrix admins have set up a free homeserver for Finnish public called pikaviestin.fi (literally instant messenger dot fi). It offers a bunch of bridges and registration requires an e-mail address in one of Finnish e-mail providers or organizations. We welcome all Finns to register there and help decentralize Matrix. Support room can be found at #aula:pikaviestin.fi

That's a fantastic initiative! Kudos to all the sysadmins involved!

Dept of Spec 📜

anoa reports

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

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

The end of the year is drawing to a close. Thus many of the Spec Core Team members are focusing on implementation in order to meet deadlines. Review is still occurring though! As above, we have MSC3419 (allow guests to send more event types). This was born out of next-generation VoIP work, but it should have a positive impact on improving the guest experience in Matrix on the whole.

Otherwise work is still ongoing by Bruno and others on untangling the aggregations MSCs, specifically MSC2675 and MSC2676.

And finally, Alexandre Franke has PR'd some work to allow for matrix.org's OpenAPI spec to be widely available, meaning anyone with a Swagger (or other OpenAPI viewer) client can easily pull it and start sending requests against a Matrix homeserver. Fun times!

Random MSC of the Week

The random spec of the week is... MSC3419: Allow guests to send more event types.

Random numbers, ladies and gentleman.

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

callahad says

Goooood evening TWIM readers!

I want to start by drawing attention to a blog post which we published today: Type coverage for Sydent: motivation. This the first in a series of three articles discussing what we've learned from making Sydent pass the mypy type checker in strict mode. Improving type coverage across Synapse, Sygnal, and Sydent has been a major focus of the backend team at Element for the past few months, and we think we've learned a few useful things in the process.

This week we also released Synapse 1.48 with loads of internal improvements, new Admin APIs, better alignment with the Matrix 1.1 spec, and more. We're planning one more release for the year, 1.49 on December 14th, and then we're taking a break until Synapse 1.50 on January 11th.

Importantly: Synapse 1.49 will be the last release to support Python 3.6, PostrgreSQL 9.6, and Ubuntu 18.04 LTS (Bionic) — if you're reliant on any of these platforms, please ensure you have plans to upgrade.

Let us know what you think of the article (and the Synapse release!), and we'll see you next week!

Sydent

Sydent is the reference Matrix Identity server. It provides a lookup service, so that you can find a Matrix user via their email address or phone number (if they have chosen to share it).

dmr reports

I've just published a blog post (part one of three) about our efforts to improve Sydent's type coverage. It should hopefully be of interest to anyone who works with Python or is interested in static analysis more generally.

Gitter

madlittlemods (Eric Eastwood) reports

In the vein of Gitter feature parity on Matrix, we've made the first steps towards a better public static archive. We merged an experimental implementation of MSC3030 into Synapse which lets you use the unstable /timestamp_to_event client API endpoint go from a given timestamp to the closest event ID. This will allow us to implement a calendar jump to date interface to be able to navigate to any day in the rooms history. Our first target to add the jump to date UI in is Hydrogen since we plan to server-side render Hydrogen for the actual public static archive as well.

To enable the MSC3030 unstable API endpoints in Synapse, add experimental_features -> msc3030_enabled: true to your homeserver.yaml:

GET /_matrix/client/unstable/org.matrix.msc3030/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>
{
    "event_id": ...
    "origin_server_ts": ...
}

Also as part of MSC3030, when you use the client API endpoint, if your homeserver sees that the closest event it has locally in the database is next to a gap in the history, it will go out and ask other federated homeservers what they have as the closest event instead.

GET /_matrix/federation/unstable/org.matrix.msc3030/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>
{
    "event_id": ...
    "origin_server_ts": ...
}

*--

MSC2716 to import batches of historical messages is still marching along getting some polishing passes and strengthening the assertions in the Complement tests to make sure things are going absolutely correctly. It's also good to see Beeper utilizing it and catching a few bugs along the way 💪.

Dept of Bridges 🌉

Hookshot

Half-Shot reports very late, to the great despair of TWIM's editor:

Hookshot gets provisioning!

Stop the press. This is a last minute TWIM. We've been beavering away on matrix-hookshot. It's gained many features in the last week, but the big thing is that hookshot has gained the ability to provision connections over a provisioning API, which means it should hook nicely into Dimension (and other integration managers, in the future)!

Other notable features are:

  • Support for multiple webhooks per room
  • Support for the username/text fields on an incoming webhook (slack style)
  • Named webhooks, so each hook now has a sensible displayname
  • The ability to spawn GitHub actions from rooms using the !gh workflow run command
  • Lots of new supported events from GitLab, such as reviews and tag pushes
  • Hosted documentation (so all of the above is easy to setup), it's a bit in progress atm.

We're aiming for a release very very soon, hopefully in the next week or so!

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace says

And this week, as a complete and utter surprise, my Helm Charts got updates; with matrix-synapse updated to 1.48.0

Dept of Clients 📱

SchildiChat

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.

qg announces

In a new release being published just now we added the possibility to mark rooms as unread also on Web/Desktop (using MSC2867, huge thanks to @alangecker for his PR on Element Web!). This has already been implemented in SchildiChat-Android and is now enabled on both by default.

Nheko

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

Nico says

We finally figured out what caused the issues with the flatpak on GNOME, especially on Arm. It should now work properly, if you use Flathub. On the Pinephone (and other systems, that don't set a locale/use the C locale), timestamps should now not be needlessly long anymore. Redactions got a face-lift to distinguish them better from normal messages. We added a workaround for Synapse not allowing you to leave a banned room. We now delete the room from the room list permanently if Synapse returns "unknown room" when trying to leave it. Spaces can now show the entire hierarchy in the sidebar (if you pull it out) and you can navigate to subspaces by clicking on them in the roomlist, even if you collapsed the space hierarchy in the sidebar.

That's all, now let me bake some cookies! 🍪

FluffyChat

Krille Fear says

Today we have released FluffyChat 1.0.0 with a whole new design, a lot of bug fixes and huge performance improvements.

New design

The new design has bigger message bubbles with fancy shadows and bigger fonts. The contrast has been improved and some elements, like the time on every single message bubble, are now hidden by default. But they are not gone! Detailed message information are now accessible in the new message info page, where we not also can see the message type and the timestamp, but also the whole JSON source code of each timeline event.

Spaces

Spaces have got a lot improvements and bug fixes. They have moved to the bottom bar of the chat list (while this bottom bar is still hidden if you have not joined any space yet). The multi account switcher have instead been moved to a top left drop-down menu. So we finally got rid of the drawer, which seems to be a deprecated material design feature anyway. This new UX makes spaces much easier to use. You can long press on them to go to the space settings and long press on any chat in the chat list, to add or remove a chat to (or from) a space. We still have no support for the spaces summary API though so we don't have yet the ability to discover new rooms inside of a space but this feature might land soon in the Matrix Dart SDK.

Multi Account

FluffyChats multi account is still in beta but got a lot of bug fixes as well. You are now able to sort your accounts in "bundles" which can be very handy. The new account switcher button gives you a much better overview over your connected Matrix accounts now.

Performance

We did a lot refactoring under the hood in our Matrix Dart SDK and have improved our in-app database a lot. On the web it now uses IndexedDB natively while it tunes all database transactions on all platforms. This leads to the fastest FluffyChat experience we ever had and makes the app finally kinda usable with bigger accounts on all platforms. The room list is now lazy loaded which speeds up the app start (especially with multi account enabled) a lot. Choose your own primary color This was a long requested feature. You can now choose your favorite color to style your FluffyChat for your needs:

What will you choose? Let me know in the comments. I mostly like blue on my Ubuntu desktop.

New major version?

Ahhh by the way... What does it mean that we now have FluffyChat 1.0.0? It does NOT mean that the previous versions were not yet stable or ready for daily use. It just means that we make so many changes at once that we thought, bumping the first digit of our pseudo-semver version string might make sense. We totally messed up our versioning and are now going to do it better. Promised!! What's next? We are often asked: What is the roadmap of FluffyChat? Well... we still don't have a clear roadmap and might never have. FluffyChat is completely driven by volunteers. But what I can say that we would like to do in the next months is:

  • Better QA -> We would like to write some integration tests, push release candidates before new releases and involve everyone in testing them to offer the best stability possible.
  • Native video calls -> Yes! There will soon land support for native video calls in the Matrix Dart SDK and we are going to implement this in FluffyChat.
  • Stories -> Like you might know from SnapChat, WhatsApp or Instagram, stories are little messages you can send to all of your contacts and which will disappear after 24 hours. I would really like to implement this in FluffyChat!
  • Better notifications for iOS
  • Deeper support for spaces
  • Knocking feature
  • Drag&Drop for web

But as I said this is what we would like to do. We can't give any warranties on anything. We can only do our best. But you can help us if you like (You don't have to).

  • Join the FluffyChat community: https://matrix.to/#/#fluffychat:matrix.org
  • Report bugs at our issue tracker: https://gitlab.com/famedly/fluffychat/-/issues
  • Help with the translations and join our translators team: https://matrix.to/#/#fluffychat-translation:matrix.org
  • Help with development directly in GitLab <3
  • ... or support us on Liberapay so we can organize more FluffyChat developer meetings: https://matrix.to/#/#fluffychat-translation:matrix.org

The complete changelog for FluffyChat 1.0.0:

  • design: Chat backup dialog as a banner
  • design: Encrypted by design, all users valid is normal not green
  • design: Move video call button to menu
  • design: Display edit marker in new bubbles
  • design: Floating input bar
  • design: Minor color changes
  • design: Move device ID to menu
  • design: Place share button under qr code
  • design: Redesign and simplify bootstrap
  • design: Remove cupertino icons
  • feat: Display typing indicators with gif
  • feat: Fancy chat list loading animation
  • feat: New database backend with FluffyBox
  • feat: Make the main color editable for users
  • feat: Move styles one settings level up
  • feat: Multiple mute, pin and mark unread
  • feat: New chat design
  • feat: New chat details design
  • feat: New Public room bottom sheet
  • feat: New settings design
  • feat: Nicer images, stickers and videos
  • feat: nicer loading bar
  • feat: Open im.fluffychat uris
  • feat: Redesign multiaccounts and spaces
  • feat: Redesign start page
  • feat: Send reactions to multiple events
  • feat: Speed up app start
  • feat: Use SalomonBottomBar
  • feat: Drag&Drop to send multiple files on desktop and web
  • fix: Adjust color
  • fix: Automatic key requests
  • fix: Bootstrap loop
  • fix: Chat background
  • fix: Chat list flickering
  • fix: Contrast in dark mode
  • fix: Crash when there is no prev message
  • fix: Do display error image widget
  • fix: Do not display bottombar in selectmode
  • fix: Dont enable encryption with bots
  • fix: Dont loose selected events
  • fix: Dont rerun server checks
  • fix: download path for saving files
  • fix: Hide FAB in new chat page if textfield has focus
  • fix: Let bottom space bar scroll
  • fix: Load spaces on app start
  • fix: Only mark unread if actually marked
  • fix: Public room design
  • fix: Remove avatar from room
  • fix: Remove broken docker job
  • fix: Report sync status error
  • fix: Self sign while bootstrap
  • fix: Sender name prefix in DM rooms
  • fix: Set room avatar
  • fix: Various multiaccount fixes
  • fix: Wrong version in snap packages

What a massive update! Little birds told me we will hear about FluffyChat very soon!

Element

Everything related to Element but not strictly bound to a client

kittykat says

Threads

  • On Web, work continues on notifications and integration with homeserver APIs to improve user experience.
  • On Mobile, link sharing has been added and work is about to start on notifications.

Polls

  • Polls are nearly ready! If you enable this feature in labs, you can create a poll with several options, and people can vote on it.
  • We’re working on the finishing touches, and the first version of polls will be available in a release (on Element Desktop, Web, Android and iOS) within a few weeks.

Community testing

  • We closed 34 encryption bugs which had been resolved by improvements to the workflows and user interfaces.
  • Due to the overwhelming success with bug squash sessions in the last few weeks, we are making these a regular feature. Our next session will be on Thursday 9 December at 17:00 UTC.
  • For information about upcoming sessions and to join in, join #element-community-testing:matrix.org

Element Web/Desktop

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

kittykat announces

  • In labs, work continues on Information Architecture: new history interaction to replace breadcrumbs
  • We are monitoring and triaging feedback which is submitted through the new feedback UI in the app.
  • Fixed long standing bug around link formatting - links are not formatted as markdown any more.

Element iOS

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

kittykat says

  • Analytics: final changes to allow opt-in analytics reporting with PostHog
  • MatrixKit has been integrated into element-ios in preparation for moving to the SwiftUI framework
  • Release Candidates are now scheduled on Tuesdays (previously on Wednesdays) which will bring them in line with Web releases.

Element Android

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

kittykat announces

  • Element 1.3.9 has been submitted to Google: it adds support for voice message drafts and many bug fixes.
  • Starting work on new login flow: the user will be asked if they have an account or want to create one on the very first screen.
  • Analytics (PostHog): implementing the opt-in screen. Should be included in the 1.3.10 release.
  • Release Candidates are now scheduled on Tuesdays (previously on Wednesdays) which will bring them in line with Web releases.

Dept of SDKs and Frameworks 🧰

Trixnity

Multiplatform Kotlin SDK for Matrix

Benedict says

Trixnity, a multiplatform Matrix SDK written in Kotlin, has grown up since the last release 6 month ago! It has it first release candidate for v1.0.0!

If you don't heard about Trixnity: Trixnity aims to be strongly typed, customizable and easy to use. You can register custom events and Trixnity will take care, that you can send and receive that type.

The most exciting thing is the new trixnity-client module. It provides a high level client implementation and allows you to easily implement clients for Desktop, Mobile and Web. You just need to render data from and passing user interactions to Trixnity. The key features are:

  • exchangeable database
  • fast cache on top of the database
  • E2E (olm, megolm)
  • verification
  • room list
  • timelines
  • user and room display name calculation
  • asynchronous message sending without caring about E2E stuff or online status
  • media support (thumbnail generation, offline "upload", etc.)
  • redactions

At the moment, Trixnity only supports JVM in all modules, but JS and Native will follow soon (to be exact: when Kotlin 1.6.10 and ktor 2.0.0 is released). I also implemented the module trixnity-olm, which implements the wrappers of libolm for Kotlin JVM/JS/Native.

Cross signing is one of the next big features, I want to implement.

simplematrixbotlib

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

krazykirby99999 reports

Version 2.4.1 Released!

Docs Changes:

  • Added missing await statements to several examples
  • Added additional clarification on using the "m.notice" msgtype
  • Used Markdown instead of HTML to display a specific link

Example usage is shown below:

import simplematrixbotlib as botlib

creds = botlib.Creds("https://home.server", "user", "pass")
bot = botlib.Bot(creds)
PREFIX = '!'

@bot.listener.on_message_event
async def echo(room, message):
    match = botlib.MessageMatch(room, message, bot, PREFIX)
    if match.is_not_from_this_bot() and match.prefix() and match.command( "echo"):
        response = " ".join(arg for arg in match.args())
        await bot.api.send_text_message(room.room_id, response)

bot.run()

A thank you to HarHarLinks for their contributions to version 2.4.1!

Request additional features here.

View source on Github View package on PyPi View docs on readthedocs.io https://matrix.to/#/#simplematrixbotlib:matrix.org

Dept of Videos 📹

andybalaam announces

I'm exploring the matrix-rust-sdk on my live stream every week. I'm working on a simple Rust bot for Matrix. Come watch me struggle with the compiler on PeerTube or Twitch every wednesday at 14:00 UTC!

Room of the Week 📆

Timo ⚡️ says

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: #audiophiles:matrix.org

"Headphones, Speakers, IEM and any audio related equipment. Music recommendations as well."


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
1matrix.markshorten.co.uk1013
2helderferreira.io1099
3envs.net1438
4thomcat.rocks2552.5
5matrix.sp-codes.de3732.5
6jauriarts.org3756.5
7trygve.me3829
8grimneko.de5095.5
9kittenface.studio5606
10jeroenhd.nl6970

#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
1matrix.awesomesheep48.me1042
20x1a8510f2.space1076
3dendrite.s3cr3t.me4405

The Adventures of TWIM bot continued

Following the late reports of the spec and hookshot updates, TWIM bot's ship went into hyperspeed. Our dear bot lost control of the ship and we lost its signal. We're doing our best to contact it and hope it's safe!

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-11-26

26.11.2021 00:00 — This Week in Matrix Thib

Matrix Live 🎙

Dept of Spec 📜

anoa says

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

Closed MSCs:

Spec Updates

MSC2675 (serverside aggregations) is getting lots of updates from Bruno in order to align the proposal with what is currently implemented in the wild (as it's easier to iterate on incremental improvements from a starting point grounded in reality). This MSC is a bit of a special case though, as it was implemented with stable prefixes before the MSC landed (in the before times...).

Regardless, thank you very much to Bruno for going through and finally untangling and help land aggregations in the spec! This MSC is one of four which describe how aggregations should work in Matrix, and it's great to see them finally being properly spec'd, especially as further features start to be built on top of them (such as threading!).

And finally, a further thank you to community members @ankur12-1610, @Dominaezzz for an OpenAPI schema fix!

Random Spec of the Week

The random spec of the week is... MSC3395: Synthetic appservice events!

This proposal aims to allow appservices to get ever greater visibility into what is happening on the homeserver, while still maintaining full process separation.

A lot of the time solutions to complex problems require knowing when a user has registered or logged in, with what name/3pids etc, when users change their emails, etc. Hooking into these non-room-based actions can help with developing useful features. Maybe you want an appservice that plays a sound effect whenever a user signs up to your homeserver!

These days, that is often achieved by homeserver implementation-specific solutions, such as modules in Synapse. Being able to notify of these events using a standard API shape would be hugely beneficial to generalisation of projects.

So give the proposal a look over and review if that interests you!

Some exciting MSCs this week, I've been waiting for server-side aggregations for long!

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

callahad announces

As predicted last week, we released Synapse 1.47.1 on Tuesday. This is a security release which fixes an issue with Synapse's built-in media repository. Admins are strongly encouraged to upgrade.

Otherwise, relatively slow week: a handful of of the team have been away (Happy Thanksgiving, Americans!), but we did release Synapse 1.48.0rc1. Most importantly, this release candidate includes changes to improve the efficiency of large background updates from past releases, which should significantly reduce database load when upgrading. It also adds support for the /v3 APIs defined in version 1.1 of the Matrix specification.

We'll talk more about 1.48 when it's formally released next week, but as always, we appreciate folks trying out the release candidates and letting us know how they behave.

Administrators, keep your users safe: update as soon as you can!

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace announces

A bit of an earlier update this week, but I wanted to make sure to note that my Hem Charts have been updated to matrix-synapse 1.47.1 for the security fix - and element-web has also been bumped to 1.9.5

Dept of Bridges 🌉

mautrix-googlechat

tulir reports

mautrix-googlechat has seen lots of improvements over the past few days. New features include:

  • Bridging edits, deletions, reactions, formatting and read receipts in both directions (even /rainbow somewhat works from Matrix)
  • Bridging typing notifications and any types of files from Matrix to Google Chat
  • Bridging Google Meet links from Google Chat to Matrix
  • Syncing group members from Google Chat

(edits and deletions are only available on Google Workspace accounts, not normal accounts. I have no idea why they did that, but that's just how Google Chat works 🤷)

There's still a bug where it sometimes silently stops receiving messages, which I'm currently trying to solve (or work around). After that I'll make a v0.3.0 release. Backfilling history may also happen in the near future

Matrix Webhook Receiver

An add-on for the matrix-appservice-webhooks bridge. Webhooks are essentially web interfaces for applications to "push" data to. The bridge can receive messages in a certain format, which is nice if the notifying app can be configured. Often it cannot.

kim announces

Matrix Webhook Receiver

Do you like to receive notifications in matrix? Matrix Webhook Receiver (MWR) is an add-on for the matrix-appservice-webhooks bridge. Webhooks are essentially web interfaces for applications to "push" data to. The bridge can receive messages in a certain format, which is nice if the notifying app can be configured. Often it cannot.

This is where MWR comes in: It can receive any (JSON) content, optionally reformat it nicely (customizable!), and forward it to the webhooks bridge which will post it to a room for you. If you are running any software service, there is a good chance it can notify you via webhooks!

Right now, several example configurations exist, ready for you to use:

  • GitHub
  • GitLab (including Community Edition/self hosted)
  • Ansible Tower/AWX
  • Grafana Alerts

For example, here is the GitHub webhook as seen in #matrix-webhook-receiver:matrix.org:

More examples of apps currently in development: Prometheus Alertmanager, Jellyfin

It is also easy to use to send messages from the commandline with standard tools (curl), e.g. for your cron jobs! See the README for an example.

Some other webhook matrix things exist, but often require

  • ➖ admin access to server (appservices)
  • ➖ installing and running and maintaining a specific bot per service
  • ➖ create and set up accounts and passwords for each bot to use

In contrast, MWR requires:

  • ➖ matrix-appservice-webhooks set up on your server by your admin
  • ➖ some knowledge of how to send POST requests for one time setup. I want to improve that, suggestions are welcome!
  • ➕ MWR can be installed and run by anyone who can access the bridge
  • ➕ one single MWR supports any amount of notifying apps!
  • ➕ you don't need admin access to the server to add more apps
  • ➕ no need to develop a bot/plugin to support new apps, just write a quick jinja template
  • ➕ multiple people can use a single MWR instance by sharing HTTP basic auth credentials

Other features:

  • can post into encrypted rooms (see readme)
  • automatically generated API docs
  • message formatting presets including html markup or m.notice
  • arbitrarily customizable webhook URLs
  • list and manage currently installed webhooks in your browser (screenshot)

Links:

What a massive update! At this rate I won't need to leave my Matrix client for anything!

matrix-hookshot

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

Half-Shot says

Hey folks! Some exciting new news on the bridge front: I've renamed matrix-github to matrix-hookshot to better reflect it's not-just-GitHub-ness. That's not all though, as there are new features too:

  • The bridge now supports Rust as a companion language (we're aiming to rewrite critical sections in rust). Some parts of the formatting code have already been rewritten.
  • The bridge now supports JIRA (full puppeting!)
  • The bridge now supports generic webhooks too, with the ability to write custom handling code inside the state event to process these hooks into pretty messages.
  • Basic support for GitHub discussions.

In the works:

  • A provisioning API to hook into integration managers
  • More GitLab support
  • Better GitHub discussions support

We're not quite ready for a 0.2.0 release, but please check us out at https://github.com/Half-Shot/matrix-hookshot.

An interesting update, and Half-Shot even demoes it in today's Matrix Live!

Dept of Clients 📱

Nheko

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

Nico says

After the 0.9.0 release last week, we have of course been busy fixing all the bugs different people reported. Messing around with the sticker pack editor and then leaving room should not make Nheko crash anymore. The problems where the flatpak has issues starting on Gnome systems are still under investigation. We thought we had a solution, but that seems to have broken other stuff! 💥

Apart from that we have been doing some after release party cleanup. Apart from some refactorings, you can now filter your rooms on whether they are a direct chat or not in the sidebar. This is in addition to the filters we already had for favourites, spaces and your other personal tags. User colors should also now be much less biased towards blue and jdenticons should have more variance. Expect the next release to be a much more colorful experience!

Speaking of colors, Twily made this awesome ZX Spectrum inspired logo after we changed our Gitlab bot to be more colorful! Check it out:

Gorgeous, I love it!

Hydrogen

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

Bruno says

We're still distracted with SDK work and other things less visible for users, but this week we've also released 0.2.22 that fixes login on Element One (and other servers using SSO login and not yet supporting the experimental dehydrated devices).

Element

Everything related to Element but not strictly bound to a client

kittykat says

Threads

  • On Web we’ve been working on Notifications and Badges, making sure no message goes unread.
  • On Mobile we’re building out the new Threads Panel so you can easily see all the Threads in a room.

Polls

  • The Polls team is making great progress, focusing their efforts on creating and voting on all platforms.
  • User testing sessions are coming up!

Community Testing

Element Web/Desktop

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

kittykat announces

  • Work continues on Information Architecture: head over to Sidebar settings on develop.element.io to see what the team are currently working on.

Element iOS

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

kittykat announces

  • We’re still working hard on replacing Matomo with PostHog to improve how we collect analytics data and making the MatrixKit obsolete.
  • Adding more features to Spaces and improvements to Spaces performance is also happening.

Element Android

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

kittykat announces

  • Voice message drafts and other improvements to this feature are underway.
  • We’re also looking to integrate PostHog on Android.

Dept of SDKs and Frameworks 🧰

simplematrixbotlib

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

krazykirby99999 says

simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio. Version 2.4.0 provides several new features and a fix.

New Features:

  • Newlines are now supported when sending markdown messages.
  • The msgtype of text and markdown messages can now be specified. Text and markdown messages can now optionally be sent as "m.notice" to avoid alerting everybody of the new message. The default msgtype will continue to be "m.text".

New Fixes:

  • Fixed issue where the homeserver was hardcoded in an http request.

Example usage is shown below:

import simplematrixbotlib as botlib

creds = botlib.Creds("https://home.server", "user", "pass")
bot = botlib.Bot(creds)
PREFIX = '!'


@bot.listener.on_message_event
async def echo(room, message):
    match = botlib.MessageMatch(room, message, bot, PREFIX)

    if match.is_not_from_this_bot() and match.prefix() and match.command(
            "echo"):
            
        response = " ".join(arg for arg in match.args())
        await bot.api.send_text_message(room.room_id, response, "m.notice") ## Uses the msgtype of m.notice instead of m.text

bot.run()

A thank you to HarHarLinks for their contributions to version 2.4.0!

Request additional features here.

View source on Github View package on PyPi View docs on readthedocs.io https://matrix.to/#/#simplematrixbotlib:matrix.org

jOlm

Olm bindings for Java

brevilo reports

This week saw three releases of jOlm which fix a native memory management issue, an Olm API (buffer) issue and add a few other improvements. Everyone is strongly encouraged to update to the latest release.

Notes:

  • ✅ Bugfix and maintenance releases
  • ✅ Up to date with Olm 3.2.6

Changelog:

  • Fixed the backing store retention for all Olm instances
  • Fixed a buffer issue in InboundGroupSession.decrypt()
  • Ensured conversions of variable native strings are trimmed
  • Centralized conversions to canonical JSON
  • Completed initial set of unit tests (effectively full coverage now)

Cheers!

The only Java bindings of Olm to my knowledge, that's some very valuable work here!

Dept of Ops 🛠

synadm

Command line admin tool for Synapse (Matrix reference homeserver)

jojo reports

synadm v0.32 is out!

My personal favorites of the new features are:

  • Dates and times in several subcommands are translate the admin API's UNIX epoch timestamps to a human readable format.
  • synadm room list now displays room aliases (#room:your.homeserver)

Read the full release notes here: https://github.com/JOJ0/synadm/releases/tag/v0.32

synadm is very useful as a homeserver administrator. Thanks JOJ0

Dept of Bots 🤖

maubot

A plugin-based Matrix bot system.

tulir reports

maubot v0.2.0 was released last weekend. Highlights:

  • Enabling encryption should be much easier: the device ID can be entered in the web UI or you can just do mbc auth --update-client to automatically log in and store the access token and device ID in maubot.
  • mbc auth can now log in with SSO.
  • The standalone mode for running a single plugin with a static config is now mostly functional and somewhat documented.

Also, I finally took a day to figure out Sphinx/autodoc and made some decent-looking autogenerated docs for mautrix-python. I'll probably extend that to generate maubot-specific API references too eventually.

Dept of Interesting Projects 🛰️

MinesTRIX

A privacy focused social media based on MATRIX

Henri Carnot announces

Quick update on MinesTRIX (a privacy focused social media based on MATRIX). This week was focused on performance and stability.

  • Changed database to use Fluffybox, this should greatly improve performances on web (thanks Famedly !)
  • Scrolling through the posts of a profile now properly request history.
  • Friend suggestions are now sorted according to the sum of user appearance in all rooms. Naïve, but it's the first step.
  • Chat page has also been redesigned. Now support replies and reactions. Chat settings now display room avatar and fetch user list from server.
  • Bug affecting MinesTRIX profile creation has been fixed. Login process should be way more stable now.
  • Minestrix rooms sync has been rewritten to take into account sync events to rebuild the list.
  • Debug page now allow forcing sorting rooms.
  • Various post display enhancement (links are now clickable, thanks kellya!)

Come chat with us : #minestrix:carnot.cc

That's one exciting project, I can't wait to see how far it's going!

Sign in with Matrix

Mish says

Federated sign-in component for your web app (using Matrix)

This week's update:

  • Gained 180 stars on GitHub since release (thanks!)
  • Added login states, accessible from the API
  • Sign out
  • Added CSS styling via variables
  • Updated demo

more on https://github.com/mishushakov/signin-with-matrix

As last week, a note to keep in mind that this is a community project and that there is a MSC to make Matrix more OAuth2 friendly. More on that very soon!

Dept of Built on Matrix 🏗️

Matrix Forms

Mish reports

First release of "Matrix Forms", a project which redirects form submissions to designated Matrix rooms

Features:

  • Server-side, no additional JavaScript
  • Rich formatting
  • Many forms on same instance
  • File uploads
  • Templates
  • CORS
  • Metadata accessible for bots

Can be installed using NodeJS or Docker

  • demo: https://mishushakov.github.io/matrix-forms
  • code: https://github.com/mishushakov/matrix-forms

Final Thoughts 💭

Server_Stats

MTRNord says

Today is a good day for those calling me a spy, someone not wanting to care about privacy and for those who did publicly harass me for server_stats.

People using the API likely already noticed it wasn't reachable for a while. Effective immediately I am currently leaving all rooms the bot is part of. This will take days or even months considering this are 6397 rooms at the time of writing. I am not going into the motives of why I am shutting it down. It comes down to personal reasons.

There won't be any dump of the data. The source will be kept public. Note though if anyone ever tries to run it that you need about 600GB of space for synapse, a lot of CPU, a lot of RAM and plenty of workers as this can easily crash synapse.

Server_Stats was an incredibly useful project. It pains me a lot to see it go, but it pains me even further that its author got harassed. This is not an acceptable behaviour, and we are better than that as a community. Thanks for this incredible project MTRNord, it's been both exciting and useful.

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.best413
2kapsi.fi508.5
3maescool.be528
4envs.net540.5
5converser.eu547
6matrix.org577
7thesilentlink.org838
8matrix.markshorten.co.uk1068
9aria-net.org1217
10trygve.me2137

#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.dev430.5
2grin.hu555.5
3matrix.org1027
4dendrite.matrix.org1056
5matrix.awesomesheep48.me1191
6sspaeth.de1251.5
70x1a8510f2.space3350.5
8spooks.cyou10963.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-11-19

19.11.2021 00:00 — This Week in Matrix Thib

Friday already? Did this week already happen? It looked like the spacetime continuum was broken and we didn't know who did it. We needed witnesses to solve the case: did things really happen this week? And the witnesses showed up! A huge thanks to everyone in the Matrix community who reported their progress, and to everyone currently working on making awesome projects around Matrix!

The case is closed: the week has not been stolen from us. Time appears to have wings, and flies faster than we had anticipated.

Matrix Live 🎙

A very very dense and exciting wrap up of what's happening these days in the Matrix space by Matrix Foundation co-founders Matthew & Amandine! Matrix is stepping up a gear with blazing fast Sync v3, Threading Support, VoIP, VR, a new release of the Spec, always more monthly active users, a full security audit and progress on P2P.

Dept of Spec 📜

anoa says

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

Merged MSCs:

Spec Updates

This week we finally, finally had one of the aggregation-related MSCs, MSC2674 (event relationships) enter final comment period! This MSC, along with several others, document the stuff that powers message edit, reactions, the upcoming threading and polls MSCs, and much more! So it's really great to see the MSCs start to actually land.

Speaking of threading MSC3440 has had a good amount of review from the Spec Core Team last week. Threading in Matrix has been a long awaited feature for chat applications - as well as helping extend the flexibility of Matrix as a data structure even further. The MSC relies on both MSC2674 and MSC2675 (or a modified version of it), so the latter will be an area of focus for review for next week.

Spec PRs

It seems that the recent Matrix v1.1 has drummed up some more community support for spec PRs. Thank you to everyone who's sent in clarifications, changes and even typo fixes. In particular, @ankur12-1610 for fixes to the OpenAPI fields, and for typo corrections in the spec copy, and @Dominaezzz for helping review them. Thank you both!

Random Spec of the Week

The random spec of the week is... MSC2867: Marking rooms as unread!

This is definitely a feature that I would love to have for chat. Note that this MSC proposes marking a room as unread, rather than a specific point in the room's timeline. This is intentional as noted in the document, as the latter is more complicated, as it intersects with sending out read receipts to other users.

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

dmr announces

Note: we plan to release a security release, Synapse 1.47.1 on the coming Tuesday, 23rd of November; see the predisclosure.

We released Synapse 1.47.0 after squashing a couple of problems related to database migrations remaining in 1.47.0rc2. Briefly, this release includes

  • new features for users of the admin and module APIs;
  • a number of long-standing bug fixes, including a thorny bug which prevented joining certain old rooms; and
  • continuing efforts to prototype new MSCs and improve type coverage.

The blog post has a better summary, and GitHub has the full gory details.

We also released Sydent 2.5.1, a minor release which improves the way we handle and log various error cases.

Thank you as ever to our community contributors, and everyone out there who's using Synapse to communicate!

dmr also reminds us

When we release the fix, the changes will be publicly known and bad actors will have the ability to deduce the vulnerability. Most servers don't run release candidates, so releasing the fix in an RC will mean there's a larger window for an attacker to exploit the problem. Internally, there will be an RC deployed to test homeservers and eventually matrix.org. This means we'll be able to confidently recommend the upgrade to server administrators.

dkasak adds

And that's the very reason we have dedicated security releases, instead of just rolling the security fixes into a feature release. The security release doesn't contain anything new apart from the security fix so it minimizes the chance of things going wrong.

Keep your servers up to date, and your users safe, administrators!

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace says

Would you believe it? This week has also seen updates to my Helm Charts, with matrix-synapse having been updated to 1.47.0

Dept of Bridges 🌉

Heisenbridge

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi says

Release v1.7.0 🥳

  • Implement "best effort" basic IRC moderation in plumbed rooms if bot has ops on IRC
  • Allow configuring topic sync for plumbs (IRC<->Matrix or one way)
  • Allow using forward slash (/) as MXID separator for IRC ghosts
  • Bump max mautrix version to <0.12
  • Small fixes

Plumb moderation! If the bridge bot has ops on IRC it will do its best to map kicks and bans (regarding IRC users) from Matrix. This definitely isn't perfect and is meant as a convenience.

Topic synchronization is now configurable for plumbs as well to make it possible to share the same topic between an IRC channel and a plumbed Matrix room. Default is still off and it requires the bridge bot to have enough PL to work.

The separator for IRC ghosts can now be changed to forward slash (/) from the default underscore (_). This happens by modifying the regex in the registration file. Only do this for new installations and it will cause all IRC users to duplicate in rooms who you can't remove and probably other bad side effects as well. The default may be changed in the future.

There were lots of refactoring issues so I hope I fixed all of them 🙈.

Best effort your fix from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Yet another week, yet another great update on Heisenbridge. At this rate Heisenbridge will reach perfection and hifi will run out of things to report!

Dept of Clients 📱

Nheko

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

Nico reports

So, Nheko has a small little release this morning! Okay, that's a lie, it was actually pretty big! You can find the full changelog and some of our binaries here: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.9.0

As always, thank you everyone, who contributed. There were over 30 authors this release! If you haven't tried Nheko in a while, give it a whirl. Lots of stuff changed, some things might not even have been mentioned in TWIM! I put the first few lines of the changelog below for your convenience:

Highlights

  • Somewhat stable end to end encryption 🔐
    • Show the room verification status
    • Configure Nheko to only send to verified users
    • Store the encryption keys securely in the OS-provided secrets service.
    • Support online keybackup as well as sharing historical session keys.
  • Crosssigning bootstrapping 🔄
    • Crosssigning is used to simplify the verification process. In this release Nheko can setup crosssigning on a new account without having to use a different client.
    • Nheko now also prompts you, if there are any unverified devices and asks you to verify them.
  • Room directory (Manu) 📂
    • Search for rooms on your server and other servers. (Prezu)
    • If their topic interests you and it has the right amount of members, join the room and the discussion!
  • Custom sticker packs 🐈‍⬛
    • Add a custom sticker picker, that allows you to send stickers from MSC2545.
    • Support creating new sticker (and emote) packs.
    • You can share packs in a room and enable them globally or just for that room.
  • Token authenticated registration (Callum) 🎫
    • Sign up with a token to servers, that have otherwise disabled registration.
    • This was done as part of GSoC and makes it easier to run private servers for your family and friends!

Features

  • Support email in registration (required on matrix.org for example)
  • Warn, if an @room would mention the whole room, because some people don't like that.
  • Support device removal as well as renaming. (Thulinma)
  • Show your devices without encryption support, when showing your profile. (Thulinma)
  • Move to the next room with unread messages by pressing Alt-A. (Symphorien)
  • Support jdenticons as a placeholder for rooms or users without avatars. (LorenDB)
    • You will need to install https://github.com/Nheko-Reborn/qt-jdenticon
  • Properly sign macOS builds.
  • Support animated images like GIF and WebP.
    • Optionally just play them on hover.
  • Support accepting knocks in the timeline.
  • Close a room when clicking it again. (LorenDB)
  • Close image overlay with escape.
  • Support .well-known discovery during registration.
  • Limited spaces support.
    • No nice display of nested spaces.
    • No previews of unjoined rooms.
    • No way to edit a space.
  • Render room avatar changes in the timeline. (BShipman)
  • Support pulling out the sidebar to make it wider.
  • Allow editing pending messages instead of blocking until they are sent. (balsoft)
  • Support mnemonics in the context menus. (AppAraat)
  • Support TOFU for encryption. (Trust on first use)
  • Right click -> copy address location.
  • Forward messages. (Jedi18)
  • Alt-F to forward messages.
  • A new video and audio player, that should look a bit nicer.

As always, come check us out and chat about Nheko in #nheko:nheko.im

That's one massive update for Nheko! Thanks Nheko contributors!

Element

Everything related to Element but not strictly bound to a client

Nad says

Threads

  • We’ve been polishing UI, and updating notifications on Web
  • On Mobile, we’ve updates iOS & Android to be threads aware, live in the next release
  • We also tested Threads more widely in a community testing session (thanks to all who attended!)

Polls

  • We’re making good progress on polls on all platforms
  • Aiming to get poll creation, voting and the ability to see results working in all platforms in our current sprint, to then move to wider testing

Community Testing

  • Two successful testing sessions on VoIP and Threads (first community testing session on iOS!)
  • Squashed 26 Android VoIP bugs
  • No sessions this coming week, but we’ll be back the week after

Element Web

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

Nad reports

Element iOS

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

Nad says

  • We fixed regressions reported on our previous release candidates. Sorry for the delay but the current release candidate 1.6.8 should be available on the App Store on Monday
  • The work to replace Matomo by PostHog has been resumed
  • We are still working on making the MatrixKit obsolete
  • Space creation / invites: will start design and code review starting next week
  • Start space management integration in rooms

Element Android

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

Nad updates us with

  • Element Android 1.3.8 with support for Android 12 has been released on the PlayStore (beta channel) Wednesday. Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.3.8 . The SDK 1.3.8 has also been released. If everything is fine, the app will be promoted to production and to F-Droid on Monday. The README of the project has been updated to clarify the release process: https://github.com/vector-im/element-android#releases-to-app-stores
  • Voice message draft is currently under active development. We want the feature to work well before we release it, and it was an opportunity to rework the whole feature, to improve its architecture.
  • Still working on the timeline rework.

Dept of Non Clients 🎛️

time-to-matrix

The time command, but it sends the output to a Matrix room

Aine reports

after the Miounne update posted a minute ago here is another one, and it's about time: Time To Matrix (ttm) got v1.4.0 release!

Time To Matrix is a time-like command that will send end of an arbitrary command output and some other info (like exit status) to matrix room.

With new release, following things were added:

  • arch linux AUR package
  • automatic room alias resolving, so you can use #ttm:etke.cc instead of !XODRhTLplrymaFicdK:etke.cc
  • help message and human-readable errors
  • option to change message type (m.text or m.notice)
  • option to omit plaintext and send only html-formatted message (to get some more space for log)
  • option to override message type to m.notice if the command exits with non-zero exit code (by default m.text is sent, so you will get m.notice on failure)

Go check out the source code and say hello in #ttm:etke.cc

Dept of SDKs and Frameworks 🧰

simplematrixbotlib

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

krazykirby99999 reports

Version 2.3.0 Released!

simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio. Version 2.3.0 adds support for additional configuration via config files and other methods. Currently, there is only one setting that can be changed, however many existing and future features will be able to be enabled or disabled via this config.

Example usage is shown below:

"""
random_user
     !echo something
echo_bot
     something
"""

import simplematrixbotlib as botlib

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

config = botlib.Config()
config.load_toml("config.toml")

bot = botlib.Bot(creds, config)
PREFIX = '!'

@bot.listener.on_message_event
async def echo(room, message):
     match = botlib.MessageMatch(room, message, bot, PREFIX)

     if match.is_not_from_this_bot() and match.prefix() and match.command("echo"):
          await bot.api.send_text_message(room.room_id,
                                " ".join(arg for arg in match.args()))

bot.run()

An example of a toml config file is shown below.

[simplematrixbotlib.config]
join_on_invite = false

Request additional features here.

View source on Github View package on PyPi View docs on readthedocs.io #simplematrixbotlib:matrix.org

Dept of Ops 🛠

Mother Miounne

The backoffice of etke.cc service

Aine reports

ding-dong Mother Miounne v2.2.0 is here!

Miounne is a backoffice of the etke.cc service.

New release brings notifications for integrated services:

  • buymeacoffee notifications on new purchase, supporter, subscription and unsubscription (can be configured independently)
  • matrix-registration notifications for new and used invite tokens (can be configured independently)

Go check out the source code and say hello in #miounne:etke.cc

Dept of Bots 🤖

Mjölnir

The moderation bot for Matrix

Yoric announces

Mjölnir v1.2.1 released

  • New feature: if a user on your homeserver reports abuse, Mjölnir may now show the abuse report in your moderation room and offer you two-click moderation options. This feature is considered a preview for the time being.
  • Performance improvements for protections that need to lock back in the history of a room, decreasing the number of cases in which we could end up timing out.
  • Many improvements to testing.

Note: Any rumor of a v1.2.0 Docker image borked by yours truly is sadly true. There should be no risk in 1.2.0 but, to be on the safe side, if you have updated to 1.2.0, please update to 1.2.1.

That's one feature I've wanted for a while, and it's going to make moderation a lot easier! Thanks Mjolnir teams for keeping us safe!

Dept of Interesting Projects 🛰️

MinesTRIX

Henri Carnot says

Hi all !!

Today I want to showcase you MinesTRIX. MinesTRIX is a decentralized social media based on matrix. The goal is to create a privacy respectful social media using the power of matrix while trying to be as simple as possible.

Two Objectives

  • Showing that matrix could be used to build such a system.
  • Helping find your friends using matrix

Currently supported

  • Posting
  • Adding and accepting friends
  • Basic post management
  • Creating groups, posting and adding users to it
  • E2EE device verification (thanks FluffyChat !!)
  • Cross platform thanks to Flutter (Android, iOS, Linux, Windows, MacOS, WEB)

Now what ?

  • Stability fixes
  • Finding a logo ;)
  • Bring sharing functionality for public groups.
  • Adding support for the Circle application.
  • Enhance the friends' suggestion algorithm (Currently it's a really naïve one :D)
  • Add reactions for chats and posts

🚀 About Demo 🏗️ Gitlab Chat

That's a fascinating client, it looks absolutely fantastic! It reminds me a little of Cerrulean. Good job Henri!

Matrix Login

Paul says

There was the "Sign in with Matrix" project recently

I tried to do something similar with https://matrix-login.lyc.fi / https://gitlab.com/ptman/matrix-login

An important note on the interesting projects using Matrix for the login: those are community projects, and there are MSCs in the works to "do it right" at the Spec level!

As Matthew Hodgson reported in a comment on Hacker News :

The direction we're headed in the Matrix spec core team is instead towards replacing Matrix's current auth mechanisms with normal Open ID Connect (rather than wrapping our own OIDC-like thing, as we do today) - as per https://github.com/sandhose/matrix-doc/blob/msc/sandhose/oauth2-profile/proposals/2964-oauth2-profile.md The common login flow would then be for users to be authed by their server using a trusted OIDC identity provider, rather than ever trusting arbitrary clients with their credentials.

Dept of Guides 🧭

Austin Huang announces

I have compiled a list of public homeservers available for registration, since previous such efforts to make these homeservers more discoverable fell through. This list serves as a sanitized version of the asra.gr list, with only homeservers intended for public consumption included. It is a static list and does not include pings, but rather than focusing on the technical aspect, my list has an emphasis on the written rules of a homeserver, which I believe to play a larger role in the Matrix experience. Hope this can spark other efforts in maintaining a better list!

That's one very useful list of hand curated servers! The transparency about the inclusion criteria is very much appreciated. Good job!

Room of the Week 📆

Timo ⚡️ announces

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: #travel:hacklab.fi

"Discussion about destinations, culture, hotels, flights etc.. English only, be nice to each other."


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
1matrix.sp-codes.de517.5
2envs.net591
3converser.eu863
4matrix.markshorten.co.uk959
5aria-net.org1120
6matrix.liamgooch.com1219
7dieholzkatze.de1396.5
8somnet.io1791
9matrix.nicfab.it2048
10trygve.me2147

#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.dev485
2sspaeth.de648.5
3devnullsystem.org874.5
4dendrite.neilalexander.dev943
5matrix.awesomesheep48.me1016.5
60x1a8510f2.space5969

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-11-12

12.11.2021 18:50 — This Week in Matrix Thib

Matrix Live 🎙

This week my guest is Greg who's been organising the Ansible Contributor Summit on Matrix, and who is happy about it!

Dept of Spec 📜

anoa announces

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

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

Matrix v1.1 was released! Read the blog post here if you missed it; it summarises everything that's new in v1.1, as well as plans for the future. Now that the new spec build pipeline and release infrastructure is in place, we're aiming for roughly quarterly releases going forward. Thank you all for being so patient in the meantime!

Random Spec of the Week

The random spec of the week is... MSC1767: Extensible event types & fallback in Matrix (v2) (yes it really chose that).

Extensible events is something that has been a long time coming in Matrix. It unlocks so much potential, and is even currently being built on (see MSC3381 (polls)). Definitely one of the next big ticket items to tackle in the medium term.

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

dmr says

Dan (aka callahad) is away this week, so let me report on his behalf.

We cut a release candidate for Synapse (1.47.0rc2, but see the changelog for rc1). It exposes new functionality for pluggable modules and new endpoints to the Admin API. We've fixed a bunch of long-standing bugs and continued to drive forward efforts to improve documentation and code quality. Thank you to all of our contributors!

With future releases in mind, we've been continuing work to support threading and E2EE application services. We've also been prototyping a new Admin API to remove users from all rooms belonging to a certain space.

Elsewhere, we've been doubling down on our effort to improve reliability and maintainability of our services as a whole. Sydent and Sygnal have a number of PRs in flight for both, aimed at improving type coverage and driving down error noise in the logs. We've drafted a blog post to summarise the process of type annotating mypy (keep your eyes out for that one). We also worked to make the matrix.org database more resilient, and made changes to improve the experience of rolling out upgrades to Synapse en masse.

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace says

Another week, another update on my Helm Charts - seeing element-web bumped to 1.9.4

Dept of Bridges 🌉

Vermicularis

mijutu announces

Vermicularis is a script for forwarding messages from Päikky to Matrix. Päikky is a parent-teacher communication website and mobile app for daycare and pre-school. git clone https://k2c42.dy.fi/git/vermicularis.git and join #paikky:ellipsis.fi to give feedback

mijutu also tells us

Päikky was created by a group of parents who wanted to make communication with daycare staff easier. They started a company and later sold it to Abilita. Päikky is currently used in 40+ municipalities in Finland and also in some private daycare companies too.

Päikky is also used for reserving daycare times for kids.

Heisenbridge

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi says

Release v1.6.0 🥳

  • Make reconnect loop more robust
  • Sensitive flag for MSG and NICKSERV to hide it from network room (for AUTOCMD)
  • Improved STATUS for admin room and simple STATUS for network rooms
  • Small fixes

Not much going on this week. Hopefully the reconnect refactor doesn't cause any breakage as it fixed multiple issues that have been around since the inception of Heisenbridge.

Vacuum your fix from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Dept of Clients 📱

Nheko

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

Nico says

Do you love bugs as much as I do? ♥🐛♥

I guess not. For that reason bug fixing in Nheko for the next release continues. We fixed a super annoying issue, where loading keys from the online backup could make Nheko stuck in a flickering mode with no way to interact with it anymore. You can now also click anywhere on a read receipt to open someones profile instead of just their avaitar, edited messages now also show as redacted, if only the original message got redacted and don't lose the reply in encrypted rooms, if the edit was sent by a client, that is not Nheko. You also used to get logged out after registration, which should finally be resolved. There were also a bazillion translation updates! Thank you, everyone who contributed to those.

We also finally merged the prettier video player, which also fixes a video playback issue on macOS. Try it out and give us feedback on it!

We are still hunting down some last bugs, but expect the release soon now. In the meantime, I did start summarizing the changes, if you want to see what will be in the next release: https://github.com/Nheko-Reborn/nheko/blob/master/CHANGELOG.md#090----unreleased

That's all and have a great weekend!

Element

Everything related to Element but not strictly bound to a client

Nad announces

Threads

  • Message threading is coming to Element! If you haven’t yet, head to develop.element.io and ensure ‘Enable threading’ is turned on in Labs to test on the web.
  • We’re spinning up development on iOS & Android as we speak.
  • We’ll also be running the first Threads community testing session next Thursday (18th Nov) at 17:00 GMT. Come join us in #element-community-testing:matrix.org!
  • Threads are backed by MSC3440.

Polls

  • We also recently started implementing Polls.
  • On the web/desktop, we’ve implemented poll creation and displaying them in the timeline. Next up is implementing voting.
  • Mobile development started recently too, with Android slightly ahead of iOS.
  • Polls are backed by MSC3381.

Community Testing

  • As well as the community testing on Threads, we’ll also be hosting our next testing session for Android on Wednesday (17th), with the time to be confirmed. If you’d like to be involved, join us in #element-community-testing:matrix.org.

Element Web

  • In the background, if you’ve been paying close attention to our issue tracker, you might have noticed lots of changes to our triage & issue workflows over the past couple of months. We’re continuing to iterate on these, extending the best learnings to iOS & Android too.
  • We recently started a project to improve the info architecture/layout of our apps, starting on the web first. We’re merging our first tweaks and experiments soon, so expect exciting things to be landing on develop!
  • We’re continuing to implement more Space creation & management support on iOS. We’ve added in Space creation screens (implemented in SwiftUI!) and we’re polishing inviting people to Spaces.
  • We’ve also been conducting user research to see what parts of the app are tripping users up, and working on fixes to various issues. Expect tweaks to land soon!
  • Otherwise, we’re also merging & testing release candidates for upcoming releases, merging several branches.

Element Android

  • We’ve been conducting the same user research on Android, watch this space for more tweaks & improvements coming soon!
  • Otherwise, we’re also fixing up some smaller issues specific to Android 12.

Cinny

Cinny is a Matrix client focused on simplicity, elegance and security

ajbura reports

Features

  • Landing page redesign
    • Full UIAA implementation means now you can register an account on any hs that allow
    • Configure default homeserver with options to add more than one.
    • Can use http when looking for homeserver
  • Enhanced invite list UX
  • Added logout in loading screen
  • Hide pinned space notification from home icon
  • Add option to select role on roomCreation
  • Added Invite/disinvite option in profile viewer

Bugs

  • Fix commands activating anywhere in the input
  • Fix duplicate and minus notification count
  • Fix links splitting across line mid-word

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

Dept of Non Clients 🎛️

time-to-matrix

The time command, but it sends the output to a Matrix room

Aine announces

It's time! time-to-matrix (ttm) v1.2.0.

A time-like command that will send end of an arbitrary command output and some other info (like exit status) to matrix room. Useful when you need to run something in terminal and get a ping when it's done.

Since the last ttm news in TWIM new options were added:

  • matrix auth with access token - useful for SSO when you don't have actual login/password pair
  • skip time info
  • skip html formatting (doubles allowed log size in message)
  • post full log output to matrix (with auto-shrinker to avoid "message is too big" error)

Source code, releases for all major platform and architectures, and #ttm:etke.cc room

Dept of SDKs and Frameworks 🧰

simplematrixbotlib

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

krazykirby99999 reports

Version 2.2.0 Released!

Version 2.2.0 adds support for authentication via access_tokens. In addition to username/access_token, it is possible to authenticate using username/password and login(SSO) token.

Example usage is shown below:

"""
Example Usage:

random_user
      !echo something

echo_bot
      something
"""

import simplematrixbotlib as botlib

creds = botlib.Creds(
    homeserver="https://example.org",
    username="echo_bot",
    access_token="syt_c2...DTJ",
    )
bot = botlib.Bot(creds)
PREFIX = '!'


@bot.listener.on_message_event
async def echo(room, message):
    match = botlib.MessageMatch(room, message, bot, PREFIX)

    if match.is_not_from_this_bot() and match.prefix() and match.command(
            "echo"):

        await bot.api.send_text_message(room.room_id,
                                        " ".join(arg for arg in match.args()))


bot.run()

Request additional features here.

View source on Github View package on PyPi View docs on readthedocs.io Join Matrix Room

Halcyon

Halcyon is an easy to use matrix library inspired by discord.py

gen3 announces

Hello again! Halcyon is a Matrix bot library created with the intention of being easy to install and use. This release brings minor non-breaking features and some bug fixes:

  • Added
    • change_presence() now allows you to set if you are online, idle, or away. Status message support
    • Roadmap and documentation updates
  • Fixed
    • A fix for retrying on 5xx errors
    • A better catch for bad server syncs
    • Windows support, fixing the NotImplementedError reported by @bhuitt (Thanks!)

More info at on the project at https://github.com/WesR/Halcyon . Come by and chat with us over in https://matrix.to/#/#halcyon:blackline.xyz

Dept of Events and Talks 🗣️

Berlin Meetup

ChristianP announces

Heads up for those in Berlin. You're welcome to join us Tuesday, 16th Nov at 7:00 PM chatting about Matrix development and hosting. We're going to meet in person at c-base. In compliance with the hackerspace's house rules this is a strict 2G event.

We'll talk about everyone's Matrix projects, test the P2P demo via Bluetooth in person and plan the presence of Matrix at the rC3 event happening in the c-base shortly before New Years.

If possible, join our #matrix-berlin:matrix.org room.

Dept of Interesting Projects 🛰️

Mish reports

"Sign in with Matrix" is a web component, which developers can use to build a web login using Matrix account

it is similar to those "Sign in with Google" and "Sign in with Facebook" buttons you see on the internet but now it's Matrix!

i invite you to take a look at the repository: https://github.com/mishushakov/signin-with-matrix and experience a demo: https://mishushakov.github.io/signin-with-matrix/

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.net612
2matrix.org750.5
3sumnerevans.com774
4maunium.net775
5matrix.markshorten.co.uk792
6aria-net.org1002
7nevarro.space1097
8schoepski.de1226.5
9trygve.me1286
10kif.rocks1748.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
1jae.su284
2sspaeth.de296
3devnullsystem.org370.5
4grin.hu482
5dendrite.neilalexander.dev974.5
6matrix.awesomesheep48.me1255.5
7dendrite.s3cr3t.me1500
8dendrite.matrix.org8288

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-11-05

05.11.2021 20:02 — This Week in Matrix Thib
Last update: 05.11.2021 18:48

Matrix Live 🎙

This week we have demos from andybalaam, showcasing high contrast in Element Web/Desktop, Bruno walking us through device dehydration in Hydrogen and Kegan giving us a glimpse of Sync v3! A lot of exciting work going on here!

Dept of Spec 📜

anoa reports

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

Spec Updates

The spec release mentioned last week is happening on Tuesday - look out for a long blog post explaining all the changes, and check out the new platform (as it stands in its current, unstable state) before it goes live. Exciting stuff!

Random Spec of the Week

The random spec of the week is... MSC3217: Soft kicks!

Other than this sounding like something out of a workout routine, soft kicks are proposed as a hint to clients that the user has been kicked from the room, but that it was not out of moderation, but for a technical reason (the example given disconnection from an IRC network). The client can then present a different UX as opposed to a normal, "hard" kick.

Give it a read and provide feedback if the topic interests you!

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

callahad announces

This week we released Synapse 1.46! This release includes a fix for the performance regression from 1.44 which could cause smaller hosts to lock up when clients reconnected after some time offline.

Synapse 1.46 also includes experimental support for MSC3440: Threading via m.thread relation, a big step toward threaded messaging in Matrix. It's otherwise mainly a bugfix release, as we've spent much of our time reviewing infrastructure and making plans to improve our resilience should we experience hardware failures similar to what took out matrix.org two weeks ago.

We continue working toward a prototype implementation of MSC2775: Lazy loading over federation, starting with setting up automated infrastructure to repeatedly measure the join speeds of assorted large, public rooms. Our goal is to have a rough proof of concept for lazy room joins by the end of the year.

We also released Sydent 2.5.0! In addition to fixing bugs, this release passes mypy --strict, uses Jinja2 for templates, and supports the room_type field from MSC3288 to better differentiate between invitations to rooms and invitations to Spaces.

Threads! Awesome! And lazy loading over the federation looks really promising, I can't wait for it.

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace announces

As is routine at this point; My Helm Charts have seen updates, with matrix-synapse bumping to 1.46.0

Keep your infra up to date, folks!

Dept of Bridges 🌉

mx-puppet-*

Sorunome [m] announces

Soru has not found any time to work on the mx-puppet-* project in very long. At this point, it makes sense to look for someone / multiple people to inherit the project to. So, if you are willing to pick it up, or part of it (like a single bridge, only the library, etc.), then please look by #mx-puppet-bridge:sorunome.de. Thanks!

It's always sad when maintainers don't have time for former projects, but you can take over!

mautrix-whatsapp

A Matrix-WhatsApp puppeting bridge

tulir says

mautrix-whatsapp v0.2.0 was released. The main change is switching to the new WhatsApp multidevice API, which means the phone doesn't need to be connected 24/7 anymore. The release also includes a new backfilling system using MSC2716, and making the relaybot mode less special-cased and more like what mautrix-signal does.

Heisenbridge

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Release v1.5.0 🥳

  • Allow opening multiple simultaneous connections to the same network
  • New STOP/STAHP ROOM command to end a long paste flood
  • Clear channel send queue if the user gets kicked to prevent continuing flood on rejoin
  • New KB ROOM command to do a proper kick & ban (contributed by GitHub user @blastrock, thanks!)

The most useful feature this week is having the ability to open multiple connections to the same network. This can be used to plumb channels with a secondary connection while using the bridge as yourself with the main one. You can also STAHP long pastes from being actually sent out completely to a channel if you weren't careful enough on Matrix side.

Upgrading from previous version to v1.5.0 will cause a small migration for every channel/pm that is open so it might take a little longer for the first startup to complete. If no multiple network connections are opened it is safe to downgrade but if someone uses the feature it will cause shenanigans for the duplicate networks in the older version.

Inject your fix from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

As always, Heisenbridge being thoughtful towards our IRC peers.

Dept of Clients 📱

Nheko

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

Nico reports

We are preparing for a release! That means, if you are translator, we could use your help to get our translations updated and if you want to have a bug fixed before release, now is the time to report it or complain about it! Please come and see us in #nheko:nheko.im for complaints and questions!

We saw a lot of translation updates by Linerly, Priit and Thulinma already. The click ghosting issue in the room list should be fixed as well as the crash when accepting an invite from your browser. You can now register on matrix.org again, after fighting with some... reality deforming wording in the spec. Notifications on macOS now use the "modern" API for notifications, including grouping notifications by room. (Expect more fancy improvements there in the future!) The warning about mentioning the whole room now vanishes properly, hiding space children from the roomlist now doesn't hide them from the space itself anymore, the loading spinner shouldn't show in a fully loaded room again, the room directory search bar is now focused by default and a few smaller fixes.

We also completed the bootstrapping UI now. This means you get prompted for unverified devices, when your device isn't verified or when cross-signing isn't configured for your account yet and you are given ways to remedy that.

We have a few more bug fixes we want to land before the release, so don't expect it tomorrow, but we have the featureset down now. And if you thought the changes listed in this snippet are long, wait for the full release changelog. It will probably take a few days for me to tidy that up and I think this will be our biggest release yet! Happy testing, everyone!

Hydrogen

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

Bruno reports

Device dehydration support got released this week in 0.2.20 (see matrix live demo!), allowing you to decrypt messages sent to you while not logged in on any device. Expect another release this evening (0.2.21) with support for multiple lines in the composer and some other bug fixes.

Fractal

Matrix messaging app for GNOME written in Rust.

Alexandre Franke says

To adapt to changes in libadwaita, Marco Melorio removed a deprecated class. In the meantime, enterprisey fixed the build by updating the Matrix Rust SDK dependency and improved Secret Service error handling.

After being away for a few month, Kévin Commaille came back with a blast. No less than three MR already, and I have a feeling he’s only getting started:

As usual, Julian reviewed and merged all the above work, and did some of his own:

We'll refrain from asking when Fractal-Next is due! It's starting to take shape!

Element

Everything related to Element but not strictly bound to a client

Thib reports

  • We’re continuing to flesh out space creation screens on iOS, improving the invite flows post creation for private and public spaces.
  • We’re continuing to iterate on the overall app layout on Web, to fix fundamental usability issues.
    • Expect to see some changes on develop soon, rearranging the top left corner of the app (user avatar, space names, context menu).
    • Expect to see larger experiments landing on develop soon too. We’ll share more info on these when they’re live, and everything will be opt out to not break existing workflows while we’re testing and experimenting.

Element Web/Desktop

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

kittykat says

  • Released Element Web 1.9.4RC
  • Community testing session ran successfully on RC with a focus on voice messages and VoIP calls. We found significantly fewer issues and regressions than in the previous sessions. It was great to see 9 newcomers - thank you to all of our testers who helped out!
  • Improved our sentry analytics data to provide more useful detail.
  • Redesigned the device management section in the user settings. The new view makes it clearer how to rename devices and lets you verify them.
  • This week in labs (features in labs can be accessed at develop.element.io and nightly desktop builds):
    • Threads now has a more polished UI and users can now link to events in a thread. Notifications for threads messages are being worked on and should land very soon.

Element iOS

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

Thib reports

  • We worked on stabilization in order to fix a couple of bugs and crashes found in last releases.
  • We started to work on poll feature.
  • We started to work on threading feature.

Element Android

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

Thib says

  • Release 1.3.6 is finally live on the PlayStore! Release 1.3.7 is expected for the beginning of next week.
  • We have started to implement threading of messages.
  • Draft for voice message has been delayed, we want to ensure that it’s working well before releasing it.
  • We are doing lots of internal migrations: Dagger to Hild, MvRx to Mavericks2, Rx to coroutines Flow.
  • And as always, we are trying to keep the app as stable as possible, and as reliable as possible
  • It’s also worth noting that the SDK 1.3.6 has some improvements in the login API, not needed for Element Android, but requested by other users of the SDK.

Dept of SDKs and Frameworks 🧰

Godot-Matrix

houkime reports

Godot-Matrix is a C++ module for connecting to Matrix from the Godot Game Engine. I refurbished it and the changes made it upstream now ^_^, thx vurpo! :
https://www.matrix.org/docs/projects/sdk/godot-matrix/

Changes:

  • Fixed compilation for 3.x Godot branch
  • Support plain http too for local tests with Conduit
  • Respect port numbers (as per Matrix spec)
  • Substantial rewrite of the example so it works

Refurbishment made with love for the participants of FediJam 4, a weeklong gamedev competition with the focus on fediverse and federated multiplayer (via Matrix or any other means ^_^). It starts this Sunday at 18:00 UTC. Chat

Matrix-Rust-SDK-Bot-Framework-Helper

A toolkit for writing commandbots more efficient in rust for matrix.

MTRNord announces

MRSBFH is now available on crates.io.

Unlike other "overlay" style crates it does not follow the sdk versions using its own version number or using features. So please make sure you use the right version of the SDK with it.

Also it now has support for rusttls, the ! at the start of a command now gets correctly checked and is updated to the latest sdk.

You can check it out at https://crates.io/crates/mrsbfh and https://github.com/MTRNord/mrsbfh

Halcyon

Halcyon is an easy to use matrix library inspired by discord.py

gen3 announces

This release brings some new non-breaking features and a small fix:

  • Added
    • on_ready, called once the bot has logged in and online
    • send_typing, allowing the bot to signal it has received your message with the client typing event
    • improved documentation (including how to set the poll interval)
  • Fixed
    • A sync failure when Homeservers sometimes reject or return a non json response

More info at on the project at https://github.com/WesR/Halcyon . Come by and chat with us over in https://matrix.to/#/#halcyon:blackline.xyz

Dept of Ops 🛠

Mother Miounne

The backoffice of etke.cc service

Aine announces

Mother Miounne v2.1.0

New release of the Commander of etke.cc backoffice is coming here! New version brings new neat features and extends arsenal of the antispam tricks:

  • buymeacoffee listings integration - pretty basic, but that's just a first step! So now you can list subscribers, supporters and extras purchases directly in matrix room (spolier: next releases will bring notifications about new subscribers, supporters and purchases)
  • rate limiter for http forms - no one can bother you if you don't want that! So now you can configure specific rate limits per form
  • enhanced email validation (mostly used in the forms module) - you had spam hosts and emails list before, but now you have MX records checks, regular expressions check and some other useful tricks to hold the door stop spammers
  • ... and some small changes, like doc updates and auto-shrink of long messages to fit into matrix payload limits

Check out the source code, releases, docker images and say hello in #miounne:etke.cc

Dept of Bots 🤖

matrix-vacation-responder

Sumner Evans says

I created a Vacation Responder for Matrix. While running, it responds to any DMs that come in to your account with a preset message. It can be configured to only respond once in a given period of time (defaults to 24 hours) so that the person contacting you can queue up questions for you when you return. Other ways to use the bot include responding to DMs to previously active accounts (for example if you move homeservers). Join the discussion about this bot at #matrix-vacation-responder:nevarro.space.

Dept of Events and Talks 🗣️

SeaGL (the Seattle GNU/Linux Conference)

Salt announces

SeaGL (the Seattle GNU/Linux Conference) is being held on Matrix Friday and Saturday, November 5th and 6th, from 9am-5pm Pacific Time. The conference is running on a customized version of element-web and a regional Matrix homeserver, found at https://attend.seagl.org

Founded in 2013, this is the conference's ninth year overall and second virtual event. Last year, the all-volunteer team built their portal on-top of KiwiIRC and Jitsi for attendees, and BigBlueButton for speakers. This year they have been relying heavily on Spaces, Subspaces, and the built-in features that have been rapidly developing within the Matrix protocol.

From their website:

SeaGL (the Seattle GNU/Linux Conference) is a free—as in freedom and tea—grassroots technical summit dedicated to spreading awareness and knowledge about free / libre / open source software, hardware, and culture.

SeaGL strives to be welcoming, enjoyable, and informative for professional technologists, newcomers, enthusiasts, and all other users of free software, regardless of their background knowledge; providing a space to bridge these experiences and strengthen the free software movement through mentorship, collaboration, and community.

FrOSCon

Oleg announces

The recording of the talk at the FrOSCon this year (in 🇩🇪) about Opsdroid with AI/ML (Rasa NLU) 😉

Dept of Guides 🧭

Cadair reports

Following a question from someone about getting started with Matrix bots, I wrote a super quick getting started guide to writing a simple bot with opsdroid. I will probably integrate this into the opsdroid docs, or somewhere more accessible in the future, but for now here it is: https://gist.github.com/Cadair/2c64cb46fdce7499ff1c0bbb116ce29e

Being an innocent child, I asked:

are you aware of projects relying on opsdroid to make a Matrix bot? Other than half of the very famous TWIM bot 😇

Cadair answered

I have written a few (https://github.com/Cadair/skill-motw, https://github.com/Cadair/skill-intersphinx, https://github.com/Cadair/skill-jitsi) I know that Oleg has also written a number, including many which interact with homeassistant.

I can also go and ask for examples in #opsdroid-general:matrix.org if you like?

I didn't know what I had started! We almost became This Week in Opsdroid! Fortunately the Matrix community is very active and helped us keeping sovereignty over the blog. Phew!

There are too many to list here, but I strongly encourage you to blend in with the opsdroid community. Not only are these kind people, they are also very active and develop fancy and useful bots!

Matrix in the News 📰

Pascal brought to our attention a nice guide from the Fedora Magazine on how to have multiple matrix sessions with Element on Fedora.

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.best529
2heitkoetter.net765
3maescool.be873
4envs.net886
5aria-net.org926
6matrix.markshorten.co.uk1201
7mailstation.de3555.5
8trygve.me3853.5
9jauriarts.org4394.5
10matrix.liamgooch.com4445

#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
1ma.0x.no424
2jae.su448
3weasy-is-my.name453
4dendrite.neilalexander.dev1179
5matrix.awesomesheep48.me1318
60x1a8510f2.space1818.5
7dendrite01.fiksel.info2218
8dendrite.matrix.org9999

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-10-29

29.10.2021 18:56 — This Week in Matrix Thib

Matrix Live 🎙

This week my guest is Element's Kat who conducted various Community Testing Sessions. If you want to learn more about it, why Kat is conducting them, and how you can help, have a look at it!

Dept of Social Good 🙆

Denise reports

TL;DR: Europe is close to officially regulating big corporations and forcing them to open their silos via the Digital Markets Act. Element joined forces with other companies to make sure that the members of the European Commission about to vote on the regulation knew how important it is.

Matrix was created to break the silos, as an interoperable layer for all communications. We wanted to ensure people had the ability to choose where their data is stored, and had the choice of interface to access them. This was also a good way to enable better competition and innovation in the communication space, forcing the players to compete on value add. But whilst Matrix is already a 39M users open network in itself, it could be even better if the bigger silos decided to open up and participate into it.

In December last year, as part of the Digital Markets Act (DMA), the European Commission proposed to update the competition law for digital markets with rules mandating ‘gatekeeping’ platforms to open up, in order to enable innovation and data sovereignty.

This move is so aligned with Matrix and Element’s mission, that Element joined over twenty other organisations to launch the Coalition for Competitive Digital Markets on Tuesday the 26th. The coalition supports stronger rules for large online platforms in the DMA, calling for amendments to it to make sure that major services offer a public API to interact with their core services and to ban the pre-installation and default setting of core platform apps.

Matrix is a perfect example of how technology can thrive through openness and collaboration. We will bring our experiences of using federated and decentralised technologies to MEPs and Council members, in the hope for a regulatory framework which supports European innovation, competition and interoperability.

For more information and to sign our open letter, check out our website: competitivedigitalmarkets.eu

Dept of Spec 📜

anoa says

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

Merged MSCs:

Spec Updates

Matrix 1.1 is just around the corner! The team continues to work hard on getting the infrastructure surrounding the new release process set up, as well as reviewing MSCs, including the ones you can see above!

The current speculative release date is in about a week or two. Keep your eyes peeled!

Random Spec of the Week

The random spec of the week is... MSC3192: Batch state endpoint!

This is one of those MSCs that will likely be sorely needed at some point in time, but currently hasn't gotten a lot of attention. I can think of all sorts of usecases for this (on top of the many that the MSC puts forwards). Go ahead and give it a read!

Dept of Servers 🏢

Synapse

Synapse is the reference homeserver for Matrix

callahad says

Over the weekend, one of the servers backing matrix.org suffered a hardware failure, leading to around half an hour of downtime as we failed over to another system. Remediating and monitoring that has been the focus of much of the Synapse team over the past week.

We also shipped a release candidate for Synapse 1.46, due for formal release next week. Notably, we believe this solves a performance regression which was introduced in Synapse 1.44. If you've been experiencing long hangs or other periods of unresponsiveness, please try upgrading to 1.46.0rc1 and let us know if it resolves your issues.

The Synapse team has also decided to aim for building a rough prototype of MSC2775: Lazy loading over federation by the end of the year, in hopes that this will pave the way to extremely fast joins of large rooms.

We're also continuing to work on static type checking in our projects: As of today, Sydent passes mypy --strict! We hope to write about what we've learned in the near future.

dmr says

Here's an addendum about Sydent. We can see the results of our efforts visually, thanks to mypy's reporting options. Two different metrics show increasing coverage since our typing efforts began in the summer. The grey strip shows the last fortnight's sprint in particular.

Homeserver Deployment 📥️

Helm Chart

Matrix Kubernetes applications packaged into helm charts

Ananace says

And as always, this week brings with it updates to my Helm Charts - with element-web being updated to 1.9.3

Dept of Bridges 🌉

MAM support for Bifröst

uhoreg reports

One of the shortfalls facing XMPP users of the Bifröst Matrix bridge is the lack of support for Message Archive Management (MAM), which allows XMPP users to retrieve messages sent when they are offline, when they come online next time. Sunday Nkwuda and Olatunji Ajayi, with help from Pirate Praveen, are planning on writing support for MAM in XMPP.js (the XMPP library that Bifrost uses), and then adding MAM support to Bifröst. Since this requires some dedicated full-time effort, they are fundraising to support this project at https://opencollective.com/mam-plugin-for-xmppjs. Many thanks to the XMPP Standards Foundation for serving as fiscal host for the fundraising.

Heisenbridge

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Release v1.4.0 🥳

  • Free form AUTOCMD after joining a channel, per channel
  • Automatic rejoin on invite or kick (invite enabled by default)
  • AVATAR network room command to set avatars for IRC users (admin only)
  • WHOIS room command for PMs, PART for channels
  • Add ROOM command in network room to run channel room commands safely
  • Move PLUMBCFG stuff under ROOM command

A smaller release this time around which consists mostly of QoL stuff to make things a little easier. IdleRPG users can now rejoice and login to your character automatically with channel AUTOCMD when joining on reconnect as what's more important: running a bridge to engage in deep conversations or sit in a channel doing nothing?

Plumb users need to use the new generic ROOM command in network rooms to configure plumbs now that PLUMBCFG has been removed.

Go grab your fix from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

Dept of Clients 📱

Hydrogen

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

Bruno reports

Several bug fix releases this week, and hope to get out another release tonight with support for dehydrated devices, which should prevent you from missing any messages while you are logged out of all your devices.

Element Web/Desktop

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

kittykat announces

Our next community testing session on Web will be at 16:30 - 18:00 BST on Wednesday, 3rd November. We will be focusing on voice messages and calls. Join us in #element-community-testing:matrix.org to find out more and help out.

Thib says

  • Released element Web 1.9.3
  • Added sourcemap support to the sentry telemetry sent with rageshakes, and added support for opt-in automatic sentry reporting when errors occur as a labs flag
  • We’ve been working on making notifications and matrix.to work correctly with threads in Element Web. Our MSC continues to progress, receiving feedback from the Spec Core Team this week, and we’ve started to plan how to test the feature.
  • We’re also exploring more intuitive ways to lay out and customise Spaces on the web.

Element iOS

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

Thib says

  • Fix memory management issues
  • Rewrite text composer
  • Depreciate MatrixKit
  • Implement PostHog analytics
  • Improve media sizing in the share extension
  • Improve the crypto store
  • We’re continuing to flesh out creating & managing Spaces on iOS.

Element Android

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

Thib reports

  • Element Android 1.3.6 is on its way to the PlayStore but Google is taking looooong time to review. Release candidate 1.3.7 is scheduled to next Wednesday
  • Replacing Rx by coroutines Flow is nearly there, and will be merged on develop after the release 1.3.7.
  • Besides that we have started to work on Threads and on Polls.
  • Some changes have been made on the SDK API to suit SDK users regarding the AuthenticationService. They will be available in SDK 1.3.7 (next Wednesday).
  • And as always, we work to improve the performance of the application and of the SDK, as well as fixing bugs here and there.
  • We added two (opt-in) lab options:
    • Automatic bug report
    • Structured login / open telemetry (offline)
  • On the crypto side, we're making progress on Android Rust SDK, room shields and key backups

kittykat announces

Last week we had a successful and productive community testing session on Android where we found many issues, including 21 defects, which are already being addressed by product, designers and developers.

Cinny

Cinny is a Matrix client focused on simplicity, elegance and security

Lozenge says

Features

  • Add support for SSO login
  • Implement Profile Viewer
  • Add search in People drawer
  • Add option to filter People in People Drawer

Bugs

  • Fix make both user admin on DM create
  • Fix unable to send msg in DM from IRC users
  • Fixed inconsistent search in emojiboard
  • Fix profile picture inconsistency
  • Fix wildcard matching in emoji search
  • Fix message menu placement on large screen
  • Fix autofocus in msg input upon clicking emojis in emojiboard.

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

Dept of SDKs and Frameworks 🧰

AIOMatrix

AIOMatrix is a simple Matrix bot library for creating bots.

forden says

Today has been released aiomatrix 0.2.0

Supported features:

  • almost full support of client-server API r0.6.1
  • handlers for any event
  • sending messages
  • editing messages
  • support for multiple accounts
  • extendable filters system

Check out examples in Github repo and join us in #aiomatrix:matrix.org (or in #aiomatrix-ru:matrix.org for russian-speaking folks)

Halcyon

Halcyon is an easy to use matrix library inspired by discord.py

gen3 says

Hello again! Halcyon is a Matrix bot library created with the intention of being easy to install and use. This release brought some new non-breaking features:

  • Added markdown package as a dependency, used in formatted messages
  • Added support for the following message types: TEXT, EMOTE, NOTICE, IMAGE, FILE, AUDIO, VIDEO
  • Added support for downloading and uploading MXCs (matrix media)
  • Fixed a reported import issue when trying to use the CLI (Thanks @Josh)
  • Added more documentation and a new example in usage.md

More info at on the project at https://github.com/WesR/Halcyon Chat with us over in #halcyon:blackline.xyz

Dept of Events and Talks 🗣️

Qt World Summit '21

kitsune says

Tobias Fella and I are going to give an introductory-level talk at Qt World Summit '21 next Wednesday (3-Nov) about data encryption in Qt applications, with me giving my usual general bla-bla high-level overview and then Tobias talking about really specific stuff like Base64 using std::variant and a bunch of Qt classes to make your encryption-using code less of spaghetti and more of good-looking modern C++. The talk will be at 15:30 CET/CDT (once for EMEA/APAC and once for Americas), Platform track. Advance registration is necessary. In fact, the talks are pre-recorded but both of us will be online during the session and shortly after so please come around to make sure The Qt Company gets the message and considers adding Quotient as another module to Qt (ok, that's just a dream for now but who knows...)

Berlin Meetup

jaller94 reports

Heads up for those in Berlin. You're welcome to join us Tuesday, 2nd Nov at 7:00 PM chatting about Matrix development and hosting. We're going to meet in person at c-base. In compliance with the hackerspace's house rules this is a strict 2G event.

If possible, join our #matrix-berlin:matrix.org room.

Dept of Interesting Projects 🛰️

Collabs

mweidner says

I work on Collabs, a library for making decentralized collaborative apps, and we have some demos that run on Matrix! E.g., in a widget-capable client like Element, send the message:

/addwidget https://compoventuals-tests.herokuapp.com/host.html?network=matrix&container=demos/rich-text/dist/rich_text.html

to add a collaborative text editor widget. (Fair warning: loading and saving is flaky, so don't type anything you can't afford to lose.)

All collaboration happens using messages sent to the Matrix room. So, you're not dependent on any external service provider, and the document is end-to-end encrypted if your room is.

We have more demos here, with instructions on how to use them in a widget. You can follow those same instructions to run your own Collabs apps (Getting Started Guide), without needing to host any servers yourself!

If you want to learn more about Collabs and see an app running on Matrix, check out my Strange Loop talk: https://www.youtube.com/watch?v=Exr0iY_D-vw&t=3s. The library is in an alpha state and not yet ready for production use, but we'll be improving it steadily over the next year.

Dept of Built on Matrix 🏗️

houkime says

In FediJam feedback we were asked to explore federated gaming. So, for my third FediJam I made a dead-simple prototype of a game using Matrix not for chat, but for multiplayer.

Behold, the Federated Triangle of Doom. Game creates a chat. Any message with 'boom' posted into there spawns the Red Triangle of malice. Yes, literally just it.

Behind the scenes, it uses Godot Engine, with godot-python to make it python-capable. To connect via Matrix, it leverages matrix-nio python module.
As a server, any Matrix server without captcha/email for registration will do!
For simple local tests, I included conduit with the Linux release.

Source Code (/blog/img/MIT)

Dept of Jobs 💰️

Matthew reports

Element is on the hunt for more VoIP and VR developers to help us build next-gen native Matrix video conferencing and VR/metaverse experiences on top of Matrix! If you believe the future of the metaverse should be free/libre, standards-based, open and equitable, come join the resistance! https://apply.workable.com/elementio/j/25BB112FBD/

Dept of Ping 🏓

RankHostnameMedian MS
1envs.net569
2boba.best610
3neko.dev652.5
4ma.0x.no781.5
5matrix.markshorten.co.uk971
6aria-net.org999.5
7trygve.me1085
8fluse.duckdns.org1235
9one.ems.host1265
10matrix.farted.net1363

#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.de387
2jae.su606
3matrix.awesomesheep48.me1717

That's all I know 🏁

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