This Week in Matrix

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

Atom Feed

This Week in Matrix 2021-01-22

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Beeper launched

Eric Migicovsky announced:

NovaChat is now

πŸ”—Beeper

  • New website! beeperhq.com. Beeper is a Matrix server+client combo preconfigured with 12+ bridges. Our mission is to bring a lot of new users into the Matrix ecosystem and give them a fast and powerful client to message people on all networks. Beeper is a paid subscription service, but since all the bridges are open source, you can set the whole system up yourself for free if you choose

  • We're doing a lot of work to boost bridge reliability. Beeper now comes with bridges to Signal, Whatsapp, FB, Slack, Skype, Telegram, Instagram, Hangouts, Twitter, Discord. iMessage coming within a week or two.

  • Sneak peek below of our upcoming desktop UI

πŸ”—Looking for contract work?

  • We are offering bounties of $500-2,000 USD to build new open source bridges based on tulir's mautrix-python or mautrix-go libraries. In particular, we would love to commission Linkedin, MS Teams, Google Chat, GroupMe, WeChat, Snapchat (maybe run it in Anbox?), Line and Email (gmail specifically) bridges.

  • We are also looking for contract iOS and Android developers familiar with the Element codebase to reskin the app with our new UI. Part-time roles with potential for full time.

  • If you're interested, please send me a DM @eric:beeperhq.com

2021-01-22-KJ5nT-room.png

πŸ”—GSOC 2021

Google Summer of Code has come around again! Last year was really successful for Matrix: six projects, with members of the community coming forward to mentor students for their project. This year there is a slight tweak to the formula: the projects will now be 175 hours, rather than the traditional 350, over the summer.

Since we need to submit an application to Google within the next few weeks, I have a request: if you admin a Matrix-related Open Source project and would like to have a student work with you over the summer, get involved!

How to do this:

  • Read Google's own documentation on the setup. This is fairly thorough, and should get you most of the way there.

  • Think about a task, that you consider a student should be able to contribute to your project over a 10-week/175-hour period. Try to come up with 2-3 of these.

    • It should be a well-defined feature that genuinely contributes to the progress of your project, but maybe doesn't block other work on the critical path.
    • This is a very important step, and one that may need some time and discussion.
  • DM me (@benpa:bpulse.org) and we'll talk about next steps.

πŸ”—Dept of Spec πŸ“œ

kitsune (aka "fox-avatar guy") reported:

Matrix URI scheme proposal has FCP proposed now - if any of you, the readers of this, have anything to say about it that wasn't said in the past 2 years, speak soon or forever hold your peace. (Ok, you're allowed to write a separate MSC if you come late with revelations.)

This has been an labour of love for kitsune, kudos on his perseverance!

πŸ”—Spec

anoa said:

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

πŸ”—MSC Status

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

πŸ”—Spec Core Team

We've decided to ditch the focus as it was clear that it wasn't a great indicator of progress. Once one team member has reviewed all of the focus items, they will move on to other MSCs. None of that work is reflected in the focus, and items in there often stick around while waiting on a small number of people to complete work on.

As such, we'd instead like to direct people to the Spec Core Team Backlog board, which is a better representation of the current state of things. And of course the weekly list of MSCs state changes above.

2021-01-22-VYFRA-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander told us:

At the beginning of this week we released Dendrite 0.3.6, which included a number of refactors in the sync API and a selection of fixes. It is also the first version to be released with multi-arch Docker images with ARMv7/ARM64 targets.

Since then, the following changes have been merged:

  • Sync filtering support for event types, senders as well as better-supported limits

  • Federation support for MSC2946 (Spaces Summary)

  • Fixed a bug where large well-known files could consume a lot of memory

  • Support for in-process DNS caching for federation traffic (although it is disabled by default)

  • Some preparatory work for tracking the most recent membership states in the sync API for future history visibility work

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is at:

  • Client-server APIs: 60%, up from 58% last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

twim:

πŸ”—Synapse

πŸŽ‰ Synapse 1.26.0rc1 is here!

☠️ But don't install it yet; wait for rc2.

A few issues were reported with rc1 (#9187, #9193, #9208), and we'll issue an rc2 early next week once we're confident they've been resolved.

Otherwise, once 1.26.0 is released you can look forward to a new algorithm for calculating auth chain difference in v2 State Resolution which should significantly speed up some of the most expensive state resolution calculations (#8622).

We've also dramatically improved the performance of redactions in large rooms, helping Synapse's moderation tools scale to communities of any size (#9022). And speaking of scaling, Synapse 1.26 makes it possible to offload many different APIs to worker processes, including read receipts and account data persistence.

Lastly, Synapse 1.26 will include support for multiple Single Sign-On Identity providers, though we expect further fit-and-finish for that feature to land in 1.27.

You can preview the changelog and upgrade notes now, but remember: wait for rc2! πŸ˜‰

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mautrix-facebook

Tulir said:

The switch to acting as a mobile app I mentioned last week has been merged and it's starting to be clear that it works better. So far logging in has worked fine for everyone at least after enabling 2FA.

Changes this week mostly included tons of bugfixes (thanks to everyone who already updated and found the bugs) and re-adding some old features like read receipt bridging. The SQLite migration script now exists too. Upgrade instructions can be found at https://github.com/tulir/mautrix-facebook/wiki/Upgrading-to-v0.2.0

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

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

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

Cheers everyone! On Wednesday we released version 0.8.0 of Nheko! The changelog is far too long, because so many people contributed (and it has been a while since the last release), so I'll just put some highlights here!

πŸ”—Highlights

  • Voice and Video Calls (contributed by trilene)

    • Call your friends right from within Nheko.

    • Use your camera if you want them to see your face!

    • This requires a somewhat new gstreamer, so our builds don't support it on all platforms yet.

  • Cross-Signing and Device/User Verification (contributed by Chethan)

    • Verify who you are talking to!

    • Ensure no malicious people eavesdrop on you!

    • Enable your connected devices to access key backup and your friends to see, which of your devices you trust!

    • Show devices in a users profile.

  • Separate profiles (contributed by lorendb)

    • Run multiple Nheko instances with separate profiles side by side.
    • Use multiple accounts at the same time in separate windows.

πŸ”—Features

  • Before a call select which audio device to use. (contributed by trilene)

  • Auto request unknown keys from your own devices.

  • Add a command to clear the timeline and reload it. (/clear-timeline).

  • Add a command to rotate the outbound megolm session. (/rotate-megolm-session).

  • React to messages instead of replying with arbitrary strings using /react.

  • Inline emoji and user completers. (contributed by Lurkki)

  • Show filename on hover over an image. (contributed by kamathmanu)

  • Mobile mode, that disables text selection and changes some dialogs.

  • Allow sending text after a /shrug command. (contributed by MayeulC)

  • Allow selecting a ringtone. (contributed by trilene)

  • View avatars fullscreen. (contributed by kamathmanu)

  • Request or download cross signing secrets in the settings.

  • Support 'matrix:' URIs. This works in app on all platforms and on Linux Nheko may be opened by clicking a 'matrix:' link.

  • Support inline replies on notifications on Linux.

Packaging is currently in progress, but it will probably take a bit. In the mean time you can download the release from here: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.8.0

Please tell us, what you think and report bugs as you find them! And thanks again to all the contributors! It was a great pleasure to work with you and you really made an impact!

Over and out, the Nheko team!

Adrien added:

https://tracker.debian.org/news/1222370/accepted-nheko-080-1-source-into-unstable/
Nheko 0.8.0 was in Debian before TWIM.

❀️ for the packagers!

πŸ”—fluffychat 0.25.0

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

krille said:

fluffychat 0.25.0 is out with a lot of bug fixes, improvements, minor design tweaks and a new 3 column layout. iOS will skip this release until we can bring it to the AppStore next week or so

2021-01-22-Ctpne-bildschirmfotovon2021-01-1620-52-22.png

πŸ”—Element for Nextcloud

Gary Kim said:

Element for Nextcloud v0.6.19 has now been released. The new update contains fixes for Single sign-on users, the ability for admins to easily show or hide the labs settings, and an update to Element Web v1.7.17.

P.S. This will be the last version to support Nextcloud 17 and 18 if you're still on those versions.

πŸ”—Element Web instance on IPFS

TR_SLimey announced:

I've set up an Element Web instance on IPFS, which means that now, not even Matrix client downloads can be blocked - censorship resistance at its finest :P

It can be found at:

or

πŸ”—Element Clients

Updates supplied by the Teams

πŸ”—Web

  • Various widget related improvements
  • Changed guest access to uniformly only allow read access for now
  • Improved CI runtime when testing PRs

πŸ”—iOS

The release we built last week has been blocked due to push notifications issues. We are still on the case On the e2ee side, we have been working on an optimisation for the key re-share mechanism

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—caridina, Crystal library

erdnaxeli reported:

Today a present you a Matrix client library I've been working for the last few months: caridina.

It is a Crystal library. Currently for reading it implements the sync API and supports the events to do text messaging (all state events + m.room.message). For writing it provides methods to send messages, edit them, and send receipts and typing notifications.

While I would not recommend this library to write a full featured client, it is enough to write a simple text bot. I currently use it for some of my own projects. The README provides some examples of how to use the library.

Feel free to try it, report bugs, ask for missing features if you need them or even contribute!

πŸ”—libkazv (and the Kazv Project)

tusooa reported:

libkazv is a sans-io C++ (gnu++17) client library

built upon lager. Along with it there is kazv, a kirigami/qml client, and a

forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz.

πŸ”—Features

(Copying from readme:)

  • Logging in

  • Receiving room states

  • Receiving room messages

  • Receiving account data

  • Receiving presence

  • Sending messages

  • Send room state events

  • Create rooms

  • Room invites

  • Join rooms

  • Typing notifications

  • Receipts and fully-read markers

  • Leaving and forgetting rooms

  • Content repository

  • Send-to-device messages

  • E2EE (send and receive events only)

πŸ”—What goes here?

This week we ("tusooa and her longcat," we hope someday we can remove this annotation :P)

implemented sending and receiving encrypted events in rooms. Check a demo video below:

πŸ”—Opsdroid

Cadair said:

TWIM:

πŸ”—opsdroid

opsdroid is an easy to use chat-ops framework with excellent Matrix support.

πŸ”—0.20 Release

This week opsdroid released version 0.20. This is a massive release that's been a long time coming because of a complete rewrite of the internals of the matrix connector to use matrix-nio---thanks to @awesome-michael for the initial work on this.

Having ported the connector to nio, our GSOC student @Tyagdit got to work polishing the nio port and reimplementing the matrix database module in the core opsdroid library. Opsdroid has a concept of memory which is a key-value store which can be backed my many different kinds of databases. The matrix database stores the opsdroid memory in room state, meaning your bot's database and messages are all stored in the same place.

Finally, the other big feature added to the matrix support in this release is End to End Encryption support. Thanks to using matrix-nio as our matrix library it was possible to implement support for encrypted matrix rooms. This also includes support in the matrix database for encrypted memory which works by referencing event ids in room state (see here for more info). As this is the first release to support E2EE I would still consider it "beta"; please open issues if you have any trouble using it.

πŸ”—Highlights

  • End to End Encryption support in the Matrix connector.

  • Matrix database now included in core, with e2ee support.

  • Use of Python's install "extras" to allow for installations with fewer packages.

  • Improved documentation of the matrix connector and database (at least a little).

  • Support for Python 3.9 (and dropped support for 3.6).

Checkout the full release notes for all the gory details.

If you have any questions or want to get involved come say hi in #opsdroid:matrix.org, raise an issue on GitHub and checkout the docs.

πŸ”—trixnity (kotlin) progress

Benedict said:

A little sneak peek from trixnity, a crossplatform Matrix SDK. Currently I have some issues with ktor, which breaks my serialization.

trixnity

πŸ”—quotient

kitsune reported:

libQuotient has initiated transition from LGPL 2.1 to LGPL 3 as its distribution license. This is partially driven by the fact that newer Qt is (mostly) distributed under LGPL 3 so the "combined work" (legalese for libQuotient including and linked with specific Qt pieces) would be covered by LGPL 3 anyway. Boring, right?

kitsune added:

Those looking at my contributions to Quotient might have noticed the change of the primary committer's name. Don't fret, this is still me, I just shed the pseudonym (and those who've seen the interview knew my real name already).

Watch "the interview" here, where we discuss (then) progress on MSC2312 (mentioned earlier), and plenty more.

πŸ”—Dept of Ops πŸ› 

πŸ”—Matrix Corporal

matrix-corporal manages your Matrix server according to a configuration policy

Slavi reported:

Version 2.0 of matrix-corporal has been released.

It's a huge release bringing many improvements (read all of it in the release notes).

Here's a short summary:

  • an Event Hooks system has been introduced, so matrix-corporal can now also act like a "generic firewall" (similar to what mxgwd was doing)

  • device-free login is now used when impersonating users (thanks to a new API introduced by Synapse v1.24.0) - this is both faster and more resilient.

  • support for Interactive Authentication (and thus, End-to-End-Encryption) has been added. Users can now set up E2EE keys, manage devices, etc. (actions that require Interactive Authentication and were previously broken). Requires cooperation between matrix-corporal and the REST auth password provider module.

  • End-to-End-Encryption control. matrix-corporal can enforce whether rooms that users create are encrypted or unencrypted. You can force-disable or force-enable encryption for locally-created rooms.

  • fixes user-creation regression that happened with Synapse v1.24.0. matrix-corporal v1.12.0 is also out, with a backport of this fix (for users who don't want to jump to 2.0 yet).

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

πŸ”—Matrix Notepad

KB1RD reported:

  • It's not dead! yet

  • There's been some code refactoring on the algorithm. Mainly, the search tree used has been split into a different package

  • I'm working on porting the Notepad to the new widget API. Ongoing work is on the nextgen branch and is tracked by this project. The widget is currently blocked on some stuff in the widget API, so I probably won't be releasing soon. The code in there needs a ton refactoring, too.

  • This means that the old notepad client will disappear on the next release and you'll need to add a widget for the Notepad for any documents that you want to edit. Currently, this means you would have to use Element, but I heard Ditto just might be doing some widget work

  • The widget API is planned to do everything and more that my "mxapps" project was supposed to do, so that project will be deprecated in favor of using the widget API

  • There's also a little demo/teaser video showing the old notepad talking to the new one. You can see the rate limiting issues that the Notepad hits there, which is on my todo list.

πŸ”—Dept of Guides 🧭

πŸ”—Superb documentation from TU Dresden, as they roll out their deployment

Marvin Dropp said:

πŸ”—doc.matrix.tu-dresden.de

We set up a bilingual (de, en) documentation for all of our university members, to help them get in touch with our matrix instance easily. This documentation is rich on screenshots, simple explanations and will be improved continuously.

Also we mirroring the documentation to GitHub to provide access of our sources to everyone.

(https://github.com/matrix-tu-dresden-de/Dokumentation)

We would appreciate to add further institutions of higher education with own matrix instances to our list.

Viva la federation!

Christian Bruchatz shared some additional context about their deployment growth:

2021-01-22-wC6rz-image.png

Watch Matrix Live (at the top) this week for a chat with Marvin and Christian.

πŸ”—Deploying a Matrix server on Fedora CoreOS, from fedoramagazine.org

Andy announced:

I couldn't find if someone else shared this, but Fedora just published an article about deploying a Matrix server on Fedora CoreOS.

https://fedoramagazine.org/deploy-your-own-matrix-server-on-fedora-coreos/

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

πŸ”—EMS-Slack Bridge coverage

kim ([email protected]) told us:

EMS-Slack Bridge (matrix-appservice-slack) in German IT news

https://www.heise.de/news/Dezentraler-Firmenchat-mit-Slack-und-Matrix-5030856.html

The launch was also mentioned in The Register, in the UK. I used to read the Register every day...

πŸ”—Beeper news coverage

Beeper has had substantial coverage on their launch, much of it focused especially on the iMessage bridging feature. Some articles are linked below:

  • https://www.golem.de/news/beeper-universelle-chat-app-startet-betaversion-2101-153605.html
  • https://www.heise.de/news/Beeper-Chat-App-will-15-Messenger-in-einem-Interface-vereinen-5032049.html
  • https://hothardware.com/news/beeper-app-imessage-android-routing-trickery
  • https://www.macrumors.com/2021/01/21/beeper-brings-imessage-to-android-and-windows/
  • https://9to5google.com/2021/01/21/beeper-app-pebble-founder-imessage-android/
  • https://www.theverge.com/2021/1/21/22242143/beeper-universal-chat-app-imessage-whatsapp-signal-telegram-pebble-founder
  • https://www.protocol.com/beeper-messaging-app

Lots of people helped collect these links in #TWIM:matrix.org, thanks all!

πŸ”—Final Thoughts πŸ’­

sorunome offered:

today is the four year m.anniversary of the @sorunome:sorunome.de account! πŸŽ‰

Some interesting reads of the last few days:

Cos announced:

btw i forgot to TWIM that there was once again long Matrix article in Finnish computer culture paper magazine Skrolli. December issue.

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net429.5
2maescool.be433
3midov.pl473
4juniorjpdj.pl545.5
5kawaiilo.li650.5
6fab.network768
7matrix.thedisco.zone810
8matrix.sp-codes.de843
9dendrite.neilalexander.dev976.5
10aria-net.org1111

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

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Neil Alexander announced:

Earlier this week we released Dendrite 0.3.5, our first release of 2021, which includes a fairly significant refactor of parts of the sync API, along with other fixes. More work has since been merged into master too.

Changes in the last two weeks include:

  • Sync streams are now logically separate, with a lot of behaviour fixed

  • Forward extremities are now deep-checked properly, which should significantly reduce the peaks of CPU and RAM when handling the current room state

  • Pagination tokens in /messages have been fixed, which should improve the reliability of scrolling back in the timeline

  • A number of fixes have been made to the /sync response, largely avoiding nulls, which should make some clients happier

  • Send-to-device messaging has been refactored, which should improve E2EE stability

  • Well-known/DNS records for federated servers are now cached rather than performing lots of lookups, speeding up outbound federation

  • Device list requests to remote servers now time out quicker, so as to not block /send transactions

  • Experimental support for MSC2946 has been merged (gated behind the mscs configuration)

  • Request context is no longer reused for /send, which should help in cases where the remote sending server gives up waiting or the connection breaks

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is at:

  • Client-server APIs: 58%

  • Server-server APIs: 83%

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

I asked:

Can you explain something: Dendrite federation is basically working fine, AIUI, what does it mean that Server-server APIs is <100%?

Neil helpfully replied:

There are still some edge-case tests that we haven't got passing yet, but I think that's only ~20 tests or so.
There are also a few tests which are quite sensitive to exactly what Synapse does/returns, even though Dendrite is probably doing the right thing but maybe taking a different amount of time to do it or returning something slightly different, so there'll be some tests we need to fix too

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Happy Friday!

  • πŸŽ‰ Synapse 1.25.0 is out! It includes a pretty significant speedup for state resolution in bridged IRC rooms, as well as the usual assortment of bug fixes and improvements.

  • πŸ•΅οΈ For a limited time, and thanks to funding from the European Commission, paid bug bounties are now available for Synapse and other Matrix.org projects via the Intigriti bug bounty platform.

  • πŸ‘‹ If you're wondering about the face behind these updates, scroll up and check out Matrix Live!

We're on track for 1.26.0rc1 next week, which includes a massive speedup for message redaction in large rooms, as well as finally landing fundamental algorithmic improvements to state resolution.

Otherwise, we remain hard at work preparing for FOSDEM-on-Matrix, with special emphasis on improving our stability and moderation capabilities at scale. See y'all next week!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

Just pushed version 1.25.0 of Synapse for my Kubernetes image and chart. Haven't quite had the time to finish up the redo of the scripts, but expect that 1.25.0 will be the last version with a specific image, I'm hoping to have generalized the chart enough that it should work with any reasonable image at that point.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Gitter

Eric Eastwood offered:

A few improvements to the Gitter bridge this week so that when a room updates and the avatar or topic changes, it now propagates across to Matrix automatically. We also handle updating the name whenever we have to rename a room or a group.

We're also thinking about how best to tackle self-service plumbing so you can pipe a Gitter room into your existing Matrix room. And the bigger idea of connecting various bridged portal rooms together. So you can connect your community on Gitter <-> Matrix <-> IRC seamlessly for example. The current thinking is introducing this as a native Matrix concept so you can easily connect any Matrix room to another Matrix room. We'd love to hear your thoughts in MSC2923.

πŸ”—mx-puppet-groupme

Robin said:

Version 2 of mx-puppet-groupme is here! This week I did some reverse engineering of the GroupMe Android app with mitmproxy so that I could work out the remaining undocumented features of GroupMe's API. As a result, typing notifications, read receipts, and videos are now working! Though note that due to limitations of the platform, read receipts are a DMs-only feature.

We also now have a Dockerfile (thanks, Trey B.!), double puppeting support was added, the code was ported to Typescript, and it should now work with older versions of Node. So at this point the bridge is basically feature-complete! As usual, send any questions, bugs, or feature requests to GitLab or Matrix. πŸ’œ

πŸ”—mautrix-facebook

Tulir told us:

I've been working on moving mautrix-facebook to act as a Messenger mobile app instead of the web app in order to hopefully make it more reliable. The initial version is starting to work now.

It's currently in the mobile branch. I'm not actually sure if it helps with facebook forcing password resets (for some reason they've never done that to my account), but if it does, I'll merge it into master in the near future.

The new version only supports Postgres like my newer bridges, but I'll invent a SQLite migration tool before merging to master.

πŸ”—Dept of Clients πŸ“±

πŸ”—NeoChat 1.0.1 released

Carl Schwan told us:

NeoChat 1.0.1 was released with a few important bugfixes. https://carlschwan.eu/2021/01/13/neochat-1.0.1-first-bugfix-release/. On the unstable branch, we continued to improve the integration with Plasma. We now display the unread count in the taskbar and we are getting inline replies too thanks to the work of Kai Uwe Broulik in Knotifications. Another important change is that rooms can now be opened in a new separate window.

2021-01-15-1m-hE-image.png

2021-01-15-N_xQv-image.png

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) offered:

Bugfixing for the next release is in progress, fixing various issues and instabilities introduced with the new features, but some smaller features also still made it in:

  • There is now a call invite screen more fitting for mobile devices, when you enable the "Touchscreen mode" in the settings.

  • Various clickable elements now have a ripple effect again to give feedback, when a click was registered.

  • Nheko now handles the Matrix URI scheme. This means opening a link starting with matrix: should open Nheko (at least on Linux) and redirect to the appropriate room and matrix URIs inside of Nheko are also handled. This currently does not support navigating to a specific event, but opening user profiles, starting chats with specific users and opening or joining rooms should work. Nheko also does not automatically linkify links starting with matrix:, so you need to do that manually.

  • Verification dialogs were cleaned up a bit and hopefully are easier to understand now.

  • The flatpak nightlies now support VOIP calls, but as a result are now a few MB more to download.

Since we are nearing the next release, it would be appreciated, if you could check the translations for your platform are up to date and try the current nightlies and check them for bugs your experience and want to have fixed before release. If you find anything, please report it on GitHub or discuss it in #nheko:ocean.joedonofry.com. Thank you!

πŸ”—Quaternion

kitsune told us:

I'd like to have announced the next beta release for Quaternion 0.0.9.5 - unfortunately, migrating from Travis CI took more than I wanted; but adventurous souls are welcome to test the master branch that's basically ready for beta 3.

Meanwhile, it surfaced that Quaternion 0.0.9.4e Windows binaries have been expecting (very old and no more supported) OpenSSL 1.0. This is now fixed in Quaternion 0.0.9.4f (hopefully this will be the last 0.0.9.4 rebuild and I won't chase the above-mentioned OpenSSL project in trying to expire Latin letters).

πŸ”—Element Clients

Various updates from the teams:

πŸ”—Spaces

On Web, we’re progressing on Spaces on our big checklist of doom, most recently on implementing invites to Spaces. On Android, we’re also progressing, iterating on the UX. Meanwhile, we’re also experimenting with different ways to explore, manage and navigate nested spaces.

πŸ”—Social Login

We’ve now merged support for multiple identity providers on Synapse, and are getting dangerously close to finishing the rest of the implementation. Watch this space for more news soon!

πŸ”—Web

Element Web 1.7.17-rc.1 is now available at https://staging.element.io, including:

  • Fixed avatar upload prompt layering issues
  • Added VoIP call transfer

πŸ”—iOS

Element iOS 1.1.4 has been submitted to the AppStore. A TestFlight build will be available during the week-end. Main things the release offers are:

  • Social login
  • New SSO login management
  • Several bug fixes

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—libQuotient

kitsune announced:

Version 0.6.4 is out, with a few fixes around homeserver resolution (particularly when a .well-known record is not there). These has been made in tight collaboration with the folks behind Neochat - thanks a lot! 0.6.4 is also the best version to build the just-released Neochat 1.0.1 with.

Meanwhile, work on the next version (0.7) is proceeding in the unstable branch (not in the least pushed by Neochat activity) - expect more news in the next weeks.

πŸ”—Ruma

Ruma is a set of Rust library crates around Matrix

jplatte announced:

Since our last update on 2020-11-20,

πŸ”—Dept of Ops πŸ› 

πŸ”—PingPong: End-to-end latency monitoring for Matrix

p-e-w announced:

PingPong measures transport latencies on Matrix networks. It connects to two Matrix accounts simultaneously, and bounces messages back and forth between them. It aggregates all information in an intuitive terminal user interface, and automatically computes statistics. Source code and more information are available at https://github.com/p-e-w/pingpong.

I have been working on this for a while now and I believe it is ready for others to use at this point. No binary releases yet, the program must be built from source. I only have a Linux development system currently, so feedback on whether it works on macOS and especially Windows is very welcome.

2021-01-15-mZQHt-screenshot.png

Very interesting new project! I'm thinking of setting this up as I'd planned to write something similar to track perf on bpulse.org.

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

πŸ”—Keymaker Serverlist Project

MTRNord said:

A small update on what is happening after a long time of nothing:

  • Bot has first part of the registration process (essentially the required automated tests) implemented. Next is the manual verification half.

  • Domains are bought and the web page is deployed (No servers listed yet)

  • Code of Conduct writing will start soonish.

As you will see there are only empty categories. This is due to the registration bot still being in work as well as missing documentation for it.

For the progress you can also take a look at https://github.com/keymaker-mx/keymaker/projects/1

Check the current page out at: https://homeservers.mx https://joinmatrix.rocks/

Join development and discussions at #serverlist:nordgedanken.dev Check out the Code at: https://github.com/keymaker-mx

2021-01-15-HNiKj-Screenshot_20210113_225623.png

This is really awesome progress! Not quite there but we'll keep a close watch. πŸ‘€

πŸ”—Dept of Guides 🧭

πŸ”—e2ee implementation guide

sorunome told us:

Soru worked on updating her e2ee implementation guide, so far it contains a new section on bootstrapping and hopefully soon on online key backup! You can find the WIP MR here.

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maclemon.at318
2nicoll.xyz366
3imninja.net457
4aragon.sh637
5kif.rocks665
6matrix.sp-codes.de727.5
7matrix.vgorcum.com766
8envs.net775
9fairydust.space820
10mtx.liftm.de833

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

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—FOSDEM 2021

Matthew reported:

FOSDEM 2021 is going to happen via Matrix: https://matrix.org/blog/2021/01/04/taking-fosdem-online-via-matrix

πŸ”—Dept of Spec πŸ“œ

πŸ”—New spec platform

wbamberg announced:

The spec core team has continued trying out the new spec (preview at: https://adoring-einstein-5ea514.netlify.app/). We've also finished applying design updates and implemented a fancy scrolling table of contents.

We have an outline for how to switch over to the new platform: https://github.com/matrix-org/matrix-doc/issues/2906 and have started work on that this week.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad said:

Welcome back, TWiM readers! It's a new year, and the Synapse team is excited to get back to our regularly scheduled releases! Three main things this week:

  1. We published 1.25.0rc1! We'll have full release notes next week, but highlights include:
  • Deprecated Python 3.5 and Postgres 9.5 per #8782; more details to come with the formal release announcement.

  • People can pick their own username when using Single Sign-On, right from within Synapse itself.

  • Spam-checker modules can now use async Python methods.

  • New ways to restrict allowed IP address ranges for outgoing requests from Synapse.

  1. Matrix is hosting FOSDEM! Which means that most of the Synapse team is going to be focused on security, stability, and performance until February to ensure that our virtual UniversitΓ© Libre de Bruxelles is as reliable and welcoming the real thing.

  2. Speaking of security, we have some big (but good!) news to announce next week. Watch this space... πŸ•΅οΈπŸ‡ͺπŸ‡ΊπŸ’Ά

Lastly, one of our goals for this year is to maintain a biweekly cadence of release candidates, so we should have a more consistent pace. At the same time, we realize that keeping up with biweekly releases of server-side software can be a bit of a chore, so we're also discussing ways that we could provide longer support for some of our releases. That's a project for much later this year, but consider it a preview of things to come.

If you have any feedback, please feel free to join us in #synapse:matrix.org!

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mx-puppet-steam

Icewind told us:

mx-puppet-steam has been receiving a bit of love over the past few weeks, including:

  • improved reliability of image uploads

  • syncing of read and typing status from matrix to steam

  • bridging of emotes and stickers from steam to matrix

πŸ”—Dept of Clients πŸ“±

πŸ”—New NeoChat features

Carl Schwan announced:

NeoChat gained a few new features this week. The timeline displays stickers now, and edited messages don't get duplicated anymore. NeoChat also now lets you edit your messages. Additionally, Noah improved the support for attachments in the UI, more image formats are detected (and can then be edited in the built-in image editor), and mime type icons get added to non-image attachments. Tobias continues to work on the registration flow and SSO support.

You can meet Carl and Tobias from the NeoChat project by watching Matrix Live. \o/

2021-01-08-mp8Ia-image.png

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at.

Nico (@deepbluev7:neko.dev) reported:

  • d42 fixed SSO login with some more exotic SSO configurations.

  • Reenable showing a users status_msg, which got lost in a refactoring.

  • trilene cleaned up the design of our call dialogs and Nheko now picks up changes in your devices without a restart.

  • Typing notifications should now not flicker anymore.

  • The build is now more explicit, if call support is enabled.

  • You can now reply directly inline to a notification on Linux, if your notification manager supports it.

2021-01-08-0x46S-Screenshot_20210107_183454.png

This reply-in-notification feature is really cool!

πŸ”—SchildiChat for Android

SpiritCroc offered:

SchildiChat is a fork of Element, which 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.

During the last couple of weeks, SchildiChat-Android development focused mainly on staying up-to-date with the upstream Element codebase (URL previews took some time to make them fit nicely into the bubble layouts), and doing some smaller design improvements (like wider message bubbles for some scenarios, and an intelligent message timestamp placement at the bottom of the bubble, depending on the available space).

Furthermore, we now also have experimental support for MSC2867, which allows you to mark rooms as unread. Note that for now, this feature needs to be enabled in the labs settings, since the MSC is still unstable and not supported by many clients, which means other clients might ignore whether the user has manually marked a chat as unread and thus display it as read anyway.

Code on GitHub: https://github.com/SchildiChat/SchildiChat-android

Matrix room: #schildichat-android:matrix.org

πŸ”—Element Clients

Some updates below from the team. Not all teams are back from their Christmas breaks yet, and those who are may be a little busy with FOSDEM-specific projects, but we have some updates:

πŸ”—Spaces

We’re making more progress on the client implementations for Spaces on the web on Android. On Web, recent progress includes implementing notification badges, and on Android we’re progressing from SDK work to initial UI implementations.

πŸ”—Social Login

Support for Social Login on iOS is in review after resolving some issues around VoiceOver, which is the last Element client to implement support ahead of Synapse landing support for social login in the near future.

πŸ”—VoIP

Lots of things merged to web: dial pad, call forward, dtmf pad, although most won’t show up in normal use (yet). Other progress on web on hold for fosdem work. Dial pad & phone number lookup support incoming on iOS, and phone number lookup on its way on Android.

πŸ”—iOS

We progressed on several things this week. They are not yet merged but almost. They will be part of the next release we will ship next week: social login, app deadlock fix, encrypted message sending speed improvement, xcodegen usage, sending bug reports in background.

πŸ”—Dept of SDKs and Frameworks 🧰

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

MTRNord reported:

https://github.com/MTRNord/mrsbfh

I took the time and started a small (command)bot framework/utility crate which operates on top of the matrix rust sdk.

It currently is just some of the command logic and utilities extracted from the famedly timetrackingbot and offers a basic bot template.

πŸ”—Features

  • Proc macro based command definition

  • Auto generating of helptext

  • Full compatibility with the regular matrix rust sdk

  • Modularity

  • Helpers for session recovery and Configs

  • Helpers to minify boilerplate of the EventEmitter

πŸ”—Planned features

  • More utilities for bots that are not in scope of the main sdk.

πŸ”—Non-Goals

  • State management

  • Hiding the sdk behind another API (No automatic hooks into the event emitter)

  • usage as AS framework. (This however is possible as you can use the hook where ever needed.)

πŸ”—Possible goals

  • Early adoption of MSCs that are meant for bots (for example MSC2929)

Note this is very young and many is possible to change.

That is quite a project name!

πŸ”—mtxclient - the Matrix library Nheko uses

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at.

Nico (@deepbluev7:neko.dev) announced:

I found some time to actually host the docs our library currently has. It is still severely lacking, but it may be interesting to some people like people contributing to Nheko. I'm going to write some higher level docs over the next few weeks, so that people can actually see how to use the library and have some inline examples and more extensive explanations. But for now you can find the barebones descriptions we always had in the source code here: http://nheko-reborn.pages.nheko.im/mtxclient/index.html

Providing docs always gets a big thumbs-up from me!

πŸ”—matrix-bot-sdk

TravisR said:

[email protected] has been released! This version contains early support for Identity Servers and Spaces (MSC1772), as well as easier functions for sending HTML messages and a bunch of other quality of life improvements. Feedback and bugs in #matrix-bot-sdk:t2bot.io.

πŸ”—Trixnity, Kotlin SDK announced

Benedict reported:

I'm currently working on a Kotlin cross-platform (JVM, JS, Native) Matrix SDK named trixnity

It's a very early version, but I can migrate many code and tests from matrix-spring-boot-sdk so that it's growing fast (for a one man project πŸ˜€).

Benedict explained:

matrix-spring-boot-sdk is my first attempt to write bots and appservices really fast, then matrix-sms-bridge using this sdk and now migrating the low-level stuff from matrix-spring-boot-sdk to trixnity, so it can be used independently from spring boot πŸ™‚ My plan is to use trixnity for a an open source web client, that can do "Videosprechstunde" in Germany (I don't know the english word for it, maybe video doctor's consultation?).

More about Videosprechstunde later...

πŸ”—Dept of Ops πŸ› 

πŸ”—GitHub action for Matrix!

select said:

I recently started a new freelance project and got them to use Matrix as our main communication channel. Since they chose GitHub as our source code platform I got into writing continuous integrations and delivery scripts. But one thing was missing: notifications in our Matrix room. I looked into the GitHub Action Marketplace and found 2 actions that could do that, so that was nice ... but they could not send e2e encrypted messages. Therefore I took up my old issue on how to make e2e encryption work with the js-sdk (https://github.com/matrix-org/matrix-js-sdk/issues/731) with some new found energy and finally solved it. The result is this GitHub action:

https://github.com/select/matrix-message-e2e

While it's almost a full success story there is still one issue to solve: While the action successfully sends e2e encrypted messages the job is marked as failed. My guess it that while sending the messages the matrix client outputs on stderr due to some encryption errors (unknown device keys, ...)

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

πŸ”—Battleship via Matrix

Christian announced:

Want to play the guessing game Battleship via Matrix? I'm building one to be ready for FOSDEM. Follow my progress, bring in ideas and play development versions:

https://matrix.to/#/#battleship:vector.modular.im?via=vector.modular.im&via=t2l.io&via=federator.dev

πŸ”—matrix-archive

I asked: "what's the best tool for dumping history from rooms (including e2e rooms)?", and Florian shared this great tool I don't think I'd seen before:

matrix-archive is the best currently-maintained tool I know of

A really useful project that generates "a YAML log of all room messages, including media".

πŸ”—Dept of Guides 🧭

πŸ”—easy-to-share comparison chart

joepie91 said:

Based on the original chart by hrjet, here's an easy-to-share comparison chart in image form, that compares a number of alternatives (Element/Matrix, Signal, Telegram) for people looking for an alternative to WhatsApp

2021-01-08-ayRQd-whatsapp-alternatives.png

Should be very useful for incoming "What do I use instead of WhatsApp?"-type conversations!

(Also you could share this tweet for even more visibility!)

πŸ”—Final Thoughts πŸ’­

πŸ”—Videosprechstunde is quite hot right now

As promised, some more thoughts on the Videosprechstunde craze apparently sweeping Germany.

Niklas Zender announced:

Videosprechstunde is quite hot right now, and the technical requirements in terms of security are already handled with matrix.
It is regulated by the german government and is only working for centralised services right now. So there is no way to get it certified with matrix. It might be possible in future (fingers crossed) and then we (Famedly) are also ready to provide it :)
(Government is slightly wrong, it is more the KBV, but the Government also plans to regulate it starting in two years)

Videosprechstunde refers to having a video conference with your doctor, rather than going in-person.

πŸ”—Speed installations?

compu offered:

so one time I installed Matrix Synapse on a fresh debian install in 24 minutes do i get bragging rights?

If you have video of you installing Synapse or another matrix server at an alarming rate, we'll link to it from here!

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1matrix.org347
2the-apothecary.club351
3almum.de399
4envs.net485
5maescool.be634.5
6aria-net.org712
7casavant.org891
8mtx.liftm.de904
9cof100.dk1067
10tchncs.de1109

πŸ”—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 2020-12-30

30.12.2020 18:44 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—The Matrix Holiday Special 2020

If you didn't read it already, I encourage you to read Matthew's Matrix Holiday Special 2020 post. So much has happened this year!

Oleg responded:

Great summary! Very inspiring!

I have a feeling experiencing a revolution in how people perceive messaging. Now, public sector and multiple communities adopting Matrix, one cannot think of a world without Matrix any more.

Kudos to the Element team and to the wonderful Matrix community! β™₯️

I'm very excited for the FOSDEM on Matrix!

Andy added:

What a wonderful year has been for matrix, and it looks like next year will be equally as exciting. I'm HYPED.

Honestly, I'm hyped too. Simple statements like "loads of different universities have rolled out Matrix for collaboration" don't quite capture how much work is going on, and how much excitement there is to get the growth in the network we're soon to see.

πŸ”—Homeserver versions graphs

Chris offered:

For the first time (since recording the homeserver stats from Feb 2019) a non-synapse homeserver is now in the top 15 deployed homeserver versions: Welcome Dendrite 0.3.4: https://graph.settgast.org/d/z1nplqXik/matrix?orgId=1

How exciting is that! If you haven't already, do check out some of the history on these charts - big thanks to Chris for making this available.

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Ansible-Dendrite

jaywink announced:

Created a new Ansible role to easily install a Dendrite server. Currently only tested on Ubuntu 20.04 with Ansible 2.9. Uses Docker to maintain a monolithic Dendrite. Requires but does not include PostgreSQL. Designed to easily be used with Traefik as reverse proxy.

https://git.feneas.org/jaywink/ansible-dendrite

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mx-puppet-groupme

Robin told us:

Not to be confused with matrix-puppet-groupme, mx-puppet-groupme is a fancy new GroupMe bridge with support for as many features as the web client would let me get my hands on. Please try it out, and let me know on GitLab or Matrix if you have any issues or suggestions! πŸ’œ

Thanks for sharing Robin!

πŸ”—Dept of Clients πŸ“±

πŸ”—NeoChat 1.0

Tobias Fella said:

The KDE Community is excited to announce the first release of NeoChat, a Matrix Client based on Spectral and libQuotient. With the power of Qt and KDE Frameworks, NeoChat currently runs on mobile and desktop Linux devices, Android and Windows. You can read more about NeoChat and how to get it at https://carlschwan.eu/2020/12/23/announcing-neochat-1.0-the-kde-matrix-client/

Congrats on the 1.0! I think we'll hear much more from the team next year. πŸŽ‰

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

We finally fixed the Windows build, so there are nightlies on Windows again! Also lorendb finished his profile work, which means that if you were using custom profiles before on one of the nightlies, you may need to login again, but the whole code is a lot cleaner now.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—libQuotient

kitsune reported:

Version 0.6.3 is out, another bugfix release on the stable branch. Nothing too significant, but .well-known-unaware homeservers should be treated better, and Matrix identifiers with special characters (ahem, slashes) can now be turned to valid URIs (matrix.to or proper Matrix URIs). Also, room tags starting with a . are no more considered valid, you'll get u. prepended to them.

πŸ”—Dept of Ops πŸ› 

πŸ”—matrix-docker-ansible-deploy

This Ansible playbook is meant to easily let you run your own Matrix homeserver.

Slavi offered:

matrix-docker-ansible-deploy now defaults to using the Postgres database engine for all bridges, bots and related services (ma1sd, Dimension, etc).

Previously we were only using Postgres for Synapse and couldn't reuse the same database server for other services.

With this huge pull request, we've added Postgres support to 17 other services.

Thanks to Johanna Dorothea Reichmann for starting the work on it and for providing great input!

Existing installations will get automatically migrated from SQLite/nedb to Postgres the next time you run the playbook.

Not only does this bring better performance and compatibility, but also, being able to reuse the same Postgres database for services other than Synapse paves the way for us to introduce other Postgres-only services such as Dendrite, the mautrix-signal bridge (existing pull request), etc.

For more information, refer to our changelog entry.

πŸ”—Dept of Bots πŸ€–

πŸ”—Timetracking Bot

MTRNord said:

We released v0.3.0 πŸŽ‰ Feel free to follow development at #timetracking-bot:famedly.de or https://gitlab.com/famedly/bots/timetracking .

Also checkout the ansible role for the timetrackingbot: https://gitlab.com/famedly/ansible/collections/matrix/-/tree/main/roles/timetracking-bot

πŸ”—Changelog

πŸ”—Fixes

  • Print !in and !out responses in correct timezone

  • Make sure that we use the stores correctly

  • Make sure that "in" in the times table is not a primary key to allow multiple people at the same time to log in

  • Overall stability improvements

πŸ”—Features

  • Allow units in !record. For extended syntax see https://docs.rs/parse_duration/2.1.0/parse_duration/index.html

  • Better !stats command output (hours and minutes instead of pure minutes)

πŸ”—Chore

  • Dependency Updates

  • Add DB indices

πŸ”—Breaking changes

See https://gitlab.com/famedly/bots/timetracking/-/blob/v0.3.0/UPGRADING.md

πŸ”—Middleman

kapina-jaywink told us:

Common accounts for support are tricky to handle due to needing the people using those accounts to keep separate clients open to use the common account. For this at Elokapina we created Middleman, which acts as a proxy between an account and a room.

It's a bit basic but works pretty well for pure text messages. Any messages in rooms where the bot is are relayed to the management room and any replies to those messages (prefixed with !reply) in the management room are relayed back. Optionally senders can be anonymised to enable a feedback bot.

Coming up is more configuration on for example ignoring non-mentions in rooms with lots of members and hopefully support for images and reactions in the not too long future.

Find it here: https://github.com/elokapina/middleman (built with nio-template).

2020-12-30-MVAuG-demo.gif

πŸ”—GDQBot

daenney said:

With Awesome Games Done Quick 2021 Online starting on the 3rd of January the bot will now announce when an event is about to start in channels it's in.

If you don't want to run your own, you can invite @gdqbot:ecef.xyz or come hang out in #gdq:ecef.xyz.

Hopefully we'll also have donation tracking squared away before the start of the event.

πŸ”—Final Thoughts πŸ’­

Nico (@deepbluev7:neko.dev) reported something interesting:

Threema published the source code for their apps this week: https://threema.ch/en/open-source

While that is not strictly Matrix related, it is great to see other E2EE enabled chat systems publishing the source code for their clients. It's the only way to verify their encryption actually works and is secure.

This move was announced a while ago, but I think that it actually happened now deserves a small shoutout! πŸŽ‰

Quite right! Though Matthew, thought the news needed to be put into proper context:

it’s almost like they’re scrabbling to keep up with matrix ;)

:D

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1tchncs.de259
2envs.net432
3maescool.be501
4matrix.sp-codes.de832
5flobob.ovh833
6aria-net.org1130
7libre.bzh1159.5
8uraziel.de1706
9matrix.weebl.me1728
10mailstation.de2017

πŸ”—That's all I know 🏁

Good grief, what a year. Exciting but I'm not sure I can fit it all in my head!

See you next week (2021-01-08: Friday!), and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2020-12-18

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

πŸ”—Matrix Live πŸŽ™

This week we're all about video content! So you get Matrix Live AND Demos - you are so lucky! πŸ₯°

πŸ”—Demos

uhoreg added a late improvement to his MLS demo:

This is how my demo would have looked if I had managed to finish debugging in time.

2020-12-18-mls.png

So, now you need to watch the video to make sense of this image!

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Introducing Cerulean

Matthew reported:

Introducing Cerulean - highly experimental threaded microblogging for Matrix. Read all about it at https://matrix.org/blog/2020/12/18/introducing-cerulean

Cerulean is being discussed on the front page of Hacker News.

πŸ”—Community Demos

The last set of community demos were well received, so if you have an idea for a demo, get it ready for 2021-01-15, which will be the next demo session!

πŸ”—Dept of Spec πŸ“œ

πŸ”—New spec platform

wbamberg said:

The spec core team has been trying out the new spec this week to decide if it's ready to ship. And we've been applying Dean's design updates (currently in a separate branch at https://friendly-yonath-3de225.netlify.app/).

πŸ”—Spec

anoa told us:

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

πŸ”—MSC Status

Closed MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we made a healthy amount of progress on the MSCs in focus. A few members have also been iterating quite a bit on MSC1772 for Spaces. Look for these MSCs to start landing come the first few weeks of the New Year as implementation work starts to relax a bit. The focus for next week is... Christmas! πŸŽ„

But first week of January will be MSC2844, MSC2366 (ready and done in key verification) and MSC2790 (modal widgets).

2020-12-18-7E797-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

neilalexander announced:

If you haven't already seen it, we wrote a Dendrite 2020 Progress Update blog post detailing our year in Dendrite. It also includes an announcement for our new public dendrite.matrix.org homeserver, which is open for registration!

Today we released Dendrite 0.3.4, which is a performance and bug-fix release, including the following changes from the last two weeks:

  • The stream tokens for /sync have been refactored, giving PDUs, typing notifications, read receipts, invites and send-to-device messages their own respective stream positions, greatly improving the correctness of sync

  • A new roominfo cache has been added, which results in less database hits in the roomserver

  • Prometheus metrics have been added for sync requests, destination queues and client API event send perceived latency

  • Event IDs are no longer recalculated so often in /sync, which reduces CPU usage

  • Sync requests are now woken up correctly for our own device list updates

  • The device list stream position is no longer lost, so unnecessary device updates no longer appear in every other sync

  • A crash on concurrent map read/writes has been fixed in the stream token code

  • The roomserver input API no longer starts more worker goroutines than needed

  • The roomserver no longer uses the request context for queued tasks which could lead to send requests failing to be processed

  • A new index has been added to the sync API current state table, which improves lookup performance significantly

  • The client API /joined_rooms endpoint no longer incorrectly returns null if there are 0 rooms joined

  • The roomserver will now query appservices when looking up a local room alias that isn't known

  • The check on registration for appservice-exclusive namespaces has been fixed

If you are running a Dendrite server, it is highly recommended that you upgrade to the latest version!

Spec compliance is unchanged:

  • Client-server APIs: 58%, same as last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

Dendrite also powers Cerulean, mentioned above!

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Hello again from Synapse land! This is our last TWiM of 2020, but we're hard at work landing our last patches before going on holiday. Expect 1.25.0rc1 in early January with loads of fixes, performance improvements, and a few new features. In particular:

You can look forward to all of this and more next year, but until then, happy holidays from all of us over here at Element and in the broader Synapse community!

πŸ”—Conduit

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

timokoesters said:

Hey, I'm back! I was busy with University. I also forgot to TWIM this last week, so here you go:

  • Conduit is beginning to support appservices
  • Devin R and I are currently working on a better state store and improving federation

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—YunoHost

Pierre said:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.23.1

Element Web integration had been updated to 1.7.15

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—GitHub / Gitlab bridge

Half-Shot told us:

Hello everyone! It's been ages since I've talked about a personal project on here. I've been working on the matrix-github bridge, which is an all singing all dancing service to connect you to Github AND Gitlab. (Yes, it's now poorly named).

I've landed the initial bits to make GitLab work, so that you can join issues and MRs as rooms in the UI but there is more work to do to make that solid and more interactive. The thing I am most looking forward to is notifications for GitLab so I can get away from emails.

ALSO, off the back of TravisR's fantastic widget work, I've landed initial support for widgets in admin rooms and soon issue/PR rooms. The idea here being that widgets give you a nicer UI to control the bridge or render details like commits going past or diffs. All the groundwork for authenticating widgets against the bridge and rendering them is done, now it just needs features.

That's the highlights this week. I'm hoping to really tighten the documentation to get more people spun up on it as the notifications features have turned out to be a killer feature for me :)

2020-12-18-x7YaI-image.png

I've been using this (the bridge, rather than the upcoming widgets) for a couple of months now and find it really really powerful. I'm not in GitHub most of the day, so getting notifs piped direct into Matrix is great!

πŸ”—mautrix-instagram

Tulir said:

I added bridging of typing notifications and read receipts from Matrix to Instagram and fixed a bunch of bugs. Only thing that's still missing is presence and Matrix->Instagram non-image files.

This is now almost feature complete! Nice one Tulir.

πŸ”—Gitter

Eric Eastwood said:

A few updates to the Gitter bridge itself this week handling Matrix edits outside of the 5 minute edit window on Gitter and fixing up @mentions being mangled by : colons on the Gitter side when someone mentions you from Element. We also strip the redundant Matrix reply quote when it goes into a Gitter threaded conversation because it's already easily viewable in the thread.

We're also getting started on some of the Element feature parity with Gitter issues. First directly tackling backfilling existing message history.

Other teams are already underway working on Spaces, Social login for Github which will ship in the new year!

πŸ”—Dept of Clients πŸ“±

πŸ”—Element Clients

Compiled by the team.

  • Spaces
    • We’ve been progressing spaces on Web, focusing on managing spaces, members and rooms. Meanwhile, we’ve also been iterating on designs for all platforms.
  • Social login
    • Synapse support for picking a username should be landing in develop today focusing next on supporting multiple identity providers. On iOS, we’ve implemented SSO redirect authentication mechanisms which also should land soon.
  • VoIP
    • We’ve been making progress all round on all platforms, with the next web release including improvements to holding & resuming calls and multiple line support!

πŸ”—Web

  • 1.7.16-rc.1 available on staging
    • Added ability to put a VoIP call on hold and answer another
    • Added a special visual effect for confetti
    • Improved the login flow
  • Investigating changelog options in the background

πŸ”—Android

πŸ”—iOS

  • We’re prepping 1.1.3 after ironing out final kinks relating to the new background service, hoping to release before Christmas.

πŸ”—Nheko

Nico (@deepbluev7:neko.dev) offered:

In celebration of the cross-signing MSC being finally merged, Nheko master now supports cross signing other users and your own devices. πŸŽ‰ The UX is currently not final, you have to manually fetch the cross signing keys in the settings, if you don't have them after a verification. You are also not yet prompted to verify new logins and can't bootstrap cross-signing from Nheko, but the functional bits and bobs are there now. We are also still investigating, if prompting for your recovery key/passphrase is less confusing by using just one input field or if we should prompt for them separately. Currently Nheko just asks you to unlook and will accept whatever you input (if it can decrypt the secrets with it). FluffyChat does that and I think it is really nice!

There are also a few smaller features added recently:

  • Nheko now uses the icon from your theme on the login page

  • You can react instead of reply with a (very) short text using /react

  • A few improvements(?) regarding whitespace and code rendering.

πŸ”—SchildiChat Web/Desktop

qg reported:

Today, we can announce the web/desktop variant of SchildiChat is out of beta!

SchildiChat is a fork of Element, which 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.

Since the last announcement on TWIM, we have not only fixed most of the layout bugs caused by the message bubbles, but can also report the following:

  • Settings for layouts work, so you can also use SchildiChat if you only want the unified overview and no message bubbles

  • All information about desktop is now on our new website: https://schildi.chat/desktop

  • The hosted instance is now here: https://app.schildi.chat

  • For Linux, SchildiChat is now available from AUR, apt repo for debian, flathub and as AppImage

  • There's a portable Windows version now too

Code on GitHub: https://github.com/SchildiChat/schildichat-desktop

Matrix room: #schildichat-web:matrix.org

2020-12-18-bIasy-2.png

πŸ”—FluffyChat

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

krille reported:

FluffyChat 0.24.0 is released with new features and fixes.

What is new:

  • A new public room discovery page, where you can find and join public rooms

  • Experimental bootstrap support for cross-signing and keybackup and something really weird that is named SSSS

  • Enhanced power level managing for rooms

  • Minor design changes like a new icon set

Beside of that we have of course a lot of bug fixes and stability improvements. All languages should now also work on iOS.

Also we are looking forward to publish the app in the AppStore for iOS but we will do this under the hood of Famedly. Btw. FluffyChat will soon move to the Famedly GitLab project and we will move the app in the PlayStore to the Famedly account too. This doesn't mean that anything will change there. It is just that Famedly will now handle the legal stuff for us and may offer paid customer support for businesses, which have interest in FluffyChat. But the app will still be available under the same AGPL3 license. This will just make it easier for us to publish the app in the official stores as we don't need to pay so much for the developer accounts.

2020-12-18-JruOC-screenshot_20201218-144554.png

πŸ”—Dept of Bots πŸ€–

πŸ”—Timetracking Bot by famedly

MTRNord reported:

Find it at: https://gitlab.com/famedly/bots/timetracking or join us at #timetracking-bot:famedly.de

Numerous new features and fixes arrived this week. Getting closer to production readiness. Famedly also started daily internal testing for the bot to find more issues and fixing them.

πŸ”—v0.1.5

πŸ”—New Features

  • Implement !setTimezoneDefault

  • Add timezone conversion to !in and !out

  • Write admin status to table in Database

  • Add default_timezone field to Config which defines the bot wide default. If not set UTC is assumed.

  • Add !stats command

  • Use Unix timestamps in database (migrated automatically)

πŸ”—Fixes

  • Make sure Version sha actually gets generated in CI

  • Make tests work again in the CI

  • Fix that !help and !version work without the database in case of issues

πŸ”—!record command polish

  • Only accept positive durations greater than 1

  • Only accept durations less than 24h

  • Check if duration is numeric

πŸ”—Refactoring

  • Move message templates where needed to templates folder

  • Use color-eyre instead of anyhow

πŸ”—v0.2.0

πŸ”—Refactoring

  • All new command definition. Allowing for much easy adding of commands and helptext

  • New !help response

πŸ”—Fixes

  • Add the missing default for !stats

  • Check for required amount of arguments in !delete

πŸ”—Chore

  • Fix typos in responses

  • Remove some dead code

πŸ”—GDQBot

daenney told us:

It's the most wonderful time of the year! The ⛄️ winter edition of Games Done Quick is almost upon us. This recurring speedrunning event helps raise money for charity each year. As usual, the proceeds of the week long AGDQ are going to the Prevent Cancer Foundation. With some luck we might break last year's $3.13 million record.

To help you keep track of the event I've created GDQBot. Right now you can use it to query for the schedule. Next week should see the code land to add the announcer routine so the bot will announce events as they happen to channels its invited to.

Also a big thank you to tulir for patiently answering my questions as I was trying to find my way around mautrix-go.

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1neko.dev322
2bridges.matrix.linux.pizza420
3almum.de474
4envs.net598.5
5saces.de627
6kb1rd.net722
7matrix.sp-codes.de905
8casavant.org943
9aria-net.org1034
10flobob.ovh1050

πŸ”—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 2020-12-11

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

πŸ”—Matrix Live πŸŽ™ (Demos week!)

πŸ”—Dept of Status of Matrix 🌑️

Lots of things to talk about! Firstly I'm very happy to say that spaces are happening, you can keep track of them here: https://github.com/vector-im/element-web/issues/15930.

Next Open Tech Will Save Us, was great this month, and you can also get a great introduction to Matrix Spaces there too.

Then, Marcus Schopen shared his love for Matrix by showing us the Matrix-branded mugs he has had printed:

2020-12-11-8_-UX-IMG_20201209_160020.jpg

If you'd like to buy some OFFICIAL Matrix merch (we don't have mugs just yet), then please go to The Matrix Shop! Marcus also added:

People in Bielefeld can come over to my office at university and get one.

πŸ”—Dept of Spec πŸ“œ

wbamberg told us:

New spec platform: we've asked the spec core team to spend some proper time with the new spec so we can decide if it's ready to ship.
You can also file bugs at https://github.com/matrix-org/matrix-doc/labels/spec-redesign

It's looking really good!

πŸ”—Spec

anoa offered:

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

πŸ”—MSC Status

New MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've continued to be quite busy with implementation during holiday crunch time. There were some constructive ideas for the team to carve out more time for spec work during this week's Spec Core Team retro, which will hopefully lead to an improved cadence this week and into the new year.

As such, the focus remains at MSC2844 (global versioning), MSC2366 (ready and done in key verification), and MSC2790 (modal widgets).

2020-12-11-9fxga-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

Hello, friends! On Wednesday we released Synapse 1.24.0 and 1.23.1, which include security fixes. Please upgrade! (Also, if you've installed Synapse from source, be sure to pip install 'cryptography>=3.3' in your virtualenv to address the recent OpenSSL CVE).

This is our last full release for the year, as we don't want to do anything that might risk the stability Santa's federated command and control centre at the North Pole, but we're looking forward to lots of new features and improvements in the new year β€” more details on that next week.

We'd also like to remind you that we're planning on removing support for Python 3.5 early next year (a formal announcement and timeline will accompany the 1.25.0 release), and we'd appreciate and comments or concerns in this GitHub issue.

Strikes me that Santa has a more centralised operation, but who can say?

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—YunoHost

Pierre told us:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.23.0 (1.23.1 available in branch testing)

Element Web integration had been updated to 1.7.14 (1.7.15 available in branch testing)

πŸ”—Kubernetes

Ananace offered:

Just updated my Synapse K8s-optimized image and Chart to 1.24.0, planning on deprecating the image at some point soon though, instead pointing people to upstream - or platform-optimized - images as I should be able to move all the Kubernetes-specific things into the chart itself to make it more compatible.

The image in question started off as a plain docker image, before there were official ones. I've since rebased it onto the official Matrix image with just the modified scripts and volume points.

My plan is to move all the Kubernetes-specific scripts into configmaps (which are a K8s way of storing text files/environment variables/etc), and then build my own launch arguments through the chart to get it to run on any image that has a Python interpreter and the Synapse modules available in the Python search path.

With all that done, it means I won't be a bottleneck in pushing updated image tags for people to be able to update, and I won't have to finagle multi-arch images πŸ˜ƒ

πŸ”—Docker ARM images for Dendrite

TR_SLimey reported:

As the PR from last TWIM is still awaiting review, I have once again updated the Docker ARM images for Dendrite for version 0.3.3. As always, they can be found in my docker repo at https://hub.docker.com/u/trslimey

Direct links:

Monolith: https://hub.docker.com/r/trslimey/dendrite-monolith

Polylith: https://hub.docker.com/r/trslimey/dendrite-polylith

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Gitter

Eric Eastwood announced:

If you didn't catch it already, we did a full announcement this week for Gitter now speaking Matrix πŸŽ‰! If you're curious about how we made it and some more technical details, the blog post is a great read: https://matrix.org/blog/2020/12/07/gitter-now-speaks-matrix

In terms of bridge progress, we added support for m.emote status messages which means your /me says hi messages will bridge back and forth properly. On the Gitter side, we fixed the browser notifications so they show properly from the virtualUser instead of the generic matrixbot.

πŸ”—mautrix-instagram

Tulir offered:

I made an Instagram DM bridge: https://github.com/tulir/mautrix-instagram / #instagram:maunium.net

It's a bit barebones still, but text bridging and backfilling works. The main advantage over mx-puppet-instagram is that it uses the realtime MQTT API instead of polling.

There was a second update from tulir, he added more features as of today:

After the initial announcement on Monday, I added bridging of reactions, redactions and photos in both directions and also typing notifications, read receipts and all types of messages from Instagram to Matrix.

πŸ”—Dept of Clients πŸ“±

πŸ”—Element Client Work

Compiled by the team

  • Spaces

    • We’re making more progress on implementing Spaces.. On Web, we’ve made progress on creating spaces and switching between them. On mobile, we’ve laid down the foundations in the Android SDK. If you missed it, we gave a preview in this weeks Open Tech Will Save Us.
  • Social login

    • We’ve been working on server-side support in synapse for picking an MXID during login with SSO, and also implementing support in iOS to gain parity with Android & Web, to launch together in future.
  • VoIP

    • We’ve been working on implementing hold & resume (line 1 / 2) support on Web, iOS & Android. Web has something sneak previewable on develop.element.io!

πŸ”—Web

  • Element Web 1.7.15 released
    • Improved voice / video call UI
    • Notifications are now ignored from rooms you've been active in recently
    • Login / registration flows redirect inside the app if you are already logged in
  • JS SDK browser build steps now only run on release (instead of every install) to save time

πŸ”—Android

  • URL Previews are coming in the next release! There will also be a brand new Emoji keyboard accessible from the timeline composer.
πŸ”—iOS
  • The new background service has been merged. Messages from notifications will be displayed faster within the app. A TestFlight build for testing will be available tomorrow.

πŸ”—Dept of Ops πŸ› 

πŸ”—axon

kaiyou announced:

This is a first update regarding a very small project named "axon", aimed at operating the synapse admin API from Python, either as a library or a CLI tool. It is currently in use everyday on our synapse instance for managing users and looking for suspicious rooms, and is being integrated into a prototype Web interface for managing synapse.

Admin API coverage is currently about 50%, mostly focusing on users and rooms management (get, list, update, delete). It is still enough to delete a user, edit an offensive avatar, or run as a cron to periodically purge remote media.

Our main repository: https://forge.tedomum.net/tedomum/axon

Github project mirror for contributing: https://github.com/kaiyou/axon

I asked if there was a GUI:

Not currently, but we are integrating it with another of our tools named "hiboo", which is a general indie hoster user manager (provides SAML & OIDC authentication with config templates for many projects including synapse, and integrates the account workflows and moderation features). Currently it provides room navigation and purging, plus deleting accounts either on moderator decision or when the user deletes her SSO account.

Sounds promising! Synapse Admin would benefit from this kind of tooling...

... so it was a surprise to find another project designed to help in this area!

πŸ”—Announcing synadm

jojo told us:

Well, maybe it's about time for "synadm - a CLI frontend to Matrix-Synapse admin APIs" to be announced more officially. As the name implies it's a CLI tool that eases the usage of admin API commands for Synapse admins. It currently covers everything the room and user API's can do: https://github.com/JOJ0/synadm#implementation-status--commands-list

It can be configured interactively and/or using a config file in yaml format: https://github.com/JOJ0/synadm#configuration

It's configurable whether the responds of the API are shown in pretty printed JSON or in a table format (using Python tabulate).

It's well documented via it's online help and supposed to be quite self-explanatory to the admin.

Any thoughts, ideas, feature-requests are very welcome in #synadm:peek-a-boo.at or as usual by filing PR's or issues in the project repo https://github.com/JOJ0/synadm.

πŸ”—Dept of Bots πŸ€–

πŸ”—Advent of Code 2020 bot

AsbjΓΈrn told us:

This one might be interesting to those participating in Advent of Code 2020:

I made a (quick and dirty) bot that posts whenever somebody on a private leaderboard solves a challenge. https://gitlab.com/AsbjornOlling/aocbot

I imagine that we're not the only private AoC Matrix room around, so I figured I'd share - even though it's not anything particularly remarkable πŸ‘¨β€πŸ’»

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

πŸ”—Matrix talk at Open Source Summit EU

Oleg reported:

The recording of the Matrix talk from the annual Open Source Summit EU is online! πŸŽ‰

I talked about Matrix 101 and showed different bridging capabilities with Slack and IRC and, of cause, showed some bots. πŸ˜‰

Thanks benpa and Half-Shot for your support! ❀️

▢️ Check it out: https://www.youtube.com/watch?v=cD8xbci4wAY

πŸ”—NLUUG talk from Matthew

Matthew offered:

I gave a talk to NLUUG the other week: https://www.youtube.com/watch?v=gY2PCKEaKlM

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1neko.dev298
2comsys.rwth-aachen.de341
3pc.koesters.xyz:59003444
4maescool.be446
5bordum.dk465
6jauriarts.org505
7dendrite.matrix.org554
8casavant.org717
9matrix.sp-codes.de758.5
10envs.net913

πŸ”—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 2020-12-04

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

πŸ”—Matrix Live πŸŽ™

In which Nad & Matthew go through the new consolidated Element roadmap at https://github.com/vector-im/roadmap/projects/1

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Open Tech Will Save Us 9

Taking place NEXT WEDNESDAY, the ninth edition of my favourite monthly Open Tech-themed live video broadcast! Subscribe to the calendar on https://matrix.org/open-tech-will-save-us/ and check out the lineup:

  • Angie Gaudion, Coordinatrice at CHATONS, presenting Mobilizon: a new libre events management tool https://joinmobilizon.org/en/.
  • Ben Francis, Founder at Krellian, presenting the relaunch of WebThings (previously from Mozilla)
  • Nad Chishtie, Product Lead at Element, presents Matrix Spaces: a new vision for room groups in Matrix

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa offered:

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

πŸ”—MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've mostly been focusing on implementation. Thus the same 3 MSCs are in focus: MSC2844 (global versioning), MSC2366 (ready and done in key verification), and MSC2790 (modal widgets).

2020-12-04-3rO5x-stacked_area_chart.png

Anoa also provided a revised, more festive version of the chart, but it's too jolly to render inline, so needed to be linked instead.

πŸ”—New spec platform

wbamberg offered:

Still at https://adoring-einstein-5ea514.netlify.app/

  • Dean has started work on design updates for the spec

  • We've written replacements for all the templates and updated all template calls

  • We've implemented a mechanism for representing different spec versions and changelogs

Seriously progressing! Much more readable than what we have.

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander's Dendrite mxid announced:

This week we released version 0.3.2, which contains some bug fixes. Changes this week include:

  • Checking if a server is allowed to see an event has been optimised somewhat

  • The ability to disable federation has been added

  • Application services are now sent correctly formatted client events

  • create-account has been simplified so that you can just point it to your Dendrite config

  • /unpeek support has been added (for MSC2753)

  • Event IDs are now calculated far less often in the roomserver, since this is an expensive operation

  • The federation sender now caches events in memory to reduce load on the database

  • The "since" parameter is now checked more thoroughly in the sync API, which led to a bug that could cause forgotten rooms to reappear (thanks to kaniini)

  • The polylith now proxies signing key requests through the federation sender correctly

Spec compliance is unchanged:

  • Client-server APIs: 58%, same as last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

⚠️ The OpenSSL project has pre-announced a high severity issue that will be disclosed on Tuesday. We will be regenerating Docker images and releasing Synapse 1.24.0 and 1.23.1 on Tuesday following that announcement. Note that these releases contain security fixes of their own, and you are encouraged to upgrade.

In other news, Synapse 1.24.0rc2 is out and includes numerous bug fixes and internal improvements, especially around our OpenID Connect (OIDC) and SAML providers. Of note, the OIDC provider can now re-try generating MXIDs when there's a collision, reaching parity with the SAML provider.

We've been talking about MSC2403: Add "knock" feature for a few weeks, but the end is in sight: the PR is reviewed and the tests pass, so we're on track for including it in 1.25.0! We're also on the cusp of a finishing a new algorithm for calculating the auth chain difference in State Resolution v2, which should significantly reduce worst case performance.

Lastly, the deprecated /_matrix/client/*/admin Admin API endpoints have been removed. If you have tools which target these endpoints, please update them to use the /_synapse/admin URL prefix instead.

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Docker ARM images for Dendrite

TR_SLimey offered:

The Docker ARM images for Dendrite have been updated for version 0.3.2. As always, they can be found in my docker repo at https://hub.docker.com/u/trslimey

Direct links:

I have also submitted a PR for automated multiarch docker builds for Dendrite, so if that gets accepted, no more unofficial images for me :P

πŸ”—YunoHost

Pierre told us:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.21.2 (1.23.0 available in branch testing)

Element Web integration had been updated to 1.7.13 (1.7.14 available in branch testing)

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Gitter

Eric Eastwood reported:

We've soft-launched the new bridge to all public Gitter rooms! You can now find any public room on Gitter checking out the room directory for gitter.im or directly by replacing the forward slash in the URI part of the Gitter room with an underscore and joining #*:gitter.im(replace the *). If you come across any bugs, feel free check the list of known problems and create an issue. There will be a full announcement next week so stay tuned!

We've also added a few more features this week and now transform :emoji: syntax from Gitter to Unicode so they're compatible in Matrix, propagate the room topic/description, and some bug fixes around threaded conversations and replies. You can track our full progress from the GitLab epic for the native Gitter-Matrix bridge.

Massive milestone! Great work Eric, it's been such fast progress!

πŸ”—Dept of Clients πŸ“±

πŸ”—Fractal

Alexandre Franke announced:

After I ran out of ways to break it, we finally merged Our Hugestest Merge Request Ever. This concludes the β€œPort to matrix-rust-sdk” saga (see these three links for previous episodes).

2020-12-04-2yOTb-01-celebration.png

Just kidding.

This was actually just the beginning, the ground work needed to lay the foundations for A Better Future. We already have a bunch of other merge requests to continue down that path. Hopefully there shouldn’t be such large ones in the (near) future. So what’s next? The work that landed this week was a switch to the SDK for almost all endpoint queries. Now need to handle the syncs with it. Later on, we will use it to handle storage, and then enable E2EE as well, but that will take quite some time.

Big progress from Fractal here! Will be good to hear more from the Fractal club to see what the ETA is for storage and E2EE.

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

While I've actually not had much time to work on Nheko, I did at least fix most of the UTD (Unable to decrypt) issues, when sending encrypted messages. This has been a long standing annoyance, but it should now finally not be an issue anymore (well... at least it should not be caused by Nheko as often anymore)! With this there are only a few tickets left to finally bring E2EE out of beta in Nheko (SSSS and bootstrapping cross-signing, as well as a general review for potential issues).

And while I have actually not been doing much work, we actually had more Pull Requests (and merged them too) this week than I have ever seen before in Nheko! Thank you very much to everyone who contributed. A short summary:

  • Nheko now uses the Nheko icon from your system theme, if available

  • You can finally look at avatars in their full resolution!

  • Megolm sessions are now lazily loaded from disk.

  • The registration page now also has nice inline error messages, hinting at why a specific input is unacceptable.

  • Updates to the russian translation

  • The README now lists all required GStreamer plugins for voice and video calls.

It feels super great, when you have so many people contributing, I love it! <3

Nheko really seems to be doing something right when it comes to attracting PRs!

πŸ”—Element Update

As compiled by the team:

  • Public Roadmap
    • We now have a public roadmap! We’ll be covering more details on it in this week’s Matrix Live, as well as a blog post on element.io soon.
  • Spaces
    • Work has started in earnest on the web and android implementations.
      • On the web side T3chguy completed the Spaces creation flows and is now looking at the Space landing page and Space post-creation prompts.
        • We have noticed that prefixing any word with β€˜Space’ makes it sounds 20% cooler.
      • The mobile MVP will be read only and Valere will start with the ability to respond to invites and select Spaces.
    • So far it is looking very promising with lots of feedback from user testing informing the design.
  • Social login
    • We plan to ship this as a cross client feature this month. This week we completed the implementations for web and android with iOS and Synapse ongoing.
  • VoIP
    • Line 1 / 2 support is almost ready on web: ironing out some bugs and cosmetic issues, then PR will be ready for review. VoIP V1 support and hold/resume is getting close on Android & iOS, along with stability fixes.

πŸ”—Web

  • Element Web 1.7.15-rc.1 is now available at https://staging.element.io, including
    • Improved voice / video call UI
    • Notifications are now ignored from rooms you've been active in recently
    • Login / registration flows redirect inside the app if you are already logged in
  • Supporting tools like CI scripts are now using the correct branding
  • React SDK PRs now have experimental preview sites, which makes it easy to try out changes during review

πŸ”—iOS

  • We can now use XCode 12.2 to build all projects
  • We are still working on 2 big changes:
    • Introducing a background sync service to display notifications quicker in the timeline
    • Introducing XCodeGen to stop having bad merge conflicts in pbxproj files

πŸ”—Android

  • Release 1.0.11 in production (roll out to 10% for now)
  • Feature Parity / URL preview
  • Coming next Social logins
  • Bug fixes

Aleks Kissinger added:

LaTeX support will be available under Labs in the next release of Element: https://github.com/vector-im/element-web/blob/develop/docs/labs.md

πŸ”—cryptovoxels client

Matthew offered:

cryptovoxels released a cute little preact matrix client for all your VR needs: https://github.com/cryptovoxels/chat

We don't have much information about this one yet, other than that cryptovoxels have been interested in developing a Matrix client for their world for a while.

πŸ”—Dept of Bots πŸ€–

πŸ”—Hemppa

Hemppa the Bot is a multipurpose bot for writing modules super easily in Python.

Cos offered:

Hemppa the Bot is a multipurpose bot for writing modules super easily in Python. Last week Hemppa received a useful feature of printing files! You can set up a room for a specific printer and invite anyone you wish to it to allow printing. Any attachments uploaded to the room will be automatically printed. It's actually one of the easiest way to print from a phone and very useful if you have a printer that does not have drivers for modern Windows or MacOS versions. https://github.com/vranki/hemppa#printing

πŸ”—Matrix-Alertmanager

A bot to receive Alertmanager webhook events and forward them to chosen rooms.

jaywink announced:

Matrix-Alertmanager has a new release v0.4.0 with improved formatting of alert messages and an update of Node to v14. Find more information here.

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1tum.de451
2nerdsin.space568.5
3envs.net572
4matrix.sp-codes.de785
5mgp.ax.lt888
6selea.se896
7casavant.org918
8nobelium.no1089.5
9chatserver.ca1189
10mailstation.de1254

πŸ”—Final Thoughts πŸ’­

This is a pretty cool, Matrix-ish video! Doug shows Element-iOS and Nio running side-by-side, natively (!) on an M1 Mac Mini.

πŸ”—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 2020-11-27

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa reported:

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

πŸ”—MSC Status

Closed MSCs

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're switching from QR Code verification to key verification additions. Otherwise things remain the same: MSC2844 (global versioning), MSC2366 (ready and done in key verification) and MSC2790 (modal widgets).

2020-11-27-4wL5N-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad offered:

On behalf of the Americans on the Synapse team: Happy Thanksgiving! This past week saw us land some improvements to the OpenID Connect SSO provider, bringing it closer to parity with the SAML provider. In particular, #8801 made it possible to gracefully handle username collisions when creating a new account over SSO.

We've also merged a pull request (#8785) from @dklimpel which removes deprecated paths for the Synapse Admin APIs. As of the next Synapse release, all Admin APIs will be accessibly only under the /_synapse/admin/v1 path prefix.

Otherwise, much of our time has been spent on getting pull requests like #6739, implementing MSC2403: Add "knock" feature, ready to merge. It's coming to a Synapse release soon!

Speaking of releases, we're looking forward to cutting a first release candidate of 1.24.0 early next week; keep your eyes peeled for that!

I'd be remiss in not mentioning that we started the week by disclosing CVE-2020-26890, which is a denial of service affecting Synapse versions prior to 1.20.0. If you've not upgraded, please do.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Gitter

Eric Eastwood offered:

Lots of features added this week including Gitter threaded conversations and Matrix reply bridging, image/file uploads, transforming mentions so notifications flow, and better looking flairs!

Not everything is available on production yet but you can try out the bridge for yourself at https://gitter.im/gitter/testing-matrix-bridge: #5faa0809d73408ce4ff3ad8e:gitter.im

We'll be working through some of the bridge oddities and hoping to open up the bridge to all public rooms on Gitter soon. You can track our full progress from the GitLab epic for the native Gitter-Matrix bridge.

2020-11-27-sCDuB-ScreenShot2020-11-27at1.37.40AM.png

πŸ”—MX-Puppet-VK (Na Zdorovie!)

Alexey offered:

The MX-Puppet-VK bridge for VK (Vkontakte) social network via this commit have added initial support for User tokens. This means that we now can use it for puppeting the real user account, to automatically bridge all "VK Messenger" private dialogs and groups into Matrix. Previously bridge worked only with VK community tokens as bot, to bridge only conversation with specific communities.

To get the VK User token without registering new app (and waiting approve from admins), users can reuse the "Kate Mobile" app token (or other app, that have access to Messages API) and receive it via https://vkhost.github.io/ service.

Support room: #mx-puppet-vk:inex.rocks

πŸ”—matrix-sms-bridge

Benedict offered:

The matrix-sms-bridge can finally be used with an Android smartphone as SMS-Gateway instead of gammu and a modem. @rebekka:imbitbu.de developed the app android-sms-gateway-server, that the bridge uses to send and receive sms messages. The new bridge version is used in combination with the app in production (medical care centre) for a week now. We have a throughput of 50-100 SMS message a day. The update is also integrated in matrix-docker-ansible-deploy.

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) offered:

The new completer is now on master. Please try it out and report any issues you may find. It now actually inserts a user link, keeps a per room message history and should look quite a bit nicer and be faster, when completing emojis or user names.

There were also quite a few cleanups, most of them done by Kirillpt! Some spacing here and there, saturation changes, the login page should now be less confusing, when you don't enter a valid mxid and toggles should now not get stuck in confusing intermediate states. There is also a russian translation now and some VOIP fixes. Pretty busy week, but I like it!

2020-11-27-LCo9S-Screenshot_20201127_162000.png

πŸ”—FluffyChat

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

krille reported:

FluffyChat 0.23.0 is out now with password recovery options and a lot of minor fixes and UX improvements. Now also available on Flathub!! πŸ™‚ Learn more at: https://fluffychat.im

2020-11-27-nO6wZ-fluffychat-screenshot.png

πŸ”—Element

Nad offered:

πŸ”—In development

Improving usability

On mobile, we’re busy adding better suggestions to empty/starting views of screens, improving searching for contacts, improving adding other users by QR code scanning, and improving deep link integrations on Android. Expect releases for iOS & Android soon!

Spaces

Spaces UI designs & user research testing are underway, with initial development for the Element Web client kicked off too. We've been doing research & testing in private to avoid advance bias from the people we're testing with, but hope to share things publicly soon.

Social login

Social login is in review for Element Web, with synapse & mobile support hot on the tails for next week prior to releasing.

VoIP

We’ve been focusing on implementing UI for call holding, and general UI polish across the VoIP experience, to be released soon!

πŸ”—Releases

Element Web

Element Web 1.7.14 was released this week, which includes:

  • Several tweaks and improvements to the room list filter

  • Improved registration based on user feedback

  • Improved invite / create DM flow.

  • Future releases will no longer publish element-web to NPM, and the package is marked as deprecated

  • Renamed build artifacts from riot-.tar.gz to element-.tar.gz

  • Experimental LaTeX maths rendering support is available via a labs flag on develop. Thanks to akissinger, thosgood, uhoreg, and others who have worked on various pieces of this puzzle!

Element iOS

Element iOS 1.1.1 has been released:

  • It contains contains several major bug fixes, including end-to-end encryption bug fixes.

  • Full history available on GitHub viewing the 1.1.1 & 1.1.0 tags.

Element Android

The Element Android 1.0.11 release is pending:

  • We're working through final bug fixes.

  • Separately, we’re also working on adding missing features to the client like; managing room aliases, room history visibility, join rules, etc.

  • In the SDK, the migration of the services API from MatrixCallback to coroutines is going well, tracked here.

πŸ”—Vtx

CraftedCart offered:

In addition to boring stuff like being able to persist events (hopefully) right, so we don't have to initial-sync every launch, I've been making a start towards multi-account support!

You can sign in as multiple users and switch between the "active" user you want to send messages as - it's a bit flaky for now, esp. when scrolling up to read past messages, but hey it's a start I guess

Asked if they were using an SDK:

Preeetty much doing it from scratch, though I am loosely basing the matrix-api side of it on Ruma

Source is at https://gitlab.com/CraftedCart/vtx

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma

Ruma is a set of Rust library crates around Matrix.

jplatte announced:

We gained a new contributor, kiwidu38, who added the server-default push rules, paving the way to Conduit supporting push notifications.

I improved compatibility with some commonly-broken DAG events and added rudimentary support for message edits to help Fractal finish their move onto matrix-rust-sdk.

πŸ”—Dept of Guides 🧭

πŸ”—Matrix introduction series (German)

Samuel offered:

I published the second part of the Matrix introduction series on my blog (in German). It deals with end-to-end encryption, contact verification and cross signing. https://blog.sp-codes.de/sichere-chats-mit-matrix-matrix-teil-2/.

I have not read this series so I must trust that Samuel is saying nice things! Anyway it seems like a useful resource for telling kameraden about getting started with Matrix.

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

Niklas Zender offered:

Today there is a German article about Famedly on GrΓΌnderszene -> https://www.gruenderszene.de/health/famedly-kommunikation-app-gesundheitswesen. Famedly is developing a solution based on Matrix to enable healthcare providers to communicate securely with each other and to facilitate intersectoral processes such as patient transfers or the integration of IomT devices. We have also almost completed a successful financing round and hope to support the Matrix ecosystem more and more. It would be so cool to use FluffyChat, Element, or a Matrix Messenger of your choice to start a video consultation with the doctor of your choice, or to be integrated into existing clinical communication flows concerning you!

Congratulations to Famedly on the progress they're making! If you're ready to graduate from TLAs (Three-Letter-Abbreviations) to the next stage, you'll be please to learn "IomT", which means "Internet of medical Things".

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maescool.be357
2heitkoetter.net367
3matrix.47q.de445
4matrix.thedisco.zone455
5kif.rocks477.5
6matrix.sp-codes.de605
7matrix.rubberboat.xyz713
8nuclearlemons.uk732.5
9casavant.org754
10dodsorf.as764

πŸ”—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 2020-11-20

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

πŸ”—Matrix Live πŸŽ™

Something different this week as we welcomed the community to submit their own demos!

  1. Oleg presents his Matrix home-automation setup, which uses Opsdroid, home-assistant and the reminder maubot.
  2. Nico gives presents a selection of small-ish new features in Nheko
  3. Timo gives a tour of the current state of the Conduit homeserver
  4. MTRNord (Marcel) presents the time-tracking bot used by Famedly
  5. Sorunome presents bootstrapping (creating cross-signing keys and online keybackup) in Fluffychat.
  6. Bala from Noteworthy presents Deploy a Matrix home server in 2 minutes with Noteworthy (set to royalty free music!)

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Bundeswehr deployment and app goes live

Matthew reported:

The Matrix deployment for the Bundeswehr (German Armed Forces) has gone live - details (in German) at https://messenger.bwi.de/ and https://www.bwi.de/news-blog/news/artikel/open-source-matrix-ist-einheitlicher-messenger-standard-fuer-die-bundeswehr and further coverage at https://www.egovernment-computing.de/bwi-und-bundeswehr-setzen-auf-open-source-a-980033/

Oleg (same fellow from the video - wow!) added:

Heise (German news portal) also quoted the news: https://www.heise.de/news/Matrix-steht-als-Messenger-fuer-Soldaten-und-zivile-Angehoerige-zur-Verfuegung-4963211.html

David Mehren linked to Element's own coverage:

https://element.io/blog/bwmessenger-goes-live-for-bundeswehr/

πŸ”—Dept of Spec πŸ“œ

πŸ”—New spec platform

wbamberg said:

πŸ”—Spec

anoa reported:

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

πŸ”—MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Personally I would find that last one quite helpful!

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we're sticking with the same three MSCs: MSC2844 (global versioning), MSC1544 (QR code verification) and MSC2790 (modal widgets). MSC2844 in particular I personally found quite interesting.

2020-11-20-M8ArJ-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander said:

We started out this week by releasing Dendrite 0.3.0 and then ended the week with a bug-fix Dendrite 0.3.1 release.

I'd like to say thank you especially to our community contributors who have been adding new features and filling gaps!

Changes this week include:

  • Memory optimisation by reference passing, significantly reducing the number of allocations and duplications in memory

  • A concurrency bug has been fixed in the federation API that could cause Dendrite to crash

  • A hook API has been added for experimental MSCs, with an early implementation of MSC2836

  • Forgetting rooms is now supported (thanks to S7evinK)

  • The last seen timestamp and IP address are now updated automatically when calling /sync

  • The last seen timestamp and IP address are now reported in /_matrix/client/r0/devices (thanks to alexkursell)

  • An optional configuration option sync_api.real_ip_header has been added for specifying which HTTP header contains the real client IP address (for if Dendrite is running behind a reverse HTTP proxy)

  • Partial implementation of /_matrix/client/r0/admin/whois (thanks to DavidSpenler)

  • The error when registering a username with invalid characters has been corrected (thanks to bodqhrohro)

  • The -version command line flag has been added (thanks to S7evinK)

  • Backfilling should now work properly on rooms with world-readable history visibility (thanks to MayeulC)

  • Some more client event fields have been marked as omit-when-empty (thanks to S7evinK)

  • The build.sh script has been updated to work properly on all POSIX platforms (thanks to felix)

Spec compliance is unchanged, although some Synapse-specific tests have been removed and some new tests have been added:

  • Client-server APIs: 58%, same as last week

  • Server-server APIs: 83%, same as last week

As always, feel free to join us in #dendrite:matrix.org for general Dendrite chat or #dendrite-dev:matrix.org for development discussion.

πŸ”—Synapse

callahad offered:

We released Synapse 1.23.0 on Wednesday! Read all about it on the Matrix Blog. Otherwise, we'd like to highlight a few developments over the past week:

  • We're discussing a policy for ending support for old versions of Python and PostgreSQL. If you have opinions, please let us know on GitHub.

  • Our initial implementation of MSC2403: Add "knock" feature is undergoing review, and will likely land soon.

  • We've been looking at ways to improve the efficiency of state resolution, and Erik has managed to devise some algorithmic improvements that yield an order of magnitude speedup for a handful of pathologic cases. We hope to have a better idea of how this might work for real world workloads soon.

Lastly, we'd like to take this opportunity to remind you to please regularly upgrade your Synapse. Especially if you're not yet on 1.20.0, as we'll be disclosing a denial of service issue which affects older versions on Monday.

πŸ”—maunium/synapse

Tulir said:

mewmew wanted to use my fork of Synapse, so I made the changes there configurable (instead of hardcoding to my user ID) and even added a readme to list the features. It might also be useful for other people who want custom room IDs and other fun stuff.

The fork is available at https://mau.dev/maunium/synapse

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

And just to be on time, I just pushed an updated tag and new version of my K8s container image and chart for Synapse 1.23.0

πŸ”—Dendrite

Dendrite is a next-generation homeserver written in Go

TR_SLimey offered:

I've updated the Dendrite ARM docker images to v0.3.0. They can be found at https://hub.docker.com/r/trslimey/dendrite-monolith & https://hub.docker.com/r/trslimey/dendrite-polylith

and later

I have once again updated the Docker ARM Dendrite images for version 0.3.1.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mx-puppet-bridge

mx-puppet-discord is a (double)puppeting and relay bridge for discord, based on mx-puppet-bridge

sorunome told us:

Support for receiving EDUs from matrix (typing, read indicators and presence) has been added. Protocol implementations can start using the new events, if they want to. Version 0.1.0 has been released along with this. You have to enable the de.sorunome.msc2409.push_ephemeral flag in your registration file

πŸ”—mx-puppet-discord

Added support for bridging typing and presence matrix->discord

πŸ”—Gitter

Eric Eastwood offered:

The native Gitter <-> Matrix bridge is in production! πŸš€πŸš€ We're only testing it out in a single room but feel free to come by and send a message πŸ˜€

https://gitter.im/gitter/testing-matrix-bridge <-> #5faa0809d73408ce4ff3ad8e:gitter.im

We also have edits from the Gitter side flowing to Matrix and soon to support edits from Matrix. You can track our full progress from the GitLab epic for the native Gitter <-> Matrix bridge.

2020-11-20-YVtF0-editingmessages.gif

πŸ”—mx-puppet-vk

Coma Grayce told us:

Hey, our team of colorful ponies proud to introduce you a new Matrix bridge to VK.com chats. It's powered by mx-puppet-bridge and so far supports almost all of core features people want to see, like replies, message edits and file attachments.

Project home: https://github.com/innereq/mx-puppet-vk

Video introduction: https://www.youtube.com/watch?v=nBRBUA9beXs

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) announced:

  • Profiles should now open again on older versions of Qt.

  • I've been slowly rewriting the message are to be qml, to make it easier to do fancy styling. As a result emojis in the emoji-completer are now colorful and the avatars in the username completer now match the avatars used in the timeline. It also open up a few other improvements, like finally sending mentions as links instead of plain text.

  • We have now CI running on our self hosted gitlab instance. We will probably switch of the travis CI, once this is more battle tested. Repositories are now also automatically mirrored between gitlab and github.

  • Fixed a bug, where we tried to read the internal world group on your server instead of keeping that to ourself.

πŸ”—Konheko

Nico (@deepbluev7:neko.dev) offered:

I released 0.0.3 a few days ago bundling a few smaller improvements like redactions, copying messages and the ability to click on more links as well as some visual cleanups. Nothing radical, but also nothing breaking (I hope).

2020-11-20-2M9RA-Bildschirmfoto_20201120_001.png

πŸ”—Element

Neil said:

πŸ”—Delight (Rich vdH, Michael (t3chguy), Valere, Steve, Nique, Nad)

  • Improving usability

    • Last week

      • Observed user tests of people trying to use Element for the first time for personal and professional use cases
    • This week:

      • Began work on fixing several of the issues observed, like:

        • adding an invite people button to new rooms, so users can more easily add people;
        • changing copy to help people understand what DMs are
  • Spaces

    • Communities are coming back with a bang! Last week we said we renamed them to Spaces, and this week, we’ve started designing what MSC1772 would look like for users on Element, to start user testing next week.
  • Social login

    • To make authentication easier, we’ve started initial implementations of SSO in Element, exploring how homeservers & Matrix clients can support multiple SSO providers. Most of the work so far is captured in MSC2858.

πŸ”—VoIP (Dave, Brendan, Ismail, Francois, Simon, Nad)

  • Web

    • PR up for new look in-call UI, now looking at line 1 / 2 support
  • Mobile

    • Work ongoing to update both platforms to v1 VoIP
  • Design

    • Some tweaks as implementation is ongoing

πŸ”—Web Platform (Ryan)

  • Element Web 1.7.14-rc.1 is now available at https://staging.element.io, including:

    • Several tweaks and improvements to the room list filter

    • Improved registration based on user feedback

    • Improved invite / create DM flow

πŸ”—iOS Platform (Manu, Gil)

  • Last week:

    • The release has been blocked because a bug has been found in the end to end encryption module. It has been fixed but we want to fix damages it created on one time keys before releasing the new app version.

    • The new background sync service mechanism PR has been updated

    • We started to integrate tuist to stop to be annoyed with merge conflicts on the Xcode project file

  • This week:

    • Release!
    • Merge the background sync service mechanism PR and make more people test it

πŸ”—Android Platform (Benoit, Onuray)

  • Last week:

    • We’ve just merged a lot of PRs, to improve room creation form and fix some bugs.
    • SDK side, Dominaezzz is converting some of the Service API methods to coroutines, for a cleaner code. See for instance https://github.com/vector-im/element-android/pull/2414 . 9 out of about 45 services have been migrated so far. We have about a 45 services in the SDK (!)
  • This week:

    • Release including a new way to invite friends to Matrix and to Element.

πŸ”—Hydrogen

Bruno reported:

Released 0.1.30 with image uploads. There is also a new preference in the settings to scale sent images down.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma

Ruma is a Rust project to create a comprehensive set of APIs for Matrix. Previously there was a Ruma homeserver project.

jplatte said:

Since our last update four weeks ago,

  • iinuwa created issues for all of the identity service api endpoints (w/ suggested module names!) πŸŽ‰

  • I updated lots of enumerated types to allow unspecced values, for future compatibility & robustness

  • Devin R made sure a custom Content-Type in responses overwrites the default rather than creating a duplicate header. #339

  • gnieto fixed a bunch of bugs in ruma-federation-api

  • Alejandro DomΓ­nguez added support for deserializing string power levels (requires the unstable-synapse-quirks feature because these events are invalid according to the spec but Synapse used to (?) accept them)

πŸ”—Ruby SDK

Ananace reported:

Just released version 2.2.0 of the Matrix Ruby SDK with the help of the community, with this release support for JRuby is improved - though still not perfect, in the higher-level abstraction direct messaging rooms are now exposed for all users - as well as all that the current user has, and the lower-level abstraction sees the addition of the CS API method to get an event context.

And just to reiterate; if you're using the gem - or have questions/comments about it. please do drop into the discussion room at #ruby-matrix-sdk:kittenface.studio.

πŸ”—Dept of Bots πŸ€–

You can see demos of both bots in this section by watching Matrix Live \o/

πŸ”—home-assistant-bot v2.0.0 released

Oleg told us:

Opsdroid bot for triggering home-assistant automations.

πŸ”—Changes

  • ⚠️ Possible breaking change: change behavior how messages are matched

    • Before: messages were matched only if a message starts with !

    • In this version: the whole message is matched. This means in v2.0.0 this will work Hey, please !turnon light1

      • You can override this by using ^ in the config for. For example: regex: "^!turnon"
    • This allows one bot trigger another. See this TWIM video for details. πŸ˜‰

  • Add howto for setting up wakeup-light with home-assistant

  • Update Opsdroid to v0.19.0

  • Update opsdroid-homeassistant to 0.1.8

  • Add debug config parameter to display messages in the chat, that the bot is getting but, maybe, is not processing/matching

πŸ”—Feedback

πŸ”—Famedly Timetracking bot

MTRNord announced:

As seen in the video I am working at famedly on a bot to track our work hours.

Until this happens the video gives you a sneakpeak on the functions of that bot.

πŸ”—Current (implemented) functions

  • Tracking of time using !in and !out commands with forced usage of a description as well as ISO 8601 timestamps.

  • Verification if a time is logical based on the known data

  • Saving the times tracked inside of postgresql

  • Tracking durations using a !record command

  • Responding to only allowed users. (Including ignoring invites if a user is not allowed to use the bot.)

  • Using !delete to remove entries from the database as needed

πŸ”—Planned functions

  • Handling of timezones based on users

  • !stats command which prints you the tracked durations based on a predefined or custom range of time

  • CSV Export based on a defined range

  • !break command. Putting a break in between a record or a in/out combination.

  • Better handling of multiple !in commands

  • Improved responses

  • Reminders to call !out and to take breaks

Fell free to join us at #timetracking-bot:famedly.de . As soon as the repo gets opened up to public we will announce it in TWIM. Feel free to give suggestions or wishes in our room :)

Get it at: https://gitlab.com/famedly/bots/timetracking

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net297
2neko.dev297.5
3maescool.be346
4sorunome.de396
5apetre.sc439.5
6maunium.net503
7midov.moe520.5
8matrix.sp-codes.de603
9matrix.thedisco.zone608
10casavant.org609

πŸ”—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 2020-11-13

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

πŸ”—Matrix Live πŸŽ™

This marks the start of Season 6 of Matrix Live (S06E01), a decision M+A apparently made on the fly just now. Incrementing a mostly-arbitrary counter... Imagine wielding that kind of raw power!

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—IETF three-way bridge

Matthew reported:

The IETF have been continuing to experiment with new chat systems, and #xmpp_bridgingmeta_jabber.ietf.org:matrix.org exists as a three-way bridge to discuss the initiative spanning Matrix, XMPP & Zulip. Really fun to see open chat converging like this :)

πŸ”—Dept of Science πŸ§ͺ

πŸ”—Analysis of the Matrix Event Graph Replicated Data Type

Florian announced:

Fresh off the arXiv presses comes our

β€œAnalysis of the Matrix Event Graph Replicated Data Type” preprint! This time, it is a deep dive into the data structure properties of the event graph:

What type of consistency guarantees does it provide, how many of the other homeservers you share a room with can be faulty or malicious without violating those guarantees (short answer: all of them!),

and how is it possible that a frayed-out event graph ever laces back to just a few current events, while there is a probability larger than zero for growth to arbitrarily high limits?

To shed light on those questions, we had a great cooperation between my Decentralized Systems and Network Services Research Group and Prof. Dr. Norbert Henze from the Institute of Stochastics.

While we are still in search of the right venue for peer-reviewed publication, we went for a preprint this time to share our results with the scientific and the Matrix community in a timely manner.

2020-11-13-WTJwJ-next-step-expectations.png

In this figure, k is the number of participating servers, U_n is the current width of the event graph.

For example, with a current width of U_n = 1000 events and k = 200 servers, we can expect that the width goes below E(U_{n+1}) < 600 events in just one step.*

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa reported:

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

πŸ”—MSC Status

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, MSC2744 has entered FCP. As such we're switching it out for MSC2844, which aims to define a global versioning system for all spec documents. Note that MSC2844 does not currently have FCP proposed. Its purpose for being in the focus this time around is for asking the team whether ideas proposed are plausible.

Thus this week's focus is MSC1544 (QR Code verification), MSC2790 (modal widgets) and MSC2844 (global versioning).

We've also started making use of a Github board to track the state of an MSC through the currently somewhat ambiguous process of putting up an MSC that is ready for review to starting FCP. You can find the board here: SCT Backlog.

Some explanation of the columns:

  • Awaiting SCT Input - These are MSCs that are deemed reviewable by the MSC author, and require review by a subsection of the Spec Core Team (usually one or two people) that are most familiar with the scope of Matrix that the MSC is relevant to.

  • Ready for FCP ticks - At least one individual from the Spec Core Team has signed off on the MSC. It is not time for others to give a cursory review - mainly sanity checking from the perspective of the part of Matrix that they work on. Note that fundamental flaws may still be found in this stage, requiring the MSC to be reworked.

  • In FCP - The MSC is in Final Comment Period, where everyone has a last chance to get their ideas in. This happens after most of the Spec Core Team have given their ticks from the previous column.

  • Done - These MSCs no longer need immediate attention by some portion of the Spec Core Team.

These definitions are all flexible as we continue to see what works for the limited resources we have available for review.

Do not be alarmed if a particular MSC is not on this board, we're placing things on here as deemed necessary, and more will certainly be added in time.

2020-11-13-IBXkM-stacked_area_chart.png

πŸ”—New spec platform

wbamberg reported:

Working on the new spec platform: this week we've been simplifying the toolchain that builds and renders the spec, to make spec authoring easier and faster.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad offered:

Note: We are aware of a trivially exploitable denial of service vulnerability in versions of Synapse prior to 1.20.0. Complete details will be disclosed on Monday, November 23rd. If you have not upgraded recently, please do so.

Happy RC day! The first release candidate of Synapse 1.23 is now available. For Synapse admins, we've added numerous new APIs thanks to contributions by @dklimpel, and we now support generating structured logs in a standard manner. The structured and drains logging options are now deprecated in Synapse's configuration.

Synapse 1.23.0rc1 also includes several significant bugfixes, especially around regressions in the SQLite-to-PostgreSQL database porting script, as well a fix to an issue that would prevent Synapse from recovering after losing its connection to the database. Synapse will also now reject modifications to access control lists which would otherwise result in a server blocking itself from a room. This is a particularly interesting case of unintended consequences in protocol design, and we hope to write more about it soon.

Next week should see the full release of 1.23, followed by a first implementation of MSC2403: Add "knock" feature landing in the development branch for 1.24. Look for more information in next week's edition of TWiM!

πŸ”—Dendrite

Dendrite is a next-generation homeserver written in Go

kegan said:

Neil is still working on P2P routing schemes and I am still working on Cerulean, but that doesn't mean nothing has happened this week! We've been busy reviewing PRs and have landed a big one this week:

  • Read receipts are now implemented (thanks @S7evinK!).

  • Usernames with = can now be created, in accordance with the spec.

Spec compliance has improved as a result:

  • Client-server APIs: 58%, up from 57% last week.

  • Server-server APIs: 83%, up from 81% last week.

πŸ”—Synapse Deployment πŸ“₯️

πŸ”—YunoHost

Pierre offered:

YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting.

Synapse integration had been updated to 1.21.2 (1.22.1 available in branch testing)

Element Web integration had been updated to 1.7.12 (1.7.13 available in branch testing)

πŸ”—Dept of Clients πŸ“±

πŸ”—Hydrogen

Bruno said:

Hello all. Hydrogen gained emotes (/me) this week, together with file uploads and downloads! Also, encryption keys are setup while typing instead of after sending, so you should see less momentary "the sender hasn't sent the keys yet". Also a good number of bugs were solved. Next up: image uploads!

As expected, /me commands brought a chorus of:

now that you support commands, you must add the single most important command in any decent Matrix client

- tulir

Bruno got the idea pretty quickly:

/rainbow perhaps?

πŸ”—Element

Nad announced:

Hello TWIM! From this week on we're changing how we're reporting updates on the Element clients. Each week, we'll include a section for cross-platform feature work the Element team is working on, and some sections for platform specific work too.

Spaces (previously known as Communities)

Communities are back! They've been renamed to Spaces, and on the Element team we've been busy exploring user experience and critical thinking for MSC1772, to allow users to organise rooms into useful groups.

Social Login

In an effort to reduce friction in authentication, we've been R&Ding how to allow homeservers & Matrix clients to support multiple SSO providers.. Most of the work so far is captured in MSC2858 and we're starting initial implementations in Element web next week.

VoIP: Voice & Video Calls

We've started foundational research, design and engineering to improve both the usability and stability of native matrix VoIP in Element. We've also started to look at how we can improve the continuity of the user experience between native Matrix calls and our current implementation of Jitsi.

Usability

We've been focusing on improving post-registration actions all round to make Element provide better prompts for first actions, and empty states for views on all platforms, with a multitude of fixes having landed on Element Web, iOS & Android in the last week. We've also started paid user testing to better understand specific pain points in the first time user experience, which we're looking to improve significantly in the coming weeks.

Web platform

v1.7.13 is now live! Which includes a bunch of fixes & improvements on VoIP.

Android platform

v1.0.10 is now available on the Play Store. We're also doing ongoing work to catch up with feature parity to Element Web, and Dominaezzz is migrating SDK APIs to suspend functions: no more MatrixCallback!

iOS platform

v1.1.0 is soon to be live on TestFlight for beta testers, and we'll soon be turning our attention to fixing end-to-end encryption regressions.

πŸ”—Nheko

Nheko is a desktop client using Qt, Boost.Asio and C++17. It supports E2EE (with the notable exception being device verification for now) and intends to be full featured and nice to look at

Nico (@deepbluev7:neko.dev) reported:

  • You can now see yourself too during a video call.

  • You can change the ringtone, as the default can be a bit annoying.

  • Avatars should now not look as pixelated in some weird edge cases.

  • You can now add text after a /shrug command.

That's all, thank you trilene and MayeulC for the contributions!

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix_app_service.ex (Elixir SDK)

pierre told us:

We've (finally) released a first version of matrix_app_service.ex, an Elixir library for the application service API (hex, GitLab)

uhoreg (known Elixir fan, asked):

that's cool. Do you have any projects that are using it?

Pierre:

I don't want to "sell" it before there's some kind of poc, but with a few friends we're trying to build a bridge for ActivityPub. we're using the library of the same name by the people behind CommonsPub, of which a lot of code comes from Pleroma, so the application service appears as an ActivityPub server. it's still the beginning, and I'm just starting to think about which information a bridge needs to keep (I guess sometime I'll ask Half-Shot a big list of questions 😁)

Today might be our highest-ever Pierre-ratio in TWIM!

πŸ”—matrix-spring-boot-sdk

Benedict announced:

A new release integrates an embedded h2 database into matrix-spring-boot-bot, which makes it a lot easier to write bots with persistency. You only need a few lines of code to write simple bots (e. g. a ping bot). I also changed a lot under the hood (e. g. using type-safe Matrix-Id-classes instead of Strings).

πŸ”—matrix-sms-bridge

The matrix-sms-bridge now uses the h2 database from matrix-spring-boot-bot instead of neo4j, which makes it a lot more stable and fixes some bugs. We are using it in production with hundreds of target telephone numbers without problems. I also added an optional feature to use room aliases (e. g. #sms_4901234567:homeserver) to prevent multiple rooms with one target telephone number (which is still possible).

In a few weeks you can use this bridge with an old Android-Smartphone, which acts as an sms gateway with rest api.

πŸ”—Dept of Ops πŸ› 

πŸ”—matrix-docker-ansible-deploy

This Ansible playbook is meant to easily let you run your own Matrix homeserver.

Slavi announced:

Thanks to Scott Crossen's work, matrix-docker-ansible-deploy can now manage Dynamic DNS using ddclient.

To learn more, follow our Dynamic DNS docs page.

πŸ”—Dept of Bots πŸ€–

πŸ”—New Matrix chat bot, Mozilla-focus first

bnjbvr announced:

I've written a small blog post about a Matrix chat bot I've developed with matrix-js-bot-sdk, it was started to address Mozilla specific features first, but then I've added a few other generally useful features too! Hope you'll like it and find it useful!

#botzilla:delire.party is the room for discussion (thanks Davo)

πŸ”—Dept of Built on Matrix πŸ—οΈ

πŸ”—gurlic.com, new social network getting Matrix integration

ahq said:

Hello Matrix friends. I've been asked to share this here. I'm currently building a platform for building communities. I'm focused on deeper matrix integration with communities, private messaging built on top of matrix, and custom domain support. Feel free to check out https://gurlic.com. The matrix community is at https://gurlic.com/matrix, but I haven't had the time to post much.

We have communities (https://gurlic.com/space -> https://gurlic.space)

We have galleries (https://gurlic.com/art -> https://gurlic.art) We have publications (https://gurlic.com/classics -> https://classics.wtf)

We have user pages (https://gurlic.com/bob -> https://bob.monster)

The UI is a little confusing now because we have longform articles (https://gurlic.com/homer/the-iliad-book-ii) and short social media posts (https://gurlic.com/privacy/post/324848317844422661).

I pretty much want all resources to have custom domain support, and matrix rooms for all communities, and nested communities. In the near future, I hope to have matrix servers for custom domains too. And of course, the source will also be open if folks want to host.

Right now, users on gurlic get a matrix account, and communities/galleries/publications get a room too, but i'm hoping to take some time to look at much deeper integration. Dendrite and hydrogen are great to build on top off...

πŸ”—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. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maunium.net318
2neko.dev363
3finallycoffee.eu364
4chatcloud.net384
5envs.net586.5
6acmelabs.space640
7matrix.sp-codes.de696.5
8kernelpanic.cafe750
9casavant.org834
10matrix.thedisco.zone904

πŸ”—That's all I know 🏁

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