This Week in Matrix

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

Atom Feed

This Week in Matrix 2021-10-29

29.10.2021 18:56 โ€” This Week in Matrix โ€” Thib

Matrix Live ๐ŸŽ™

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

Dept of Social Good ๐Ÿ™†

Denise reports

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

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

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

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

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

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

Dept of Spec ๐Ÿ“œ

anoa says

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

MSC Status

New MSCs:

  • There were no new MSCs created this week.

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

Spec Updates

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

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

Random Spec of the Week

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

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

Dept of Servers ๐Ÿข

Synapse โ†—

Synapse is the reference homeserver for Matrix

callahad says

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

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

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

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

dmr says

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

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Helm Chart โ†—

Matrix Kubernetes applications packaged into helm charts

Ananace says

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

Dept of Bridges ๐ŸŒ‰

MAM support for Bifrรถst

uhoreg reports

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

Heisenbridge โ†—

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Release v1.4.0 ๐Ÿฅณ

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

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

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

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

Thanks!

Dept of Clients ๐Ÿ“ฑ

Hydrogen โ†—

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

Bruno reports

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

Element Web/Desktop โ†—

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

kittykat announces

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

Thib says

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

Element iOS โ†—

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

Thib says

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

Element Android โ†—

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

Thib reports

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

kittykat announces

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

Cinny โ†—

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

Lozenge says

Features

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

Bugs

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

Find more about Cinny at https://cinny.in/ Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny Twitter: https://twitter.com/@cinnyapp

Dept of SDKs and Frameworks ๐Ÿงฐ

AIOMatrix โ†—

AIOMatrix is a simple Matrix bot library for creating bots.

forden says

Today has been released aiomatrix 0.2.0

Supported features:

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

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

Halcyon โ†—

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

gen3 says

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

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

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

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

Qt World Summit '21

kitsune says

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

Berlin Meetup

jaller94 reports

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

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

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

Collabs โ†—

mweidner says

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

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

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

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

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

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

Dept of Built on Matrix ๐Ÿ—๏ธ

houkime says

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

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

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

Source Code (/blog/img/MIT)

Dept of Jobs ๐Ÿ’ฐ๏ธ

Matthew reports

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

Dept of Ping ๐Ÿ“

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

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1sspaeth.de387
2jae.su606
3matrix.awesomesheep48.me1717

That's all I know ๐Ÿ

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

This Week in Matrix 2021-10-22

22.10.2021 00:00 โ€” This Week in Matrix โ€” Alexandre Franke

Matrix Live ๐ŸŽ™

Julian Sparber from the Fractal team was here with us this week, to tell us about the Fractal Next initiative: a rewrite of the app that leverages new technology. You can talk to the Fractal community by joining their room at #fractal:gnome.org.

Dept of Status of Matrix ๐ŸŒก๏ธ

Sync v3

kegan shared very exciting news:

I've been working on a brand new /sync mechanism, dubbed sync v3, for the past few months. This is a complete overhaul of how clients live-stream sync data from homeservers, and fixes numerous pain points with /sync including:

  • Syncs taking minutes to complete.
  • Syncs sending back vast quantities of data (e.g read receipts for every room you're in).

Currently, this new API is designed around the idea of having dynamic sliding windows around a sorted room list for a user's account. The room list can be sorted in different ways and only rooms in the window are returned to the client. The room list can also be filtered down based on various criteria (e.g only rooms in these spaces, with events newer than this timestamp, etc) and a subset of current room state can be requested with each returned room.


         All joined rooms on user's account
Q W E R T Y U I O P L K J H G F D S A Z X C V B N M

\                                                 /
 \                                               /

  \      Subset of rooms matched by filters     /
   Q W E R T Y U I O P L K J H G F D S A Z X C V

                       |
   A C D E F G H I J K L O P Q R S T U V W X Y Z     Rooms sorted by_name (or by_recency, etc)

   |_______|
       |

   A C D E F                                         first 5 rooms requested

This list is kept sorted on the server and deltas are communicated to the client as a series of delta operations (e.g INSERT,DELETE,UPDATE). Multiple non-overlapping windows can be requested and the windows can also change their size dynamically.

This work is still currently in the pre-MSC stage as it's a huge undertaking, but an early, runnable, implementation lives at the sync-v3 repo. This works by setting up a proxy sync server which will make /sync requests to a target homeserver, and storing the data in a useful form for sync v3 queries. It then exposes the sync v3 API which can then actually show you real data from your account.

 +---------+                     +--------------+                                 +----------------+

 | sync v3 | <-- sync v3 API --> |   sync v3    | <--- normal /sync requests ---> | Any Homeserver |
 | client  |                     | proxy server |                                 |      Impl      |

 +---------+                     +--------------+                                 +----------------+

The proxy server also hosts a barebones web client which talks sync v3 at http://localhost:8008/client/ - to get started just point the proxy server to any HS and then paste in your access token to the web client. The web client is just a test jig so only has a read-only view of your account and lacks any scrollback, only showing live data. IMPORTANT: generate a new access token before using this client. Do NOT use the token from an existing client (e.g Element web) or else you risk being unable to decrypt E2EE messages.

Intrepid people are encouraged to run a server and see how fast sync on their own account could possibly be in the future. Note that the first sync will be slow as it has to fetch all the user's data via v2 /sync.

I know itโ€™s going to be a while before this finally gets into our hands as users, but Iโ€™m looking forward to it!

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:

FCP is currently paused while everything that isn't currently implemented in the wild is removed for a future MSC.

New MSCs:

  • There were no new MSCs this week.

Spec Updates

This week the Spec Core Team has been marching ahead with getting the matrix-doc repository ready to start building new spec releases. Big props to Rich, Travis, Alexandre and others for charging ahead with it!

Otherwise, the Spec Core Team has been busy reviewing MSCs as can be seen from the above list of MSCs that have entered FCP this week. Particularly exciting is to see MSC2674 (event relationships, aka the stuff that powers message edits and reactions) coming close to merging! It's been a long time coming. Thanks to Bruno and everyone else who's reviewed it so far.

Random Spec of the Week

The random spec of the week is... MSC3214: Allow overriding m.room.power_levels using initial_state.

MSC3214 looks like an MSC that's been somewhat abandoned by everyone involved... But since there are already implementations out in the wild, it may be a simple one to get through!

2021-10-22-y3wpB-stacked_area_chart.png

Dept of P2P ๐Ÿ‘ฅ

P2P Matrix

Neil Alexander told us:

This week we have spent some time optimising the Pinecone overlay routing protocol. We have added cryptographic signatures to the bootstrap and path setup process for stronger verification and have also reduced the amount of protocol maintenance traffic.

We are also finally starting to document how Pinecone works โ€” you can find these living documents on the Pinecone repository wiki and many new comments have been added throughout the source code too.

We have also released build 88 of the P2P demo today for iOS and Android. These demos are forks of the Element app with an embedded Dendrite homeserver and Pinecone-based federation. Users can communicate with each other locally on the same Wi-Fi network, direct between devices in close proximity using Bluetooth Low Energy and globally by using internet peers!

Dept of Servers ๐Ÿข

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

We released Synapse 1.45 this week!

This is the first release to support oEmbed autodiscovery, leading to richer link previews for many sites. See the release announcement for an example.

We also believe that we've finally fixed stuck messages! A race condition would occasionally prevent your sent events from syncing back down to all of your clients. This caused messages to look like they were stuck at the bottom of the room, waiting to finish sending, even though other users would receive and see them normally.

Please shout loudly in this GitHub issue if you see a stuck message on a server running 1.45 or later. ๐Ÿ˜‰

We've merged a further 9 pull requests to Sydent, making even more modules pass mypy --strict. We're not quite all the way there, but we're close! Most of the "leaf" modules are done, with the bulk of the remaining work to be done is on sydent.http. This is trickier because it's more exposed to the machinery of Twisted, but we'll get there.

We're already much more confident working in Sydent, and hope to apply these lessons to Synapse soon.

(Well, one lesson that won't apply is that type hints are especially valuable in codebases you don't touch as often... but we have no intention of slowing down on Synapse any time soon!)

Yes please, donโ€™t slow down!

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace offered:

This week too sees some Helm Chart updates, taking matrix-synapse first to 1.45.0 and then to .1 - as well as improving support for using existing secrets in a new deploy.

Dept of Bridges ๐ŸŒ‰

Heisenbridge

hifi announced:

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

Release v1.3.0 ๐Ÿฅณ

  • SOCKS proxy support

  • CertFP authentication support

  • WHOIS command and reply formatting

  • Basic CTCP support (optional, default off)

  • Compatibility/workaround for Dendrite and Conduit registration configuration

  • README has been improved

Big ticket items this time around for privacy concerned users are connectivity improvements when using Tor/VPN with built-in SOCKS proxy support and CertFP authentication. Some WHOIS and CTCP has also been thrown in the mix for good measure!

Lately there has been quite a lot of people who are testing Dendrite or Conduit which has led to recurring support issues around some limitations they currently have with appservices. Heisenbridge now supports using and generating a "compatible" registration file (--generate-compat) for them that shouldn't be needed in the long run. I hope to drop this feature as soon as possible! ๐Ÿป

While Heisenbridge somewhat intentionally has very little documentation due to not having a refined UX yet the README has been updated with some frequently asked questions about installing and configuring it to the point you can talk with the appservice bot. A self-contained docker-compose setup has also been added to the repository to help testing it without installing anything on your system.

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

Thanks!

Dept of Clients ๐Ÿ“ฑ

NeoChat

Carl Schwan offered:

Last Saturday we had an improvised NeoChat mini development sprint in a small hotel room in Berlin in the occasion of the 25th anniversary of KDE. In a good KDE tradition, Carl spent this time on improving NeoChat settings. He ported both the NeoChat general settings and the specific room settings to the new Kirigami.CategorizedSetting component. Tobias fixed a lot of papercuts and now the power level should be fetched correctly, we show the number of joined users instead of joined+invited users in the room information pane, the user search is now case insensitive. Nicolas focused on fixing our Android build by making the spellchecking feature compile on Android.

Aside from the mini-sprint, we also made a few more improvements during the week. Tobias fixed the flicking of the timeline on mobile and Carl made it possible for the user to resize the room information drawer.

2021-10-22-Jmghv-image.png

2021-10-22-NnIDk-image.png

2021-10-22-DQ-Cx-IMG_20211016_231939.jpg

Nheko

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

Nico (@deepbluev7:neko.dev) said:

Thulinma added device management to Nheko. You can now also view your devices, that don't support encryption, delete devices, rename them and see their ip address. Additionally there were a few refactorings and code improvements. Most notably blurhashes should now decode twice as fast. Additionally there were a few small fixes to displaying hidden space rooms (we were checking the wrong power level, so in some cases fewer rooms got shown in a space, if they only had a parent set). That's all, was a busy week with lots of lasers!

Element

Updates from the teams:

Web

  • Finalised our team goals of reducing prioritised defects, shipping threads MVP, better release automation and getting posthog analytics live!
  • Working on clarifying the threads MSC in response to feedback
  • Working on user prompts for analytics
  • Fixed bugs in RTL text and code block rendering
  • Released Element Web 1.9.3RC

Spaces

  • On iOS, weโ€™ve been implementing support for creating Spaces, implementing the screens using SwiftUI.
  • Weโ€™re also making good progress on iterating on the info architecture of the app, to make Spaces more intuitive. Expect more things soon!

iOS

  • Publish release 1.6.6 containing matrix.to display behavior improvements on timeline and other improvements made this week.
  • Improve matrix.to redirection in timeline, pushing views instead of replacing current ones
  • Improve settings UI
  • Allow images to be pasted from Safari rather than their URL
  • Implement message forwarding
  • Improve wellKnown parsing
  • Fix bugs and crashes

Android

  • Release candidate 1.3.4 has been prepared Wednesday and tested by the community during a testing session in the afternoon. It adds presence support for DM, and Android Auto support has been restored. You can find out more about the next testing session at #element-community-testing:matrix.org
  • We are preparing a version 1.3.5 which fixes small regressions and a bug in the Room settings.
  • Migration to Hilt (Dependency Injection library) is nearly there, PR is in review.
  • Notifications management has been rework, a bunch of issues has been fixed, this will be for release 1.3.6
  • We have started to work on Threads

Crypto Team:

  • UISI Hunting: Investigations and Auto UISIs reports lab option, UI improvement work started
  • Web: Device Trust view improvement
  • Next gen
    • Corroded-Android: Backup support
    • Messaging Layer Security

Fractal

Not only is Fractalโ€™s Julian featured in this weekโ€™s Matrix Live, he also has been very active in the month since our previous report. I wonโ€™t list here the very long list of merged merge requests, but the most noteworthy changes he brought are:

Contributions from others include enterprisey fixing the backtrace setup and simplyfying some error management code, Marco Melorio adding a separator in the UI to adapt to a change in libadwaita, Rachit Keerti Das fixing an incorrect link to install from Flathub, and Maximiliano cleaning up our dependencies and application name in code.

Dept of Ops ๐Ÿ› 

time-to-matrix

Aine announced:

a small, weird tool that just works.

Hey, TWIM. Did you ever face a situation where you need to run any command prefixed with time command-name and get a ping in matrix room when it's done? No? Well, doesn't matter, now you can do that with one small command!

That thing called time-to-matrix (binary name: ttm) it works like time command-name and sends results to matrix room. Yes, pretty simple. Now you can use it ๐Ÿ˜€

Source code, Releases for all major OSes and architectures

Dept of Services ๐Ÿš€

Element One

Rick reported:

Element One is here! Weโ€™re giving TWIM a sneak preview of the new Matrix hosting service from Element in advance of the official launch next week. Element One* is a consumer-focused hosting option which gives you an individual Matrix account on our shiny new one.ems.host homeserver (with a matching Element Web at one.element.io). However, in addition to being a fast, snappy Matrix account, it also comes with unlimited personal bridging to Whatsapp, Signal and Telegram thanks to mautrix-whatsapp/signal/telegram!

Hopefully this is good news for those of you who have chats with friends and family on these other platforms, as you can now chat with them in one place from Element without having to mess around having to run your own bridge - and accounts cost just $5 per month.

Right now this is a (relatively) private / limited beta intended for the TWIM and EMS inner circle, and we'll be announcing more generally in the next few days / weeks. So, if you are interested, please check it out and sign up at https://ems.element.io/element-one :)

*not to be confused with Hydrogen

Dept of Bots ๐Ÿค–

matrix-review-bot

valere reported:

Hello! What about having your Android & iOS customer reviews posted in a Matrix room as soon they happen?

I just released matrix-review-bot

Get your latest AppStore & Playstore review directly in your fav matrix room.

Mother Miounne

Aine offered:

Mother Miounne v1.1.0 v2.0.0

Good news - Miounne got new release with a lot of small neat changes (and even some features, yes-yes) and binary releases for major platforms and architectures

Good/bad news - e2e integration was removed, because I failed to implement to "well, usable" state ๐Ÿ˜ญ

So, go check out releases, changelog and don't forget to pull new docker images.

You asking what's that about? Mother Miounne is "backoffice" of etke.cc service.

I'm too sad to add good jokes and brief descriptions, so just join the #miounne:etke.cc room to find more

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

SeaGL

Ben Cotton (he/him/his) told us:

SeaGL (Seattle GNU/Linux Conference) will be held online November 5โ€“6, powered by Matrix. Join our freeโ€”as in freedom and teaโ€”grassroots technical summit. No registration required! This year's theme is "on cloud nine", in recognition of our ninth year.

Keynote speakers are:

  • Marie Nordin

  • Christine and Morgan Lemmer-Webber

  • Elana Hashman

  • Cory Doctorow

We have over three dozen other great talks on free and open source software, hardware, and culture. Plus some fun social activities. Volunteers are still needed if you want to lend a wing!

FOSDEM

Matthew reported:

FOSDEM says https://twitter.com/fosdem/status/1451475324684980241

Final Thoughts ๐Ÿ’ญ

Room of the week

timokoesters announced:

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

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


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

"The ancient board game known as Go."


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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1eightballde.luxe524
2trolla.us592
3envs.net646
4synapse.yarnoush.be893.5
5matrix.markshorten.co.uk1008
6etke.cc1022
7wallace.sh1414
8mchus.pro2476
9matrix.liamgooch.com2843
10jeroenhd.nl3032

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1bwitch.me379
2sspaeth.de455
3grin.hu665.5
4matrix.awesomesheep48.me1079
50x1a8510f2.space1099

That's all I know ๐Ÿ

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

This Week in Matrix 2021-10-15

15.10.2021 20:03 โ€” This Week in Matrix โ€” Alexandre Franke
Last update: 15.10.2021 18:57

Matrix Live ๐ŸŽ™

Demo time! Threads and SwiftUI on the agenda this week!

Dept of Spec ๐Ÿ“œ

Spec

anoa told us:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

The actual spec changes for MSC2844: Global version number for the whole spec have now been merged [one, two]. You can take a look at this section of the unstable spec to now see an explanation of the Matrix spec version numbering scheme.

Additionally, take a look at the Client-Server API, where all current APIs have been bumped from /r0/... to /v3/.... See this bit of MSC2844 for the rationale behind this change.

The pieces are starting to fall into place for the upcoming Matrix 1.1 spec release!

Random Spec of the Week

The random spec of the week is... MSC1840: Typed rooms!

This is a concept that was used in the Spaces MSCs to allow servers and clients to denote a room as a Space vs. a typical Matrix room (and set up their UI appropriately). Only the type for a Space has been specified so far, but there are many different applications room types could serve; for example profile rooms!

This MSC aims to create a general concept for a typed room, whereas future MSCs would identify those types and their meaning.

Dept of Servers ๐Ÿข

Synapse

callahad told us:

Happy Friday! The Synapse team has been sorting out what we hope to accomplish before the end of the year, and it's looking like our main focus will remain research and experimentation towards making large room joins go very fast. We don't yet see an incremental path from where we are now to where we want to end up, so progress will likely come as a few discrete milestones, rather than a gradual acceleration over time.

Aside from room joins, we expect to spend a good bit of time time on bug fixes and preventative maintenance. For example, we hope to get Sydent passing mypy --strict by this time next week. Doing so would have prevented recent production issues, including one which caused phone number verification to silently fail.

Preparations for releasing 1.45.0 continue apace; I'm looking forward to telling you about it next week!

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace told us:

And as has come to be routine for TWIM, this week too has seen an update of my Helm Charts - with element-web being updated to 1.9.2

Dept of Bridges ๐ŸŒ‰

matrix-appservice-pstn

chandi reported:

let's bridge everything! Have you ever wished you could make and receive phone calls with matrix?

The beginnings of a matrix <-> SIP bridge are done :) If you can imagine to live with bugs or even help with the development yourself, feel free to give it a try! :) https://github.com/alangecker/matrix-appservice-pstn

Discussions: #matrix-voip-bridging:kb1rd.net

2021-10-15-4j7h3-screencast.gif

Dept of Clients ๐Ÿ“ฑ

FluffyChat 0.42.0 has been released

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

krille said:

This release fixes several bugs and makes E2EE enabled by default.

  • feat: Enable E2EE by default for new rooms

  • feat: Display all private rooms without encryption as red

  • feat: New design for bootstrap

  • feat: New design for emoji verification

  • feat: Display own MXID in the settings

  • feat: More finetuning for font sizes

  • chore: Updated translations (Thanks to all translators!)

  • fix: App crash on logout

  • fix: Temporary disable sign-up for matrix.org (Currently gives "500: Internal Server Error" while FluffyChat should send the same requests like Element)

  • fix: Implement Roboto font to fix font issues on Linux Desktop and mobile

  • fix: QR Code scanning

2021-10-15-Ss6Yj-screenshot_20211014-173752.png

Nheko

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

Nico (@deepbluev7:neko.dev) offered:

Making steps towards stable E2EE, we have now implemented bootstrapping cross-signing on a new account. This allowed me to finally enable cross-signing on my Nico (nheko.im) account (which I intended to only use with Nheko). Thulinma also added a way to refresh the current device list as well as highlighting your current device in the device list, which should make it easier to recover, if a misscommunitcation with the server lead to an outdated device list. Meanwhile LorenDB has been plugging away on converting more dialogs to Qml and we merged like 3 converted dialogs!

2021-10-15-Exgkj-bootstrap.png

Element

Web

  • Released Element Web 1.9.2 featuring chat export, Spaces and E2EE improvements, updates to Electron 13.5.1
  • More progress on the client side of threads, published an MSC and started work on Synapse support
  • Fixed some bugs in registration, Windows icons, phone number confirmation

Delight team

  • On iOS, weโ€™ve been implementing support for pagination of the Space Summary API, to support larger spaces, as well as improving performance. Weโ€™ve also started implementing support for creating Spaces.
  • Weโ€™re also exploring larger changes to make to the layouts of Element on all platforms to surface simpler and more intuitive navigation all round and tackle some of the feedback we couldnโ€™t get to during the Spaces beta. Watch this space!

iOS

  • We failed to publish the app on the app store this week because of observed crashes. RC 1.6.5 is available on TestFlight. We should be able to release on the App Store on Monday
  • User auto completion has landed on develop
  • Message forward is in the horizon
  • Settings got lipstick by reviewing headers and footers
  • It is now possible to copy and paste an image

Dept of Widgets ๐Ÿงฉ

New Widgets: Spanners!

Can you believe we didnโ€™t have a dept. of Widgets yet? We do now!

Half-Shot told us:

Hi folks! This week I took a bit of time out of my day to create a new widget for Matrix. We have the concept of "Spanners" at Matrix where one person wants to take control of a resource, and they will say "I am taking the spanner". This prevents other people (verbally at least) from trying to use the resource at the same time.

For years we have been getting by with sending messages into Matrix, but no more! For now anyone can use the Spanner widget to set up a similar system in their room.

You can try this out now with /addwidget https://half-shot.uk/spanner?spannerName=YourSpannerName (although no promises about the uptime of half-shot.uk)

The repo can be found https://github.com/Half-Shot/matrix-spanner-widget.

You will need to ensure that all users who plan to use it must be able to send state events of type uk.half-shot.spanner. Otherwise, it should be ready to go!

Dept of Ops ๐Ÿ› 

Rager

I heard CLI tools are all the rage, so here is one!

janshai reported:

Rager is a CLI tool for matrix client developers to easily view and parse rageshake logs. It handles syncing (with many parameters to sync only the logs you want), searching through downloaded logs, and paging through any log on your device (with peudo-syntax highlighting to make it easier to understand), right from the comfort of your terminal. It has been in development for a few months (being used/tested by devs at beeper.com) but I feel like it's now in a good enough state to release for everyone else to use. If it's something that may help you, try it out and let me know if it works for you!

Get it here

Dept of Services ๐Ÿš€

Hingst

Andreas told us:

Hi everyone!

We believe that having your own homeserver should be easy and require little technical knowledge. That's why we launched Hingst, a privacy focused Matrix hosting service which takes care of (almost) everything for you.

Our goal is that our users spend no time whatsoever on maintaining the actual server so they can focus on what matters - chatting with friends and colleagues.

All servers are located in Sweden and of course they run entirely on renewable energy!

That's all for now. Thanks for reading :)

If getting your own homeserver was hinging on the availability of such a service, you donโ€™t have an excuse anymore!

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

Finnish Community Meetup

Cos offered:

First annual Finnish Matrix community meet is to be held 20.11 in Tampere, Finland. Infos and registration at https://mobilizon.be/events/5c9ce49d-83de-41d1-b824-8950293d3fd1

Berlin Meetup

Christian told us:

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

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

Dept of Guides ๐Ÿงญ

French User Guide

Henri Carnot announced:

Matrix user guide [French]

Hi !! I'm building a matrix user guide for my school. It is not finished yet, but feel free modify/repurpose it !

Preview : https://minitel.emse.fr/move-to-matrix/emse

source : https://gitlab.com/henri2h/move-to-matrix

The goal is to build an easy user guide which could be easily adapted to other matrix instances.

Final Thoughts ๐Ÿ’ญ

Room of the week

timokoesters offered:

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

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


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

"Everything related to chess."


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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maescool.be517
2boba.best530
3envs.net552.5
4trolla.us934
5almum.de1236
6spooks.cyou1319.5
7halogen.city1864
8matrix.markshorten.co.uk1970
9ewsandor.com2018.5
10diasp.in2408

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1conduittestfigyel.gq312.5
2sspaeth.de323
3envs.net421
4dendrite.thomcat.rocks701
5grin.hu744
6spooks.cyou790
70x1a8510f2.space869
8jae.su878
9matrix.awesomesheep48.me1533
10weber.world3921

That's all I know ๐Ÿ

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

This Week in Matrix 2021-10-08

08.10.2021 00:00 โ€” This Week in Matrix โ€” Alexandre Franke

Matrix Live ๐ŸŽ™

This week, I had the great pleasure of chatting with a lovely bunch from Element about Spaces. This feature just got out of beta and they tell us all about it.

Dept of Spec ๐Ÿ“œ

The Spec

TravisR offered:

Hello TWIM, it's me, not-anoa, again with your weekly spec update. I unfortunately didn't get a chance to figure out how to run the tooling which generates fancy graphs, but it looks like you'll have a more qualified person next week ๐Ÿ˜‡

This week we saw a couple new MSCs:

  • MSC3419 - Letting guests do more things (which is needed for things like full mesh conference calling)

  • MSC3429 - A room preview API. Turns out this is more or less a duplicate of another MSC, but has a different approach. Be sure to check both out ๐Ÿ™‚

We've also been making progress on trying to get the spec release out by formally specifying all the new global version numbering and new endpoint versioning (see this and this), and have been experimenting with how room versions are represented by the spec.

From page 6 of the open MSCs there's MSC2723. The MSC is relatively small, but solves a fairly important problem with forwarded messages in Matrix: where were they forwarded from? From a glance, it has minor technical feedback and could do with an implementation (psst: client authors, this should be easy and fit well into a North American Long Weekend project ๐Ÿ˜‡).

That's all I have for you today, but if I've missed something: sorry, and you should be in capable hands next week.

Dept of P2P ๐Ÿ‘ฅ

P2P Matrix

Neil Alexander said:

This week I have completely rewritten the Pinecone router with the aim of improving code quality and boosting performance. It now uses significantly less resources, making it much easier to simulate larger networks and using less battery power on mobile devices.

While there is still some work to be done to ensure the Pinecone network gracefully handles large-scale mobility events, protocol development is slowly progressing and we will soon be looking at how Matrix federation can be made more efficient by using routing intelligence from the overlay network.

If you have a passion for routing protocols and/or peer-to-peer systems, we're looking to hire engineers to work in the P2P Matrix space โ€” get in touch by emailing your resume to us!

We also have our very own P2P Matrix room where you can follow along with the latest discussions and also occasionally pick up experimental iOS and Android builds of Element with an embedded P2P-enabled Dendrite homeserver.

Dept of Servers ๐Ÿข

Synapse

callahad told us:

We released Synapse 1.44 this week! The release was mainly focused on bug fixes and internal cleanups. In particular, we've made significant strides toward enforcing static type annotations across several more Synapse modules, we continue to remove "magic" code from our configuration handler, and we've landed significant refactors to both the user directory and federated event authentication. These changes pay off significant technical debt, reduce Synapse's maintenance cost, and ease future bug fixes.

But that's not all. This release also includes performance improvements around JSON serialization, new capabilities for extension modules, and better metrics around cache evictions. See the announcement for more details.

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace said:

And for the regularly scheduled Helm Chart update this week; matrix-synapse has been updated to 1.44.0

Dept of Bridges ๐ŸŒ‰

Rocket.chat

Pascal reported:

Hi! Rocket.chat is working on a bridge with Matrix !!!! So nice ๐Ÿ˜Š

https://youtu.be/jBtBiUXLqAk?t=1691

matrix-appservice-irc 0.32.0-rc1

Half-Shot told us:

Hello one and all! We've got a minor-yet-MAJOR release candidate of the IRC bridge up for grabs. https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.32.0-rc1 is now based upon the 3.X matrix-appservice-bridge library, and so all the innards have been replaced with matrix-bot-sdk.

Please try it out, and the full release should be out next week.

Dept of Clients ๐Ÿ“ฑ

Element clients

Updates from the teams:

Web

  • Released Element Web RC 1.9.1 RC2, containing Spaces papercut fixes among other things
  • Threads is continuing to steadily progress
  • Cross signing bug fixes and usability improvements
  • Ran another community testing session, which has thrown up many suggestions for improvements to our onboarding experience

Delight team

  • Following the release of Spaces from Beta, we're fixing bugs and things which might have slipped through the cracks in the 1.0 release!

iOS

  • Released 1.6.1 with Spaces and URLs preview on the App Store.
  • RC1.6.2 is being built. This is mainly a maintenance release
  • Updated libs and tools dependencies
  • Improved Spaces performance

Android

  • Element Android 1.3.2 is getting released today. It adds support to Android Auto (thanks https://github.com/abaker !) and lots of other features and bug fixes. Full changelog will be here: https://github.com/vector-im/element-android/releases/tag/v1.3.2
  • The team is working on several tasks:
    • Cleanup the code managing the notifications. It should fix some related issues
    • Implement Presence support
    • Upgrade framework libraries, starting by Mavericks 2
    • Fix as many issues as possible

Quaternion

kitsune told us:

The first maintenance release of Quaternion 0.0.95 is here, plugging more HTML injections (quite limited this time), with tweaks in positioning of the timeline to really return to the message you last read before closing the room, colourful display names in the timeline and not just in the user list, and one particular crash fix for a case when you made a typo in your password but then did it right - only to see Quaternion falling down to pieces. The release notes, together with self-contained binaries, are in a usual place, the Flathub repo has a new Flatpak too - just go and update!

Cinny

ajbura said:

Cinny v1.3.2 got released this week. It fixes unwanted "Password don't match" error on register page along with small improvements in Public room modal and message input (Thanks to Empty2k12). We also released v1.3.1 last week which fixed unnecessary CPU usages on idle and infinite spinner after login.

Check it out at: https://cinny.in

Join the matrix room: #cinny:matrix.org

SchildiChat

qg said:

SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

Both the Web/Desktop and the Android variant have received a couple of new features during the last weeks, so it's time again to share some of the highlights with you!

Web/Desktop

The Web/Desktop variant has received plenty of love for the last few weeks, so best to list some of the bigger changes:

  • Added a setting for the room list style: you can now choose between "roomy" with big avatars and two-line previews, "intermediate" for a smaller avatar and a single line preview, or "compact" to get a tiny avatar and the room preview in the same line of the room name

  • Added a setting how to color usernames in the chat: either uniform, based on the MXID, or based on the user's power level (Android has this feature for some time already, too!)

  • Added a setting to not open automatically the most recent chat when switching spaces

  • Improved theme settings: you can now choose custom themes independently for both light and dark mode

  • Workaround for switching between light and dark mode together with the system on Linux

  • macOS builds are now signed

  • ... and many more (read the release announcements on GitHub or join our announcement room (#schildichat-web-announcements:matrix.org) to stay informed)

The following screenshot showcases the compact room list and user name color mode based on PL:

Schildichat

So take that, IRC style lovers! ๐Ÿ˜

Android

We added support for MSC2654 for server-reported unread counts. This means that we can now display the number of unread messages even for muted chats, if your homeserver supports it (synapse does)!

Feel free to join the SchildiChat space (#schildichat:matrix.org), and visit our discussion rooms!

Dept of SDKs and Frameworks ๐Ÿงฐ

Halcyon

gen3 said:

Hello! Halcyon is a Matrix bot library created with the intention of being easy to install and use. My goal is to lower the barrier of entry currently required to write and maintain a bot. I do not intend you to need a database, or have to juggle encryption keys.

With the initial release of the library we currently have:

  • A CLI tool for creating and revoking tokens

  • Hooks for new messages, message edits

  • Hooks for room invites, and leaving rooms

  • Sending messages as text, markdown, and HTML

  • Sending replies to messages

  • Ever improving documentation Please check out the example in https://github.com/WesR/Halcyon and join us over in #halcyon:blackline.xyz

jOlm

brevilo said:

Hi! Just a quick one: this week saw the first stable release of jOlm - Olm bindings for Java

libQuotient

kitsune told us:

This week has seen two maintenance releases of libQuotient - just after 0.6.10 went out, fixing an issue with invites not showing up, another issue with URLs that have unescaped double-hashes (coincidentally, matrix.to URLs to some IRC channels are exactly those). Those URLs are not quite following the RFC but are accepted widely enough to warrant a fix, and a new release. Get 0.6.11 from here (or better, just checkout the respective Git tag).

Dept of Bots ๐Ÿค–

Standupbot

Sumner said:

A few weeks ago, I posted about the standupbot that I wrote to help assist with creating and sending standup posts to a room. I'm excited to announce today that you can choose to interact with the standupbot using threads! Instead of asking you about each part of the standup post individually, it creates threads for each of the parts that you can fill in. Your replies get added to the standup post like before, but it's a bit more interactive of a process. Here's a picture of how it looks (ignore all the display bugs due to Element).

2021-10-08-HVxe0-thread-interaction.png

If you are interested in learning more, the source code is here: https://sr.ht/~sumner/standupbot and you can join the development matrix room #standupbot-dev:sumnerevans.com

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

Running conferences on Matrix: A post-mortem of Ansible Contributor Summit

Gwmngilfen reported:

Following the Matrix-powered Ansible conference featured in TWIM-2, @gwmngilfen:ansible.im has written up some thoughts on how it was structured, how it went, and why he thinks it worked (spoiler! It worked quite well!).

2021-10-08-FLA8x-image.png

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

Newgrounds MVS (Matrix adVancement Server)

mr_johnson22 offered:

An (unofficial) Matrix server for the Newgrounds community.

Since I was pressed for time last week, I didn't go much in depth on how this server works. Here is a brief overview of its components:

  • https://app.ngmvs.one: A self-hosted Element Web with some theming tweaks, and the easiest way to visit the server.

  • https://matrix.ngmvs.one: the homeserver itself (Synapse). It has open registration, but only for Newgrounds Supporters (ie. patrons) via SSO logins with Newgrounds accounts. But Newgrounds doesn't have its own "Log in with Newgrounds" capability, so that leads me to the next component:

  • ng-saml-idp: middleware built on PySAML2 for using Newgrounds logins as a SAML2 Identity Provider. The code is tailored for my Synapse installation, but it can easily be tweaked to allow Newgrounds SSO logins to any SAML2-compatible service!

  • W-Bot: a Matrix appservice/bot built on mautrix-python that serves two purposes:

    1. Creates Matrix rooms for Newgrounds movie/game submission pages (ie. maps #portal_view_<ID>:ngmvs.one to https://www.newgrounds.com/portal/view/<ID>), and adds a widget containing the submission itself to these rooms (but only if it's a movie--widgets for games will only have a link)

    2. Restricts membership of any room it moderates to logged-in Newgrounds Supporters. Users without a :ngmvs.one account can authenticate to the bot via the "login" bot command, which lets them log into their Newgrounds account.

    Point 2 also means that anyone on the Matrix network can make a room that's restricted to Newgrounds Supporters. Just make sure the bot has a high enough power level to kick users!

    Public (and federation-accessible) instance is at @w-bot:ngmvs.one.

    (PS: The "W" stands for "double"--because of its job of "copying" rooms into Matrix.)

  • MVSX: a Firefox extension that, when visiting a Newgrounds movie/game submission page, puts a button in the URL bar that sends you to the Matrix room created for that submission by W-Bot.

This week's updates:

  • W-Bot now has the inviteme command to invite the issuing user to the invite-only space room for logged-in Newgrounds Supporters. (Users should be invited there automatically, but this command is for people who leave / reject invites to that space & want to re-join it later.)

  • The MVSX extension has been updated to allow joining rooms with Matrix clients other than app.ngmvs.one. Right-clicking the URL bar icon now shows a drop-down list of alternative clients, and lets you set which one to use by default (on left-clicks of the icon).

Discussion: #ngmvs-public-discussion:ngmvs.one

Final Thoughts ๐Ÿ’ญ

Room of the week

timokoesters offered:

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

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


This week's space is: #retro:nil.im

"Iโ€˜m in plenty of retro computing and gaming related Discords and got annoyed that there was no such thing on Matrix. So, I created a Matrix Space for all things retro computing and gaming, hoping there might be enough like-minded people on Matrix to build a community. There should hopefully be rooms for everything now, although a few are still missing room icons - that will come over the next days. Hereโ€™s to hoping that the retro computing community can also thrive outside of Discord ๐Ÿ˜."


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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1boba.best504
2trolla.us588
3maunium.net606
4aria-net.org716.5
5ziroh.be882
6maescool.be910
7fff.chat936
8thomcat.rocks1157
9envs.net1442
10wallace.sh2480.5

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1bwitch.me352
2sspaeth.de416.5
3spacedn.com588
40x1a8510f2.space887
5jae.su965
6pixelthefox.net1074.5
7matrix.awesomesheep48.me1145
8envs.net1930
9dendrite01.fiksel.info2305.5
10weber.world2993.5

That's all I know ๐Ÿ

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

This Week in Matrix 2021-10-01

01.10.2021 18:58 โ€” This Week in Matrix โ€” Thib

Matrix Live ๐ŸŽ™

This week in Matrix, William tells us about the State Compressor he wrote during his internship to reduce the size of Synapse's database, and so much more. William being a former intern of the backend team, who else than his mentor Brendan could lead the interview?

Dept of Spec ๐Ÿ“œ

The Spec

TravisR told us:

Hello! It is not-anoa here with the spec update this week, which unfortunately means no pretty graph of MSCs (sorry). I do however have some curated updates to the spec for you:

This week we saw a couple new MSCs get opened:

Though WIP, both are exciting steps towards much larger goals - looking forward to see how they progress! We also saw FCP finish on MSC3231: Token authenticated registration, part of Callum's GSOC project this summer - congratulations! MSC2918: Refresh tokens also finished FCP this week, making it a good time for clients to consider that access tokens might expire or appear in a different format in upcoming versions of the spec. MSC2582: Remove mimetype from EncryptedFile object was also merged to the spec - thanks Sorunome for finding the duplicated field which was duplicated!

Behind the scenes, the Spec Core Team (SCT) has been thinking about how we can release the spec as we've been talking about doing so for months. We're declaring a bit of a freeze on new things entering the spec for the time being, but that doesn't stop MSCs from completing FCP or being opened - they just might miss the v1.1 cut (sorry). Most of the work needed to release is deployment stuff rather than Matrix stuff, so the hope is is we can get it all worked out soon.

I don't have the random MSC script on hand, but I do have access to the MSC list and found WIP: MSC3030: Jump to date API endpoint. It's listed as work in progress, but is one of the MSCs I personally look forward to being accepted in time!

That's all for spec this week. I'm not sure about next week, but you might be stuck with me again. Maybe I can find those fancy graph tools in time...

Thanks a lot not-anoa, that was a great spec update!

Dept of Servers ๐Ÿข

Synapse

callahad reported:

Lots of work in preparation for Synapse 1.44 which is due out next week. Notably, we've found a few small regressions in rc1, so expect another release candidate on Monday followed by a formal release on Tuesday or Wednesday.

I look forward to telling you all about that, and our plans for Q4, next week. ๐Ÿ™‚

Now that's some teasing! I can't wait for next week!

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace told us:

This week too sees some Helm Chart updating, with element-web having been bumped to 1.9.0

Dept of Bridges ๐ŸŒ‰

Heisenbridge

hifi told us:

Heisenbridge is a bouncer-style Matrix IRC bridge.

Release v1.2.1 ๐Ÿฅณ

  • Use read receipts to track messages

  • Don't prefix all lines in relaybot mode (regression)

  • Fix formatter recursion context un-pillify (regression)

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

Thanks!

Slack bridge 1.9.0-rc1, with a PSA

Half-Shot said:

Hey folks, it's been a while since we released changes to the Slack bridge but here we are on our next RC. This one includes a few new things, most notably:

  • The bridge now automatically invites users to private rooms if there is a message and they are not joined. (#613)

  • Update bridge to matrix-appservice-bridge 3.1.0 (#614)

Also, a PSA: If you were struggling to bridge your rooms to matrix while using the matrix.org bridge, this should now be fixed. An update made to the Slack APIs silently broke the oauth flow, which has since been fixed. This was a misconfiguration-gone-unnoticed in our Slack app configuration, so self hosters don't need to upgrade. The details are in https://github.com/matrix-org/matrix-appservice-slack/issues/617#issuecomment-932047990

Dept of Clients ๐Ÿ“ฑ

Nheko

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

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

While I am a bit busy at the moment, Nheko is getting a lot of valuable smaller contributions:

  • Updated the emoji pickers to Unicode 14, so that you can properly troll people.

  • Pasting images should now work properly again on Windows and macOS, including pasting SVGs!

  • The help and version command line parameters now work properly, even if an instance of Nheko is already running.

There has also been a lot of progress on the translations! We just cracked 50% translated, but since that includes a lot of languages with only a few percent, this is actually much more than it sounds! We actually have 8 languages with over 90% translations now. If you speak one of the languages at 70% or so, any help translating the remaining bits is very much appreciated. You can easily translate without an account here: https://weblate.nheko.im/projects/nheko/nheko-master/#translations If you want to translate without having to rely on the upvote mechanism, feel free to ask for translation permissions directly in #nheko:nheko.im. That is also the right room to ask questions about the translation process or translations themselves.

Nheko is also participating at Hacktoberfest this year. Translations done using the webinterface won't get counted for that though, you would need to submit a pull request manually for that. If you always felt like contributing to Nheko would be fun, but you had no reason to, now you can do it to let someone plant a tree for you (or get a T-shirt)!

That's all, I need to get back on my train!

Hydrogen

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

Bruno said:

Hydrogen saw a few bug fixes (0.2.14, 0.2.15 and 0.2.16) this week again, and also gained the possibility to recover from low-storage scenarios where the browser would clear indexedDB.

One of the bugs fixed might have caused a timeline corruption, so when you get the 0.2.16 update the history cache will be cleared and you'll notice a bit of delay as you do an initial sync again.

Aside from working on Hydrogen as a standalone app, I'm also making it easier to embedded in other projects. More info to come on that!

We've also had a priority planning this week, which spawned an updated backlog. Have a look if you're interested what can be expected next (although be aware that the backlog has proven volatile in the past ๐Ÿ™‚).

Hydrogen embedded! I'm looking forward to that. Great work Bruno!

Element Clients

Delight team

  • Released spaces out of Beta on Web and Android..!
  • Following through on the beta release of Spaces - fixing more bugs and polishing on all platforms.

Web

  • Released Element Web 1.9.0 with Spaces enabled
  • Threads
    • Working with the Synapse team to work out what backend support will be required for threads
    • Steadily improving the UI
  • Added the ability to expand truncated quotes in replies
  • Cross-signing bug fixes

iOS

  • We refrained from releasing 1.6.0 to the App Store because of regression issues reported by TestFlight users. Huge thanks for that!
  • 1.6.1 (Spaces and URLs preview) with all the bug fixes is being reviewed by Apple. It should be on the App Store on Monday
  • The implementation of user mentions in the composer has started (in SwiftUI!)
  • Last message types displayed in room lists have been aligned with other platforms
  • Tweaks to URL Previews and Contacts Access
  • New app navigation code architecture is coming. It will be possible soon to navigate through permalinks without losing rooms previously visited
  • RoomSummary storage in CoreData is still in progress

Android

  • Element Android is now in the 500k - 1M downloads category on the PlayStore!
  • Element Android 1.3.1 has been released on Thursday on the PlayStore
  • Now we are working on fixing issues, improving performance, and upgrading some important libraries.
  • The Presence support has made good progress too, it will maybe be merged for the next release.

Dept of Bots ๐Ÿค–

matrix-email-bot

TravisR told us:

After 4 years, matrix-email-bot finally got an update. Now at v2, the bot has been rewritten using TypeScript and matrix-bot-sdk (farewell, js-sdk from 2017). It still requires manual setup and the behaviour overall should be the same as before, though the amount of testing is somewhat minimal - please complain in #email:t2bot.io if something goes wrong.

The bot also now supports encrypted rooms out of the box, including on the t2bot.io instance. Check out t2bot.io/emailbot for information on how to get the bot set up in your room.

The full changelog is available on the repo: https://github.com/t2bot/matrix-email-bot/releases/tag/v2.0.0

Useful to watch a security mailing-list from the comfort of a Matrix room!

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

Newgrounds MVS (Matrix adVancement Server)

mr_johnson22 announced:

An (unofficial) Matrix server by and for the Newgrounds community.

This is a Matrix server with membership restricted to Newgrounds Supporters. Newgrounds is an independent arts & entertainment site that has been around for over 20 years, and I felt that its spirit of independence is a perfect match with the openness of Matrix!

The most notable feature of the server is comment rooms for Newgrounds submissions. Unlike other content-sharing sites, Newgrounds submissions don't have comment sections, but review sections, which let you post a single comment (and optional rating) for a submission. This encourages reviews to be focused on providing constructive feedback instead of being a place for off-topic discussions. With that said, open comment systems are nice too, so this Matrix server provides it! Simply visit #portal_view_SUBMISSION_ID:ngmvs.one to view!

These comment rooms are world-visible, but (at least for the time being) only Newgrounds Supporters may join these rooms & post comments in them.

To help along with this, I made a Firefox extension to make joining these rooms a breeze: NG MVSX. Simply view a Newgrounds submission page, and click on the icon that appears in your URL bar!

Code for all components is open-sourced on GitLab.

This is all very new, so things might break! If they do, tell me in #ngmvs-public-discussion:ngmvs.one

Final Thoughts ๐Ÿ’ญ

LorenDB remembers us:

if you need an excuse to contribute to Matrix... It's Hacktoberfest! Get hacking!

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net424
2mangwiro.net508
3matrix.kalleeen.fi555
4trolla.us567.5
5maunium.net667.5
6maescool.be733.5
7rollyourown.xyz751.5
8smeken.nl816.5
9aria-net.org861.5
10conduit-test.searx.monster890

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1bwitch.me277
2pixelthefox.net619
3jae.su869
4matrix.awesomesheep48.me1858.5
50x1a8510f2.space2677

That's all I know ๐Ÿ

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

This Week in Matrix 2021-09-24

24.09.2021 00:00 โ€” This Week in Matrix โ€” Thib

Matrix Live ๐ŸŽ™

Dept of Spec ๐Ÿ“œ

The latest in appservice proposals: Synthetic events

Half-Shot told us:

Hi folks, I've been let loose on more spec things: This time I'm looking at synthetic events. The goal with this proposal is to give appservices more visibility over the innards and actions of a homeserver. When a user registers, we want an appservice to know (perhaps to send them a little greeting, or to provision some resources) or perhaps you want to clear up bridge resources when the user deactivates their account.

The hope with this proposal is that it's going to set the foundations for services to be able to hook into and provide richer functionality based upon user actions outside of rooms. It might sound a little dry right now, but eventually I'm hoping this can be extended in lots of ways and potentially do away with per-implementation modules, instead writing services that work with all homeservers.

Please give the proposal some love/feedback :)

When asked if that was a specification change he drafted because of limitations faced when trying to implement a bridge, he said:

Yeah, so it's something I've been plotting for a while, but internally we wanted the ability to "act" based upon signups to a homeserver i.e. sending a welcome. In the past this has been implemented client-side in Element, but that has obvious caveats.

The traditional response has usually been to write a Synapse module, but I wanted to do something that could be used on other homeserver implementations and also not have to have it co-located with the homeserver, so the natural home for this kind of logic was appservices.

There are other things there too like logouts / deactivations which are good for erasing data on a service too. Generally I'm hoping it can be extended further once it's stable, for other use cases too

Spec

anoa announced:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

MSC3401 (Native Group Voip Signalling) has been receiving positive feedback over the course of the week. The MSC spells out how one would go about implementing native, decentralised group voice and video calls over Matrix without the need for a third-party service. This is the next step forward after the full-mesh group signalling work, as demoed in previous editions of TWIM, lands. Quite exciting stuff!

Otherwise there was another Spec Core Team retro this week. Discussion focused mainly on how to handle event types that not every implementation using Matrix may need (think pinned messages and how that might not be very useful for IoT networks...). Watch this space!

Random Spec of the Week

The random spec of the week is... MSC2666: Get rooms in common with another user!

This is actually already implemented and enabled by default in Synapse, believe it or not. But no clients have support for it yet (there is an outstanding matrix-react-sdk PR...).

This is a pretty cool feature in my opinion, any client want to be the first?

2021-09-24-spec.png

MSC3401 looks like there's a lot of work going on on the native VoIP side. I can't wait to see what the future holds!

Dept of Servers ๐Ÿข

Synapse

callahad said:

This week we released Synapse 1.43! This mainly contains internal changes, including those in preparation for Spaces leaving beta, but it's worth calling out that this version of Synapse now uses the MSC3244: room version capabilities API to ask clients to prefer room version 9 when creating restricted rooms.

Support for room version 9 was introduced in Synapse 1.42, so we'd strongly encourage administrators to upgrade.

Perhaps more notably for Synapse developers, we've spent quite a lot of time over the past few weeks improving the SyTest suite of integration tests. Several of the tests had race conditions which would cause them to occasionally fail when testing a multi-worker deployment of Synapse. These flakey tests have plagued our continuous integration pipelines, and are finally being fixed.

The long term plan is still to transition to Complement (written in Go) and away from SyTest (written in Perl), but we still need to ensure that SyTest is reliable in the meantime.

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace offered:

This week - like all weeks - brings some Helm Chart updates, with matrix-synapse being updated to 1.43.0.

The chart store has been redone to track multiple versions now too, so older versions of the charts will stick around for a while.

Ananace always answering the call on TWIMday!

etke.cc

Aine announced:

etke.cc now offers hosting options (and some more stuff)

Hi there, Didn't post updates about the etke.cc service for a while. If somebody not familiar - we setup and maintain matrix servers (based on awesome spantaleev/matrix-docker-ansible-deploy)... and setup VPN... and DNS recursive resolver, and... AND!!!! Provide hosting, yes. So, starting today that's available for everyone (we offer it for some time in "well, you know, we don't provide hosting, but if you want it so hard..." way and it works good)

Even with that update (literally the most requested thing, was in every third order we got), provided hosting considered as your own server, the only difference that you don't pay hosting provider directly, but through us. So, you get root access to the server and we treat it as any other customer's infrastructure

Join #announcements:etke.cc room and say hello in #discussion:etke.cc

Dept of Bridges ๐ŸŒ‰

Heisenbridge

hifi offered:

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

Release v1.2.0 ๐Ÿฅณ

  • Message formatting (from HTML to text) has been drastically improved

  • CTCP replies are now shown correctly but still ignored

  • Mentions/pills always honor room nick

  • Plumb notices don't loop around anymore

  • Self replies don't prefix with own nick

  • Single line truncation works when max lines is 1

  • Multiple fixes to displaynames or messages containing control characters leaking to IRC

  • New dependency: mautrix-python

  • Minimum Python version requirement has been bumped to 3.7

I've also started releasing source archives as GitHub releases for distribution packagers and the project is published to PyPI to have more installation options.

matrix-docker-ansible-deploy has also been updated with the new release, thanks again Slavi ๐Ÿป!

Thanks!

What improvements did hifi bring to the formatting you may ask? I asked, and hifi answered:

the fallbacks are inconsistent and usually are markdown which is a lie ๐Ÿ˜… replies and mentions are completely all over the place in the fallback in addition to being markdown the unformatted html is now something in between and doesn't do code blocks at all because those ticks are just noise on irc it tries to look like more that you pasted long text rather than sending markdown

That's very considerate for IRC user, thanks hifi!

Dept of Clients ๐Ÿ“ฑ

FluffyChat 0.41.0 has been released

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

krille said:

This release features a lot of bug fixes and the new multi account feature which also include account bundles.

All changes:

  • feat: Multiple accounts

  • feat: New splash screen

  • fix: Password reset

  • fix: Dark text in cupertinodialogs

  • fix: Voice messages on iOS

  • fix: Emote settings

  • chore: update flutter_matrix_html, Matrix Dart SDK and other libraries

  • chore: Update to Flutter 2.5.1

  • chore: Updated translations

2021-09-24-7-coe-screenshot_20210919-165213_trebuchet.png

Multiple accounts and voice messages on iOS, in a single release, no less! Fluffychat is not only cute but also powerful.

Quaternion

kitsune announced:

After 2+ years of development, Quaternion makes a leap from 0.0.9.4 all the way to 0.0.95. The release notes list some key improvements: reactions, Markdown, revamped timeline, user profile dialog and a lot of other things. Itโ€™s the same small and fast client that blends nicely into your desktop environment, it just got much better. Go and get it!

Congrats on the release, kitsune!

Element Clients

Delight team

  • Weโ€™re testing & polishing Spaces, releasing them out of beta in the upcoming release cycle next week!
  • On iOS
    • Weโ€™re anticipating some performance issues on a very small number of accounts which participate in a very large number of rooms. After trying the next release, if this affects you, please let us know as itโ€™ll help inform whether we cut an off-cycle hotfix or prep changes for the next release.
    • iOS doesnโ€™t support pagination in the Space Summary API yet, so will only return the first 50 rooms in large Spaces when browsing. Support for this is planned for the following release.

Web

  • Released Element Web 1.8.6 RC2.
  • Fixing bugs and cosmetic issues with our Threads feature, currently in Labs.
  • Cross-signing bug fixes.
  • This week we Ran our first community testing session on 1.8.6 with members of the community. We were very pleased with how this went and intend to continue the sessions. You can help making Element even better by participating in our fortnightly testing sessions. Join #element-community-testing:matrix.org, and learn how to make the most useful feedback

iOS

  • The RC 1.6.0 with spaces is being reviewed by Apple
  • Element iOS requires now iOS 12.1 minimum
  • URL preview and voice message refinements
  • SwiftUI templates have been merged

Android

  • The RC 1.3.0, with Spaces, will be prepared today.
  • We have started to work on Presence
  • We are still working to improve the overall performance of the application and the SDK
  • Also we are doing lots of maintenance on the whole code base, and we are improving the CI.

Hydrogen

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

Bruno told us:

Multiple (0.2.12 & 0.2.13) bugfix releases this week for timeline and sync issues, and also some minor UX issues. Get them while they are hot!

Dept of Ops ๐Ÿ› 

synadm is the Synapse admin CLI

jojo offered:

A little synadm release went out this week. Thanks a lot to @govynnus for contributing "Registration token management", it's available as a new subcommand regtok. Also some tiny improvements here and there were brought in to make admin experience even more convenient.

Have a look at the release notes: https://github.com/JOJ0/synadm/releases

PyPI: https://pypi.org/project/synadm/0.31/

Upgrade: https://github.com/JOJ0/synadm#update

Those are the same registration tokens GSoC intern Callum implemented and told us about in this Matrix Live episode.

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

Ansible Contributor Summit 2021.09

cybette announced:

Ansible Contributor Summit 2021.09 is happening next week! It will be held over 2 days, on Tuesday September 28 and Friday October 1, from 13:00-21:00 UTC, and will be held on the Matrix platform.

The Ansible Community has recently adopted Matrix as an official chat platform and this is our first Matrix-powered conference. Feedback welcome! You will need a Matrix account to participate in the conversations. For more information, please see Communication - Real-time chat and the Ansible Community Matrix FAQ.

Join the Ansible Social Room anytime before or during the event and say hi! During the presentations, join the Main Conference Room to participate in the discussions. We will also have a session on How we are rolling out Matrix to the Ansible Community.

If you're interested, check out the details and register on Eventbrite. We look forward to seeing you on Matrix at the Ansible Contributor Summit!

Gwmngilfen added:

there's a mix of stuff going on to try out, we have hack sessions on Tues that may use the embedded Jitsi etc, and talks on Friday that will be more presenter/spectator

2021-09-24--BlOo-Contributor_summit_202109_banner.png

It's exciting to see an organisation holding an online conference on Matrix!

Gwmngilfen also promised:

I will blog about the setup as a post mortem

We count on that, others are interested in this kind of set-up too!

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net440.5
2trolla.us540
3boba.best551.5
4matrix.vilni.space580.5
5aria-net.org928
6yfe.re943
7wallace.sh1414
8here.in.ua1490
9tchncs.de1531
10nordgedanken.dev1768

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1here.in.ua295
2dendrite.nordgedanken.dev305
3sspaeth.de484
4weasy-is-my.name537
5spacedn.com684.5
6jae.su760
7kath-zollern.v6.rocks1028.5
8matrix.awesomesheep48.me2165
90x1a8510f2.space3030
10weber.world3885.5

That's all I know ๐Ÿ

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

This Week in Matrix 2021-09-17

17.09.2021 00:00 โ€” This Week in Matrix โ€” Thib

Matrix Live ๐ŸŽ™

We've been chatting with Denis about the vulnerabilities disclosed by Element this Monday.

Dept of Spec ๐Ÿ“œ

Spec

anoa said:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

If MSC2918 above is giving you feelings of dรฉjร  vu, don't worry. It already had FCP proposed, but due to a resolved concern being incorrectly processed by mscbot on github, a new FCP proposal was carried out.

In other news, MSC3381 (Polls - mk II) receive a fair amount of attention this week. It implements inline polls via a new m.poll type and makes use of the concept of extensible events. Do check it out if you're interested in voting through means other than message reactions!

Otherwise Alexandre Franke and myself will be looking at cleaning up the CI of the matrix-org/matrix-doc repo next week, as well as continue to move the infrastructure for the new spec release forwards.

Random Spec of the Week

The random spec of the week is... MSC1235: Proposal for Calendar Events.

This one is entirely new to me, and has some slight overlap with some work for MSC2762: Allowing widgets to send/receive events, where we were thinking about how a widget could act as a calendar using Matrix rooms and events as a calendar backend.

The more you know ๐ŸŒ 

2021-09-17-spec.png

Dept of Servers ๐Ÿข

Synapse

callahad said:

The Synapse team is busy gearing up for 1.43.0 next week, which will make room version 9 the default for newly created restricted rooms, among other things.

We've also been doing quite a lot of work on Sydent. Notably, last week's 2.4.0 release introduced a few regressions which have been resolved in subsequent point releases. The one-shot case folding migration script for Sydent is still performing unexpectedly slowly; look for that to be resolved soon.

As the end of the year approaches, now is a good time to ensure you're ready for the deprecation of PostgreSQL 9.6 (November) and Python 3.6 (December). Do you have plans to upgrade to Pg 10 and Py 3.7 or newer? If not, there's no time like the present! ๐Ÿ—“

Lastly, Hacktoberfest 2021 is less than two weeks away! Many Matrix projects intend to participate, including Synapse.

With rooms version 9 as the default, it feels like Spaces are trying hard to escape beta!

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace said:

And yet again more Kubernetes Helm Chart updates this week, with element-web being bumped first to 1.8.4 and then 1.8.5. More improvements for the new ingress object in K8s 1.19 also landed.

Dept of Bridges ๐ŸŒ‰

Heisenbridge

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi told us:

Heisenbridge roundup!

Release v1.1.1 ๐Ÿฅณ

  • Message edits are now supported and use stupid context aware "compact enough" edit format (+ - *)

  • Media will be quarantined if you redact them and the bridge is an admin on the HS

  • Public media URL can now be overridden in control room if auto-detection fails

  • New plumbs respect the default member sync setting

  • ; is included in pill separators

Better message formatting coming up in v1.2.0, I hope ๐Ÿค”

matrix-docker-ansible-deploy has also been updated with the new release, thanks Slavi!

Thanks!

mautrix-googlechat

Tulir said:

mautrix-hangouts has turned into mautrix-googlechat. It's still in alpha stage, but text messages work in both directions, media from google chat works and threads from google chat are bridged as replies.

Dept of Clients ๐Ÿ“ฑ

Cinny v1.3.0: Initial Space support and notifications

ajbura announced:

Features

  • Cinny now support Spaces. They are still in early development phase but you can see nesting and pin/unpin to sidebar.

  • There're options to control room notifications now.

  • Also added notification badges to sidebar so now there will be a visual notification of any message in Home/People/Spaces in sidebar.

  • And after a month discussion also renamed 'Channels' to 'Rooms' so don't get confused on finding rooms all over.

  • James (we got new contributor ๐ŸŽ‰) added options to change avatar and display names. He also added support for uploading image by copy-pasting.

  • Edit message input now saves message on enter.

  • There now a toggle to view your password on login/register page.

  • And there will be an error message when client disconnect to server.

Bugs

  • Fixed scroll on login page.

  • Fixed notification badge color in dark themes.

Others

Find more about Cinny at https://cinny.in/

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

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

2021-09-17-NcMmi-cinny-space-release.png

Iโ€™m thrilled about Spaces support and I'm certain weโ€™ll hear more about Cinny shortly!

Fractal

Alexandre Franke got a bit carried away and announced in French:

La grande nouvelle de la semaine est lโ€™arrivรฉe du chargement de lโ€™historique, implรฉmentรฉ par Julian. Nous avons รฉgalement 2 nouveaux contributeurs :

Hydrogen

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

Bruno told us:

Released 0.2.9 & 0.2.10 this week with the main thing being improvements in preventing scroll jumps when resizing or loading more content in the timeline. Not 100% of scroll jumps will be solved with this release, but it should be improved a lot. Please report any issues you may encounter in this area! There were also a few bugs fixed, see the linked release notes. Try it out at hydrogen.element.io!

Beeper

Brad Murray offered:

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

We've been hard at work for the last few weeks and have a number of updates we'd like to share across all our clients and bridges.

For detailed release notes, check out our changelog here: https://beeper.notion.site/Beeper-Product-Changelog-cdbc7b68526d45f7b8ced8d4ba170c8d

All clients

  • New verification flow for Desktop, Android, and iOS! Logging in and verifying your session is now super easy to do. This is extra important for Beeper because we enable secure backup by default and require all users to set up a security key.

Desktop

  • Added the ability to view your rooms using our Smart Inbox that places the most important messages at the top, or with Classic which leaves the room in a reverse chronological order.

  • You can now select network by network which messages should appear in your inbox using our Inbox Filtering feature

  • We now have beta support for Custom CSS theming! Check out some of the themes that have already been made by the community. https://gitlab.com/beeper/beeper-themes

  • Previously we only supported DMs for Discord out of the box, but now you can pick and choose which Discord servers to sync into Beeper

2021-09-17-qoIOe-BeeperDesktop.png

iOS

  • A complete beautiful rewrite of the Room List using SwiftUI. The room list now looks much more native to iOS, while still feeling like Beeper.

Android

  • Redesigned room list: we started a redesign of our Android app and adopted the Material design language.

  • Integrated Android SMS bridge: Our previous Android Messages bridge was built on a shakey puppeteer foundation, so we rewrote it. Our new Android SMS uses native APIs to send/receive SMS. RCS remains elusively out of our grasp for now. We open sourced our bridge at https://gitlab.com/beeper/android-sms

2021-09-17-aqgDm-BeeperAndroidRoomList.png

Bots

  • Wrote a bot for managing Linear issues from Matrix: https://gitlab.com/beeper/linear-maubot

  • Wrote a bot to mirror chats into Chatwoot (an open source Intercom-like customer support platform): https://gitlab.com/beeper/chatwoot

Hiring

  • We are hiring! Come join many other Matrix community members who have joined the Beeper team including @tulir:maunium.net, @annie:beeper.com, @kilian:beeper.com, @spiritcroc:beeper.com and @sumner:beeper.com (who replied to our last TWIM job post and got a job at Beeper within a week!)

  • We are hiring senior iOS, Android developers and a DevOps/SRE (preferably in North/South America timezone)

Check out our Jobs page here https://beeper.notion.site/Jobs-Beeper-ff5da486daed462ebfc4b21eacc48cae. Apply via that page or just send a DM @eric:beeper.com

Nheko

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

Nico (@deepbluev7:neko.dev) reported:

Nheko got a lot more colorful this week. red_sky (nheko.im) and LorenDB finished up the jdenticon support. This means instead of the first character of a users display name, you now have the option to see a colorful avatar for users without an explicit avatar. You may have seen something similar on Github and other platforms. Currently this needs the qt-jdenticon plugin, which is a bit troublesome to install correctly, but we should improve that in the near future.

Prezu added a homeserver entry field to the room directory, making it much more useful (no history yet though). Thulinma added a /goto command to navigate to specific events or room and fixed scrolling to a specific event (in the past it only approximately scrolled to the right location). Symphorien added the Alt+A shortcut to navigate between rooms with active mentions and notifications. Additionally Priit completed the Estonian translation.

Additionally we released a security fix on Monday (together with a few other clients). We only released a fix for the master branch in Nheko instead of also the latest stable release. This confused a few people, but I hope my explanations made sense. The gist of it is:

  • On the master branch the local homeserver admin could force Nheko to forget which identity keys it saw for a user and as such insert a new device with the same device id, but attacker controlled identity keys and request old encryption keys from Nheko. In Nheko's case we had some protections against that, but if the server sent a device_list.left event for that user, Nheko would delete those protections. From our understanding this could not be abused over federation.

  • On 0.8.2 this can also be abused, but 0.8.2 does not implement key sharing completely. It can only forward the currently in use encryption key, not historical ones. As such the impact in our opinion was too limited to release a security fix. 0.8.2 does not allow you to send encrypted messages only to verified devices as such the homeserver admin could always insert just a different device to get access to new encrypted messages. Because of that we have a big warning in the README and when enabling encryption in 0.8.2, that one should not rely on the security of the E2EE implementation in it. We are aiming to have stable and secure E2EE in the next release (and so far it is looking good), but if you are using 0.8.2 I can only repeat, that it won't protect you from an attacker even without the disclosed security issue.

I hope this clears up some of the confusion. Feel free to visit us in #nheko:nheko.im and tell me, that I am wrong.

2021-09-17-QUWSp-clipboard.png

2021-09-17-aYmoK-clipboard.png

Element Clients

Delight team

  • Testing and polishing of Spaces.

Web

  • Released Element Web 1.8.4, with an important security fix
  • Released Element Web 1.8.5.
  • Improvements to replies.
  • Continuing discovery of threads.
  • Cross-signing bug fixes.
  • Weโ€™re going to involve the community in testing the product. More details to come early next week if you want to lend a hand!

iOS

  • Made another Release candidate 1.5.4 because of reported regressions. It will be available on the app store on Monday
  • URL preview moved out from LABS
  • New screen templates with SwiftUI, mocked data, unit and UI tests are almost there
  • There was a new version of OLMKit with the support of fallback keys
  • The crypto part of the SDK now support fallback keys, key backup cross-signing and device dehydration

Android

  • Released Element Android 1.2.2, with an important security fix
  • Working on improving the build time and the dependency management
  • Investigated performance issue on incremental sync
  • Start working to implement presence support

Dept of SDKs and Frameworks ๐Ÿงฐ

libolm

uhoreg told us:

This week saw two releases of libolm, a library that implements olm, megolm, and some other Matrix-related encryption functions. The main changes in version 3.2.5 are new functions for getting error codes rather than error strings so that implementations don't need to rely on string parsing to decode errors, and added support for fallback keys in the Android and iOS bindings. There were also improvements in error handling in the unpickling functions, and the shared library no longer exports certain private symbols, which caused problems when those same symbols were exported by other libraries. The initial implementation of this last change caused build failures in some environments, so version 3.2.6 was released to fix this.

Polyjuice Client

Polyjuice Client is a Matrix library for Elixir

uhoreg announced:

Polyjuice is a collection of Matrix libraries in Elixir.

Polyjuice ๐Ÿง™

A few from the wizarding world this week.

The Polyjuice project wades further into bad pun territory with a new project: Polyjuice Draughts, a set of checkers to verify that a homeserver is set up correctly and is accessible for clients and federation. It is similar in goal to the Matrix Federation Tester, but also checks client connections. It can either be run from the command line, or it can be used in a Matrix room, thanks to Igor, by sending a message of the form !servertest <servername> in a room that has an appropriately-configured bot in it. There is currently a bot in #synapse:matrix.org that can be used.

2021-09-17-1GXgc-uhoreg.png

As you can see from the screenshot, my server isn't quite set up correctly, and I should fix it some day...

Polyjuice Client 0.4.3 has been released. This release adds functions for getting room membership (thanks to multi prise) and checking the server spec versions, along with some bug fixes.

Finally, the Polyjuice libraries have moved their git repositories from https://gitlab.com/uhoreg to https://gitlab.com/polyjuice. The old locations should automatically redirect to the new locations.

Dept of Ops ๐Ÿ› 

Alexey reported:

I have converted the script for auto updating the Element-web instance to latest version from Gist to the full Git repo MurzNN/element-web-update and added support for .env file to set desired variables.

This is a bash script that checks the new released version of Element from official Github repo and if it differs from installed - updates the local files with deleting old version (to cleanup old files) and unpacking new one, but with keeping the config files by mask config*.json.

You can put it to your crontab.daily and got an always fresh Element with forgetting about manual update routine.

Dept of Bots ๐Ÿค–

Standupbot

Sumner said:

I created a bot to assist with sending standup posts to a room. It reminds you to write a standup post, and then asks you what you did the previous day, what you intend to do today, if you have any blockers, and if you have any other notes. Then it posts a nicely formatted standup post to a room which you can configure.

2021-09-17-G_vQu-sample-interaction.png

You can find the source code here: https://sr.ht/~sumner/standupbot/

Dept of Events and Talks ๐Ÿ—ฃ๏ธ

Berlin Meetup

Christian offered:

Are you in Berlin ๐Ÿป๐Ÿ‡ฉ๐Ÿ‡ช? Why not join us on Tuesday evening at 7:30 PM for a beer or two while chatting about Matrix development and hosting. We're going to meet at Schoenbrunn. This is a small 3G (self-tests are ok) event in an outdoor beer garden.

If possible, join our Matrix Meetup Berlin room.

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

The Board

Timo said:

I am super happy to finally give you another update on TheBoard, due to holidays during the last weeks I had less time to work on TheBoard. But now there still accumulated enough changes for a little Update:

I experimented what technologies I could use for the still required GUI elements. A new User List was implemented using Vue.js. Vue seemed to be a little overkill for the kind of GUI required in the case of TheBoard. So I re-implemented the user list with react-no-js. I am happy with react-no-js and it is used for a user list plus a tool settings menu on the right hand side of the canvas.

The tool panel in particular opens up a lot of possibilities. The eraser already makes use of it by giving the option to only delete specific item types (Image, stroke or text). This can be very handy if you want to delete strokes drawn on top of an image without deleting the image as well. What can be deleted is highlighted by a new filter system which allows to make any modification to objects selected by a filter function (see the attached image)

Other small changes:

  • Animated camera movement (for a upcoming "follow other user" feature) currently used for the Go Home Button

  • Opening a board now loads at the last edited location

  • The touchscreen navigation (zoom/pan) was re-implemented and should now work much better

Links and further reading:

Play with it at: https://toger5.github.io/TheBoard/ (feel free to join: https://matrix.to/#/#PublicWhiteboardTest_TheBoard:matrix.org with the account used for testing to join the first collaborative board) Join the matrix room: https://matrix.to/#/#TheBoard:matrix.org

GitHub: https://github.com/toger5/TheBoard Technical Details: https://github.com/toger5/TheBoard/blob/main/spec.md

2021-09-17-eCmKF-image.png

The Board is very exciting! I could see in the planned use cases that Timo already intends to make a widget out of it. It would be very useful for real-time collaboration, but that's not all! When asked if a standalone app will come, Timo confirmed:

Indeed. I wasn't thinking about a builtin home-server yet. But a standalone app is still planned because I want the app to be able to manage different boards. Therefore I need to be able to control room creation and listing rooms. It should basically feel like onenote if you intend to use it like that.

Dept of Built on Matrix ๐Ÿ—๏ธ

AAGRINDER

Maze announced:

@s7evink The game is called AAGRINDER, hosted at aagrinder.xyz, the code is here, the bridge implementation is here, wiki is here. The game is a text-based sandbox multiplayer browser game that I (Maze) have been building for the past 3 years. Built from nothing, no game engine. It generates an infinite procedural terrain to venture in. The integrated chatbox is nothing special but it's really nice to have it bridged to Matrix now, it's less lonely when playing alone. The appservice bridge creates users matching player name and color. Display names from Matrix are presented in the same color as in Element.

Hopefully you're able to extract some useful information out of this ^^

I love the retro vibe of the game, it's really cool!

Third Room

Robert Long announced:

Third Room is an experimental metaverse client I've been working on for the past couple weeks. It combines three.js and Matrix to create 3D voice chat rooms where you embody an avatar.

There's a lot more info in my talk from last night at the Open Metaverse Interoperability Demo Night (my talk starts at 37:43)

https://youtu.be/e26UJRCGfGk?t=2263

If you want to chat more about Third Room, you can join our Matrix room: #thirdroom-dev:matrix.org

2021-09-17-0qI4Q-dash(1).png

The future is now, I'm really thrilled about Third Room!

Final Thoughts ๐Ÿ’ญ

Beeper mentioned they have several positions open, and Element is also talents hungry. Iโ€™m particularly ecstatic to see that developing skills around Matrix can get people jobs. Of course I encourage strongly people to experiment with the protocol and use it in all sorts of crazy ways!

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1boba.best438
2aria-net.org696.5
3dodsorf.as808.5
4jae.fi936
5helderferreira.io955.5
6blackline.xyz994
7heitkoetter.net1641
8trolla.us1719
9spooks.cyou1823
10eisfunke.com2014

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.nordgedanken.dev221
2tomsmeding.com289
3spooks.cyou303
4sspaeth.de323
5weasy-is-my.name519
6jae.su650
7rcp.tf661
8matrix.awesomesheep48.me760.5
9conduit.rs1140.5
100x1a8510f2.space2421

That's all I know ๐Ÿ

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

This Week in Matrix 2021-09-10

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

Matrix Live ๐ŸŽ™

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

Dept of Status of Matrix ๐ŸŒก๏ธ

Incoming security fix

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

Dept of Spec ๐Ÿ“œ

Spec

anoa announced:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

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

Random Spec of the Week

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

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

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

Dept of Servers ๐Ÿข

Dimension

TravisR said:

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

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

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

Synapse 1.42.0

callahad told us:

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

Sydent

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

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

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

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace offered:

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

Dept of Bridges ๐ŸŒ‰

matrix-appservice-bridge reaches 3.0.0!

Half-Shot told us:

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

There are several reasons why we went this way:

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

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

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

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

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

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

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

Dept of Clients ๐Ÿ“ฑ

SchildiChat for Android

SpiritCroc announced:

SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.

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

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

Nheko

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

Nico (@deepbluev7:neko.dev) said:

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

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

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

Fractal

Alexandre Franke announced:

So many merged requests have been merged since our previous update two weeks ago that I canโ€™t even ๐Ÿ˜ฒ.

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

2021-09-10-oMAP5-image.png

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

Julian landed a whole bunch of changes โ—๏ธ He added scrolling and a scroll to bottom button, fixed keyboard shortcuts and a wrapping issue with long โ€œwordsโ€ that caused the timeline to jump to a wider size. But all this pales in comparison to loading previous events ๐Ÿคฏ

Element Clients

Updates from the teams.

Delight team

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

Web

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

iOS

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

2021-09-10-P1Hi4-ima_cfb17e8.png

Android

Dept of SDKs and Frameworks ๐Ÿงฐ

matrix-bot-sdk

TravisR offered:

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

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

MRSBFH - Matrix-Rust-SDK-Bot-Framework-Helper

MTRNord announced:

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

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

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

Dept of Bots ๐Ÿค–

Mother Miounne v1.0.0 is here

Aine said:

Miounne? What is it?

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

  • send html forms from your website directly to matrix

  • manage matrix-registration invite tokens in matrix chat

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

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

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

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

Patience

Ryan announced:

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

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

2021-09-10-Vd4Jl-example.png

Final Thoughts ๐Ÿ’ญ

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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net470.5
2trolla.us597
3boba.best612.5
4helderferreira.io878
5stewart.zone1001
6xerbo.net1344
7dolphincastle.com1575
8matrix.org1899
9spooks.cyou1987.5
10nheko.im2050

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1tomsmeding.com208
2weasy-is-my.name278.5
3dendrite.nordgedanken.dev294
4sspaeth.de296
5vtilburg.net559
6jae.su569
7mtr.ceph3.us957.5
8caughtquick.tech1120

That's all I know ๐Ÿ

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

This Week in Matrix 2021-09-03

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

Matrix Live ๐ŸŽ™

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

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

Dept of Status of Matrix ๐ŸŒก๏ธ

Conduit Beta released

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

timokoesters announced:

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

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

Thanks everyone!

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

Dept of Spec ๐Ÿ“œ

Spec

anoa said:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

Obsolete MSCs:

Abandoned MSCs:

Spec Updates

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

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

Random Spec of the Week

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

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

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

2021-09-03-X2UAA-stacked_area_chart.png

Dept of Servers ๐Ÿข

Synapse

callahad said:

Two big notes this week:

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

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

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

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace announced:

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

Dept of Bridges ๐ŸŒ‰

GitHub Discussions in Matrix

Half-Shot told us:

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

2021-09-03-VNjap-image.png

Dept of Clients ๐Ÿ“ฑ

Nheko

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

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

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

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

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

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

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

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

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

FluffyChat

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

krille announced:

FluffyChat 0.39.0 has been released

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

  • feat: Dismiss keyboard on scroll in iOS

  • feat: Implement QR code scanner

  • feat: New design for new chat page

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

  • feat: Send on enter configuration for mobile devices

  • fix: Prefix of notification text

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

  • fix: missing null check

  • fix: Open matrix.to urls

  • fix: Padding and colors

  • fix: Sharing invite link

  • fix: Unread bubbles on iOS

  • fix: Sending images in unencrypted rooms

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

Element Clients

Updates from the teams.

Delight team

  • Testing and polishing of Spaces.

Web

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

iOS

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

Android

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

Dept of SDKs and Frameworks ๐Ÿงฐ

Simple-Matrix-Bot-Lib

krazykirby99999 offered:

Version 2.1.0 Released!

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

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

import simplematrixbotlib as botlib

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

bot = botlib.Bot(creds)

@bot.on_message_event

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

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

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

            message=markdown_message)

bot.run()

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

Circles

cvwright announced:

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

News

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

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

WARNING

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

Latest updates

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

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

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

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

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

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

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

  • Improved layout and usability on iPad.

CoMatrix - Constrained Matrix

tobi reported:

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

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

Currently CoMatrix supports the following features:

  • Sending of messages to a Matrix room

  • Receiving the last message of a Matrix room

  • User registration at a Matrix Synapse HS

  • Joining a Matrix room upon invitation

  • Login of a user at a Matrix Synapse HS

  • Logout of a user at a Matrix Synapse HS

More information:

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

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

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

pipeline-runner receives jobs over Matrix

thejhh offered:

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

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

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

Final Thoughts ๐Ÿ’ญ

Room of the week

timokoesters reported:

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

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


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

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


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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1nordgedanken.dev295
2trolla.us524.5
3neko.dev578
4almum.de613
5envs.net648.5
6das-labor.org947
7milkte.ch1372
8caughtquick.tech1400.5
9elcyb.org1452
10kreatea.space1805.5

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1sspaeth.de297
2weasy-is-my.name379
3pc.koesters.xyz:6168402
4test.siika.solutions460.5
5tomsmeding.com497
6conduit.cyberdi.sk736
7rcp.tf737.5

That's all I know ๐Ÿ

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

This Week in Matrix 2021-08-27

27.08.2021 00:00 โ€” This Week in Matrix โ€” Alexandre Franke

Matrix Live ๐ŸŽ™

These Hydrogen news leave me breathless!

Bruno also shared the news about the latest release:

Hydrogen 0.2.7 with Single Sign-on and well-known lookup also got released this week

Dept of Spec ๐Ÿ“œ

Spec

anoa told us:

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

MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

Spec Updates

MSC2582 (Removing mimetype from EncryptedFile object) was one of those MSCs that were relatively small, but had been languishing for ages. Partly because it required client implementations to update, but also partly because one needed to go in after a while and actually confirm that all known clients had updated. @uhoreg took up the mantle on his own to do so, and as a result this MSC has hit FCP and is soon to be merged. Thank you!

Random MSC of the Week

The random MSC of the week is MSC3262: aPAKE authentication!

Alongside MSC2957 and MSC3265, this MSC is requesting a better way of communicating one's password to the homeserver without sending it in plaintext (over TLS, hopefully).

Remember that this is only done in exchange for an access token, which is then used for all subsequent requests. Still though, I can see the merit!

2021-08-27-X19MU-stacked_area_chart.png

Dept of Servers ๐Ÿข

Synapse

callahad told us:

Synapse 1.41.0 is out! Check the release announcement to find out about all of the details, including progress on MSCs, great new Admin APIs, and the ability to handle the /createRoom endpoint on workers. As mentioned in last week's TWiM, Synapse 1.41 uses MSC3244: Room version capabilities to tell clients that they can and should use Room Version 8 when creating restricted rooms. The future is here!

We've also stopped publishing Debian packages for Ubuntu 20.10 (Groovy).

โš ๏ธ We expect to publish a security release Synapse 1.41.1 on Tuesday, 31 August which fixes two moderate severity issues.

Lastly, the Synapse team would like to extend a warm welcome to Sean Quah, who joined Element's backend team this week. Welcome, Sean!

Homeserver Deployment ๐Ÿ“ฅ๏ธ

Kubernetes

Ananace offered:

And yet again this week sees another update to my Helm Charts, with matrix-synapse bumped to 1.41.0

Dept of Bridges ๐ŸŒ‰

matrix-docker-ansible-deploy

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

Slavi said:

Thanks to Alexandar Mechev, matrix-docker-ansible-deploy can now install the beeper-linkedin bridge for bridging to LinkedIn Messaging.

This brings up the total number of bridges supported by the Ansible playbook to 20.

Dept of Clients ๐Ÿ“ฑ

FluffyChat 0.38.0 has been released

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

krille offered:

This release adds more functionality for spaces, enhances the html viewer, adds a brand new video player and brings some improvements for voice messages. Thanks to everyone involved!

Please note: It will take some days until it arrives in all appstores.

All changes:

  • change: Nicer design for selecting items

  • change: Placeholder at username login field should be just username

  • chore: cleanup no longer used translation strings

  • chore: switch image_picker back to upstream

  • chore: update flutter_matrix_html

  • chore: Update matrix sdk to 0.3.1

  • feat: Add option to not autoplay stickers and emotes

  • feat: Add remove rooms to and from spaces

  • feat: Add video player

  • feat: Cupertino style record dialog

  • feat: Display amplitude

  • feat: Implement official emoji translations for emoji verification

  • feat: Nicer displaying of verification requests in the timeline

  • fix: Allow fallback to previous url if there is no homeserver on the mxid domain

  • fix: Correctly size the unread bubble in the room list

  • fix: Design of invite rooms

  • fix: Disable autocorrect for the homeserver url field

  • fix: Disable broken audioplayer for web

  • fix: Display loading dialog on start DM

  • fix: Dont add/remove DMs to space

  • fix: Empty timelines crashing the room view

  • fix: excessive CPU usage on Windows, as described in https://github.com/flutter/flutter/issues/78517#issuecomment-846436695

  • fix: Joining room aliases not published into the room directory

  • fix: Keep display alive while recording

  • fix: Load space members to display DM rooms

  • fix: Make translations use plural forms

  • fix: Re-add login fixes with the new SDK

  • fix: Reply with voice messages

  • fix: Report content localizations

  • fix: Requirements when to display report event button

  • fix: too long file names

  • fix: Try different directories on all kind of errors thrown for hive store

  • fix: Use plural string in translation

  • fix: use vrouter.toSegments

  • fix: Wait for sync before enter a room a user has got invited

  • fix: wallpaper on linux

  • fix: Wrap login form into AutofillGroup

Cinny v1.2.0

ajbura said:

Cinny is about to get one month old ๐ŸŽ‰ (on 28th) and v1.2.0 is out with the following changes:

Features

  • Added support for sending reactions.

  • Added support for message editing.

  • Display names suggestions for auto completion are available after typing @.

  • You can now see read receipt of messages.

  • Replaced commonmark with micromark, which means now you can send properly formatted tables and images with links.

  • Non kick leave messages are also visible now.

  • Added support for displaying stickers sent from other clients.

Bugs

  • Fixed no known servers issue upon joining channels.

  • Fixed crashes on bad media data.

  • Fixed inconsistent display names in people drawer.

Find more about Cinny at https://cinny.in

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

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

Sailtrix

hengyedev told us:

Sailtrix is a matrix client for SailfishOS.

Here is a list of developments this week:

  • Added more time intervals for checking notifications

  • Added an option to disable notifications when the app is closed

  • Avatars for rooms and members are now rounded

  • Uploading files now sends mimetype in the info object for increased compatibility with some bridges

  • Use qsTr for most QML strings

  • Fixed a bug where matrix: URLs with # in them would not launch

  • Fix a bug where the local echo message would appear when editing

These changes have been released in Sailtrix 1.3.1, available on OpenRepos.

Discussion: #sailtrix:matrix.org

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

NeoChat

Carl Schwan said:

This week Tobias implemented blurhash in NeoChat for a smoother image loading experience. Tobias also continued working on E2EE and this past week his focus was on decrypting encrypted files.

Ement.el

alphapapa said:

Ement.el, a Matrix client for Emacs, gained some more improvements this week:

  • Multi-account support was merged, so you can now use multiple accounts at the same time. You can even be in the same room in two different accounts, at the same time, in side-by-side windows (which is useful for testing). (Note that existing users will need to log in again, because the format of the saved-session file changed.)

  • Rooms you have been invited to now show up in the rooms list, and you can join them by clicking a button in the room's buffer.

  • Encrypted rooms now display a warning in the header and suggest that users consider using Pantalaimon.

  • Membership events are now formatted more usefully, similar to Element's style.

  • Completion for room and user names and IDs is implemented using standard Emacs commands and bindings (i.e. C-M-i by default).

  • The last-read marker may be jumped to, even if it's at an earlier event that has not yet been retrieved.

  • Emotes (i.e. /me-style messages) can be sent by pressing e.

  • Timestamps in the room list are shaded according to how "hot" (i.e. recently updated) the room is (see screenshot).

  • Various small fixes and enhancements.

Feel free to join us in #ement.el:matrix.org!

2021-08-27-mS530-timestamps.png

Nheko

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

Nico (@deepbluev7:neko.dev) said:

Nheko now supports uploading to online key backup and warns you before enabling it, that we don't recommend using the asymmetric version. If you update to one of the current builds (and or the next version), you will also experience a bit longer load times on first startup. That is because we force-cleared the cache to be able to handle the new goodies like spaces and sticker/emote-packs. In the best case, everything is seamless.

We also had contributions by various people:

  • resolritter cleaned up that while tab moved you down most popup lists, it didn't move up when shift was pressed.

  • Harmathy extended the FAQ to answer commonly asked questions like "Does Nheko support E2EE" or "What commands are supported". Don't worry, we know most of you won't read that and will still answer that question when you undoubtedly come asking it again. We just can now be even more passive aggressive than just pointing at the right wiki page. Instead we will point at the FAQ now, which will point at the wiki!

  • thombles made the emoji completer behave more nicely. Instead of jumping to the bottom left corner before closing, it will now just close. It should also now behave correctly when selecting text.

  • alfasi updated the install instructions for Gentoo.

I'm not sure we have ever seen that many new faces contributing to Nheko in a week, I'm pretty happy to see that!

Fractal

Busy week in Fractal land! It is the end for GSoC, but itโ€™s not really over. While some merge requests from our interns are still ongoing, Julian merged a bunch of them. On Kaiโ€™s side, the long awaited Room details are finally here. Alejandro, on the other hand, landed code to get display name and avatar of accounts at startup.

Circles

cvwright offered:

Circles is a project to build a secure, end-to-end encrypted social network on top of Matrix. The iOS app is currently in the final stages of beta testing in preparation for a 1.0 release.

Updates this week include:

  • Fixed a bug that prevented some new users from registering. If you tried to sign up last week but the email validation failed, please give it another try with the latest build.

  • Cleaned up the "Home" tab for a simpler, cleaner look.

  • Fixed a bug where the summary of recent activity was failing to load on app startup. Also added a manual "refresh" button as a fallback.

If you would like to try the latest Circles beta (v0.93), you can get it from Apple here

Element Clients

Updates from the teams

Delight team

  • Room version 8 was marked as the preferred version for MSC3083 restricted rooms on matrix.org and in Synapse 1.41, released this week. This means Element clients can now show UI to create restricted rooms within a Space, and prompt users to upgrade rooms if necessary when making them restricted.
  • Improvements to the performance of the room summary API.
  • Lots of testing of Spaces in anticipation of it leaving beta.

VoIP

  • Fix cases where a call ringtone would continue even after the call was answered.
  • Add active speaker indicators when a user in a call is currently talking.
  • Working on showing call duration in call tiles.

Web

  • Weโ€™ve released 1.8.2 RC3 which includes fixes to windows font rendering, blur hashing and accessibility improvements, and other bugs.
  • Our internal threads prototype is in code review.
  • This week, weโ€™ve been doing more work on threads, fixed some more cross-signing bugs, iterating on more compact replies, and investigating our process for translations.

iOS

  • Continue to work on URL preview.
  • App Navigation improvement: Continue to work on room navigation.
  • Account notification settings are now available.
  • Voice message rendering and playback fixes have been made.
  • We added a banner to advertise that iOS 11 will be dropped soon.
  • Room creation: prevent room duplication on creation.
  • Media upload sizing: Continue to improve media size selection.

Android

  • We are still improving the experience with Spaces
  • Notifications setting will be updated in the next release, with the ability to get notified when keywords are included in any message (only on un-encrypted rooms for now)
  • Working on Olm fallback key support
  • Besides that we are fixing bugs across the application and the SDK. We have fixed the issue of crashing when opening a room on devices running API 21. The fix will be in the next release.

Dept of SDKs and Frameworks ๐Ÿงฐ

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte reported:

It's been so long since our last update that I couldn't possibly list all of the individual changes, but here's a rough overview of the work since then (three months ago):

There's been loads of bug fixes, many compatibility improvements and at least one large refactoring. We've been much faster about releasing changes to crates.io after ruma 0.1.0, now we're already at ruma 0.4.0 (!); the changes needed to upgrade are really not that significant though. Notable areas of improvement are

  • UIAA: No more stringly-typed auth type + map of properties. The AuthData enum that holds the authentication information clients send to servers now has one variant for every auth type defined in the spec.

  • Event relations: These used to be serialized wrongly for encrypted events and were only (de)serializable as part of a larger event (making using them in custom ways impossible). Both of these issues were fixed.

Additionally, the GSoC coding period is over and our students have both written a blog post summarizing their work: API Coverage project (Adam Blanchet), Tooling project (Devin Ragotzy)

If you want more detailed updates about Ruma, please watch our repository's GitHub releases, since nobody in the project currently wants to write regular blog posts or TWIM updates (if you are interested in changing that, get in touch over at #ruma:matrix.org).

libQuotient

kitsune reported:

This week a new stable version of libQuotient, 0.6.8, has been released. While the main focus has been fixing bugs and sustaining the codebase, one significant highlight is that read receipts and fully read markers are distinguished now, which should improve interaction with other clients that has been treating them differently for quite some time now. This version is anticipated to become the base of the upcoming Quaternion 0.0.95.

Simple-Matrix-Bot-Lib

krazykirby99999 offered:

Version 2.0.0 Released!

The second major version of the simplematrixbotlib package has been released. It is available from Github and PyPi.

Example usage is shown below:


#### echo.py
#### Example:

#### randomuser - "!echo example string"
#### echo_bot - "example string"

import simplematrixbotlib as botlib

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

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

@bot.listener.on_message_event

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

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

        await bot.api.send_text_message(

            room.room_id, " ".join(arg for arg in match.args())
            )

bot.run()

You can find the quickstart here.

Dept of Interesting Projects ๐Ÿ›ฐ๏ธ

MatrixCrudRepository.ts

thejhh said:

I made an experimental Matrix-based persistent storage CRUD repository: https://github.com/sendanor/matrix/blob/main/MatrixCrudRepository.ts

Final Thoughts ๐Ÿ’ญ

Room of the week

timokoesters told us:

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

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


This week's room is: #terminal-gaming:matrix.org

"Channel dedicated to games running in terminal environment (or one that looks like terminal) As long as the game could be easily ported to terminal, it belongs here :) Telegram: t.me/cligaming"


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

Dept of Ping ๐Ÿ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.

#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1boba.best456
2envs.net583
3xethos.net756
4helderferreira.io852
5thomcat.rocks934
6trolla.us962
7aria-net.org983
8feneas.org989
9shortestpath.dev1808
10matrix.sp-codes.de2564

#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1dendrite.nordgedanken.dev807.5
2twentybit.dev946
3conduit.rs1022
4weber.world1981
5dendrite.s3cr3t.me2502
6dendrite.matrix.org9141

That's all I know ๐Ÿ

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