Ben Parsons

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

This Week in Matrix 2021-04-23

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

Dept of Status of Matrix 🌑️

Open Tech Will Save Us news

Neil announced:

Folks, incredibly Open Tech Will Save Us is over a year old! Thanks to everyone who has made this possible, especially Ben. We’d like to figure out how to improve it and make it even better. If you have a few moments, please can take a look at this survey to share your thoughts? (Sorry it’s Google ...)

Matrix URI scheme

Jonathan noticed:

The matrix: URI scheme has just been officially accepted (safelisted) into the HTML standard! πŸš€

https://github.com/whatwg/html/pull/6320

Nico (@deepbluev7:neko.dev) said:

What is the Matrix URI scheme?

You are probably familiar with mailto:[email protected] or tel:+1-555-438-3732. The former is usually used to open an email address in your mail client, while the latter is used for phone numbers. This allows applications to register themselves as a handler for it, like for example GMail or Thunderbird, and your browser and other applications can find them and tell them to open an editor or similar, with that identifier as the target. There are also a lot of other applications that have similar schemes like Telegram, Zoom and more.

In Matrix you have similar identifiers, most notably users (@user:example.org) and rooms (#room:example.org). The matrix URI scheme now allows you to open such identifiers in your favourite Matrix clients. You can now just click on matrix:u/user:example.org or matrix:r/room:example.org and start chatting with the user or join the room. (There is a bit more to it, you actually need an action after the identifier for it, otherwise it will just open the user profile or show the room, if you are joined to it, but that is the idea. For more details, check https://github.com/matrix-org/matrix-doc/blob/master/proposals/2312-matrix-uri.md )

As you can see the format of the matrix: scheme is a bit different that standard Matrix identifiers. This is mostly because they need to start with scheme:, where scheme is different depending on the application, but some characters are also treated differently in URIs, which is why the matrix scheme decided to avoid them where possible.

What does it mean, that the matrix: scheme is now part of the HTML standard?

In general desktop and mobile clients could already implement the Matrix scheme before, FluffyChat, Quaternion, gomuks and Nheko have even done so already. This means if you are using those clients, you can already use the Matrix scheme today!

On the web things are a bit more difficult though. Since you don't want arbitrary websites to intercept arbitrary schemes, schemes need to be safelisted in the HTML spec/browsers. So today web clients can't be registered to open matrix: URIs. But the first step is done now. The HTML spec now officially lists matrix: as a safelisted scheme.

Next steps

For web clients like Element to be able to open matrix: URIs, a few more things need to happen.

  1. Browsers need to implement the HTML standard change and allow web apps to register the Matrix scheme.
  • Status in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1688030
  • Status in Chrome(ium): https://bugs.chromium.org/p/chromium/issues/detail?id=1169258
  1. Web clients need to actually implement handling matrix: URIs.
  • Tracking issue for Element: https://github.com/vector-im/element-web/issues/16875

You may be wondering about matrix.to, which was used to share matrix identifiers before. In the long term matrix URIs will probably replace it. Watch the next few TWIMs to find out what happens and/or subscribe to the following issues: https://github.com/matrix-org/matrix.to/issues/191 https://github.com/matrix-org/matrix.to/issues/192

Closing words

As you can see, this was a big step for Matrix as a whole. This of course couldn't have been possible without Alexey writing such an awesome proposal and MayeulC pushing for the changes in browsers and the HTML standards. A lot of other people were also involved in implementing the scheme in their clients, sending the RFC to IANA or working on matrix.to, which was our solution until now and will probably bridge the gap into the future. The matrix scheme being in the HTML standard may look small, but a lot of stuff was blocked on it, that can now start making progress. Exciting, isn't it?

And it gets better...

Nico (@deepbluev7:neko.dev) offered:

MayeulC spotted, that Mozilla now safelisted the matrix: scheme in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1688030#c15

Expect this to land around Firefox 90 probably.

So we can check one more thing on our list. Apart from Chrome, we are now only waiting on webclients to implement it. This is moving faster than I expected!

If this truly lands in a Firefox version in the near future I'll be very, very happy.

kitsune added:

many thanks to MayeulC for making this happen.

Thanks to everyone involved!

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Updates

Folks from the Matrix Core team continue to chip away at the various Spaces-related MSCs in order to further the initial implementation across all three Element clients. The Spec Core Team is cleaning up some deprecated APIs that have been hanging around for way too long now (Identity Service v1 APIs), as well as continuing to focus on getting various, implemented end-to-end encryption MSCs documented and into the spec.

We're also slowly inching towards a new release with a new spec-wide versioning scheme, as well as completing the move of the old documentation from matrix.org/docs/spec to spec.matrix.org. Slowly but surely.

2021-04-23-hRN19-stacked_area_chart.png

Dept of Servers 🏒

matrix-media-repo

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR said:

v1.2.7 is out as a highly recommended security update. This release fixes a memory exhaustion issue regarding thumbnails, known as CVE-2021-29453.

See https://github.com/turt2live/matrix-media-repo/releases/tag/v1.2.7 for more details, and visit #media-repo:t2bot.io on Matrix for questions and support.

Synapse

callahad announced:

Synapse 1.32 is out! This release focused on internal cleanups and is our first release without support for Python 3.5, so nothing too groundbreaking, but we're pleased with the improvements we're making.

Unfortunately, we discovered a pair of issues late in the release, so we ended up with 1.32.2 rather than just 1.32.0, but we got there in the end. We'll adjust our processes for future releases to avoid repeating this issue.

Homeserver Deployment πŸ“₯️

Kubernetes

Ananace told us:

My regularly scheduled chart updates for Synapse 1.3.1 (the deprecated image got a bump too) and matrix-media-repo 1.2.7 have been pushed.

and then

Got the Synapse 1.32.2 update up on my chart too, replacing the pulled 1.32.1 version.

YunoHost

Mamie reported:

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

Synapse integration had been updated to 1.31.0 (1.32.0 available in branch testing)

Element Web integration had been updated to 1.7.24 (1.7.25 available in branch testing)

Dept of Bridges πŸŒ‰

The matrix.org gitter bridge is no more, long live gitter.im!

Half-Shot announced:

Hello folks! Today at 17:41, we sunset the matrix.org gitter bridge after many years of active service. It started out as a tiny little project, forked from another gitter<->IRC bridge before eventually becoming part of the matrix-appservice-bridge family of bridges (thanks Leo for putting in the hard work there!). It never quite gained all the nice features that the IRC and Slack bridges enjoyed, in part due to it's dependence on the use of one bot account (serving as a relay). However, it was still the entrypoint for Matrix users into the likes of NeoVIM and Typescript and continued to run for several years.

Years later, gitter.im gained the ability to speak Matrix, so the old bridge can finally be laid to rest. Thanks to everyone that used and supported the bridge, and we hope you enjoy using the new one!

Thanks from the bridge team πŸŒ‰!

matrix-puppeteer-line

Fair announced:

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

Updates:

  • Improvements to inbound messages syncing. Messages shouldn't be posted out-of-order anymore, and backfilling shouldn't skip any chats.

  • Fixes to internal state. Deleting rooms with clean-rooms should work properly now.

  • Experimental work on inbound read receipts (in the receipts-testing branch)

Discussion:

#matrix-puppeteer-line:miscworks.net

Dept of Clients πŸ“±

Nheko

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

Nico (@deepbluev7:neko.dev) reported:

It's my pleasure to announce, that our testers didn't find the bugs I added and as such version 0.8.2 is out now! The changes are too much to fit in a TWIM, so you can read the changelog here: https://github.com/Nheko-Reborn/nheko/blob/master/CHANGELOG.md

Thank you to all the contributors, that made this release possible! (Check the changelog! So many new faces!)

Highlights from this release:

  • Edits ✏

    • If you made a typo, just press the Up key and edit what you wrote.
    • Messages other users edited will get updated automatically and have a small pen symbol next to them.
  • Privacy Screen πŸ‘

    • Blur your messages, when Nheko looses focus, which prevents others from peeking at your messages.

    • You can configure the timeout of when this happens.

  • Improved notifications β€Ό (contributed by lorendb)

    • No more breakage, because the message included a > on KDE based DEs.

    • Render html and images where possible in the notification.

    • Render if a message is a reply or someone sent an emote message more nicely where possible.

    • Encrypted notifications now show, that the content is encrypted instead of being empty.

  • Screenshare support in calls on X11 πŸ“Ί (contributed by trilene)

    • Share your screen in a call!
    • Select if your mouse cursor should be shown or not and if your webcam should be included.
  • SEND MESSAGES AS RAINBOWS! 🌈 (contributed by LordMZTE)

    • YES MESSAGES, EMOTES AND NOTICES!

I hope you'll have a wonderful time with this release and if you find any bugs, bug us in #nheko:nheko.im or open an issue on our bug tracker!

Fractal

Alexandre Franke offered:

In keeping with our tradition of sending an update every two months, here’s what we’ve been up to since the last one.

Amongst a bunch of maintenance changes (dependency updates and the likes), we had a few ones that stand out:

  • Some views have been migrated to HdyStatusPage. This provides a more homogeneous look across GNOME applications and help them fit better on smaller screens.

  • We noticed regressions around message replacement and removal (edit display and redactions) and we started fixing them.

  • Another regression made it impossible to join rooms by alias or id. This was fixed as well.

  • We updated information in a couple places and we now have clearer contributing guidelines.

We rarely talk about new issues that are still open and tend to focus on fixed ones. We do have a milestone with the remaining known blockers for our next version, 4.5, which we hope to be able to release Really Soon Nowβ„’.

But as interesting as all that is, it pales in comparison to our bigger announcement. We are rewriting Fractal! Julian, Alexandre and Thib have documented the thought process behind this decision and the work done so far. For more details, have a look at Julian’s blog. The summary is that even though such rewrites are usually frowned upon (for good reasons), two major technological shifts (from a homegrown backend to matrix-rust-sdk and from GTK3 to GTK4) made it an option that we needed to consider… and so we did! This should result in a cleaner codebase, easier to maintain in the long run, and improvements that we can share with the rest of the Matrix community.

The work for the rewrite currently happens in a fractal-next branch. So far, we have the basic boilerplate in place. The app launches, offers a basic login form, does initial sync and while the interface then looks very similar to stable Fractal, it will just load an unsorted list of rooms for now. Not very impressive on the visible side, but Julian has also been very busy contributing to matrix-rust-sdk.

Hopefully we’ll be able to break the aforementioned tradition and report more progress soon. Watch this space.

Element Clients

Delight, a project to improve the Element experience

  • On Spaces, we’ve been continuing to implement MSC3083 (Restricting room membership based on space membership) on the Web, Android & Synapse, while also iterating on iOS.
  • Expect an announcement on more Spaces testing soon!

Web

  • 1.7.26-rc.1 on staging
    • Added persistence of unsent messages across app restart
    • Improved room list filtering performance
    • Improved the image detail view
  • 1.7.26 planned for release on Monday

iOS

  • The new room screen UI has been released (1.3.4) on the App Store. It contains several improvements and bug fixes. One major bug fix is encryption keys that failed to be shared between the notification service and the app.
  • 1.3.5 has been submitted to the app store. It contains another bug fix about encryption where the app failed to share new keys to all members of a room
  • Full story at: https://github.com/vector-im/element-ios/releases

Android

  • 1.1.6 version has been released, fixing several issues reported with 1.1.5.

Konheko

Nico (@deepbluev7:neko.dev) said:

I released version 0.0.5 of my Sailfish client: https://openrepos.net/content/deepbluev7/konheko

It adds an about page and more importantly fixes a bug where closing the window would not relaunch the app via the task icon! Shout out to Rudi Timmermans, who made the about page and is now working on some further design improvements! Small release, since I was working on Nheko most of the time, but I hope I can add persistence and E2EE soon to it!

2021-04-23-AAetC-konheko-sailfish-on-floating-xperia.jpe

Bruno commented:

This would be an excellent screenshot to for a messenger app in some hacker movie

Even in the movie they take a break to read TWIM!

Hydrogen

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

Bruno offered:

Working on invites and leaving rooms, almost ready, should be released early next week.

Dept of SDKs and Frameworks 🧰

libkazv (and the Kazv Project)

tusooa told us:

libkazv is a sans-io C++ (gnu++17) client library built upon lager. Along with it there is kazv, a kirigami/qml client, and a forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz .

Updates

In the past 2 week we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Supported encrypted attachments. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/5

Ruma

Ruma is a set of Rust library crates around Matrix

Johannes Becker told us:

After the last update Ruma 0.0.3 was released πŸŽ‰

But progress didn't stop there and more things happened:

Dept of Interesting Projects πŸ›°οΈ

Cactus Comments 🌡

AsbjΓΈrn told us:

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

We put out a blog post called MSCs We're Excited For.

It's about some of the spec change proposals that we're keeping an eye on for Cactus Comments.

We also released Web Client v0.8.0!

This release brings some improvements to the "<time> ago" text, as well as the ability to let the client fetch more messages "live" (i.e. without reloading the page). You can set a number of seconds in updateInterval to enable this, it is disabled by default.

  • Make comment time a semantic time element (Thanks to @hectorjsmith for !4).

  • Add hover text to comment time (Thanks to @hectorjsmith for !4).

  • Show "just now" instead of negative seconds if message timestamp is ahead of the client's time

  • Add ability to fetch new messages periodically.

  • New config option: updateInterval, which controls how often to fetch new messages.

  • Change thumbnail size from 32x32 to 64x64.

  • Stylesheet: allow linebreaks in comments.

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

Come play with the demo: https://cactus.chat/demo

Join our Matrix room: #cactus:cactus.chat

Matrix World from the point of view of my Synapse

MTRNord told us:

https://grafana.nordgedanken.dev/d/HDVgeCXGk/matrix-server-stats?orgId=1&refresh=15m&var-server_name=All&from=now-1h&to=now (Warning big dashboard)

This dashboard is a small experiment on what metadata you can get from matrix without any auth.

How?

It utilizes the synapse database to lookup alive and responding servers and on these currently just runs a query each 5m to check the version.

It allows a) to see the amount of servers and which servers my synapse at any point knows and b) to track the individual versions.

For my server at point of writing this results in 2348 Servers of which are 2269 running Synapse, 70 running Dendrite, 8 running Conduit and 1 running Construct.

Tech used

Used under the hood is a small rust script doing all the heavy lifting of many thousand requests each five minutes (around 2-3 per server currently).

The data is cached mostly in RAM as well as being written to a influxdb oss 2.x which allows for the grafana integration.

More information

If you want to opt out feel free to block requests with the "MTRNord/server_stats" User-Agent.

You can find the source code at https://git.nordgedanken.dev/MTRNord/server_stats

Very cool! Reminder to also check out this set of graphs showing Synapse versions over time from Chris.

Warning!

Timo from Conduit announced:

writes a script to boost the number of conduit servers πŸ˜‰

Final Thoughts πŸ’­

Several people shared this spicy article from fellow encrypted-messenger purveyors Signal: https://signal.org/blog/cellebrite-vulnerabilities/

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
1hmko.net414
2dendrite.thomcat.rocks867.5
3matrix.kootstra.frl897.5
4matrix.osl.frl1197.5
5halogen.city1225.5
6envs.net1371
7thomcat.rocks1398
8nordgedanken.dev1503.5
9maescool.be1674
10kittenface.studio2412

#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.foxomy.com445
2dendrite01.fiksel.info719

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-04-16

16.04.2021 21:19 β€” This Week in Matrix β€” Ben Parsons
Last update: 16.04.2021 19:38

Matrix Live πŸŽ™

This week we hosted Open Tech Will Save Us #12!

  • Creating a SAFE SUPPORT CHAT on the Matrix API
    • Kim Allen of PRIMAL GLOW Communications will be joined by Safe Support Chat Project Team Members, Sharon Kennedy of Nomadic Labs and Brent Edwards to talk about why and how this online crisis support tool for sexual assault centres was built on Matrix, using a custom implementation of Element and other Open Source resources.
  • Open Web Docs: web documentation as critical infrastructure
    • Will Bamberg is a technical writer who works on MDN Web Docs, originally for Mozilla and now for Open Web Docs. He's especially interested in ways we can make documentation more engaging and accessible. Open Web Docs is a collective of people and organizations that exists to support web documentation.
  • Hydrogen Deep Dive
    • Bruno from Element will do a deep dive into the architecture of Hydrogen, the upcoming next-generation Matrix web-client. What are the guiding principles, what makes it fast, what is different about it, and how could it also benefit Element Web?

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://matrix.org/docs/spec/proposals.

MSC Status

Closed MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, we talked a little bit about MSC2970 (path requirements for push gateways) and left some thoughts on the MSC. We also merged a few spec clarification/fixup PRs as they trickle in following the spec unfreeze last week.

2021-04-16-t2TNS-stacked_area_chart.png

Dept of Servers 🏒

Conduit

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

timokoesters offered:

A lot of progress is happening currently! Federation is becoming more and more stable and missing features are being implemented:

  • Feature: /make_join, /send_join and /query/directory

  • Feature: Incoming invites over federation

  • Feature: Correct and more efficient message count calculation

  • Improvement: Check event signatures on join

  • Improvement: Fetch signing keys in parallel when joining

  • Improvement: Relaxed verification code to allow joining partially broken rooms

  • Fix: Lost forward extremitites

  • Fix: "Malformed pushrule" errors

  • Fix: Mistakes in DEPLOY.md documentation

  • Fix: Alias parsing

  • Fix: Optimize /send calculations

  • Fix: State resolution bugs

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

In addition to Homeservers, the Matrix spec also describes Push Gateways and Identity Services, which augment our ability to send notifications or discover users via identifiers like email addresses.

On the Matrix.org Foundation side, we maintain production-grade reference implementations of these services:

  • Synapse, a Homeserver

  • Sygnal, a Push Gateway

  • Sydent, an Identity Service

We recently became aware of a few security and denial of service concerns in Sydent. Yesterday, we released Sydent 2.3.0 with fixes for those issues. It's extremely uncommon to self-host Sydent, but we wanted to highlight our work there all the same.

We've also finally settled on quarterly objectives for the Synapse team at Element, and the first thing we're focusing on is gaining a better understanding of how Synapse uses memory. Specifically, we'd like to drive down the peak RAM associated with joining large, complex rooms like Matrix HQ. We've already landed a small speed up to that effect, but expect more specific metrics in the future.

Synapse 1.32 is due out early next week, and we look forward to seeing you then.

Homeserver Deployment πŸ“₯️

YunoHost

Mamie said:

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

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

If you had a problem durng the upgrade to 1.28.0, there is a fix here to restore the backup : https://github.com/YunoHost-Apps/synapse_ynh/issues/246 Element Web integration had been updated to 1.7.24 (1.7.25 available in branch testing)

Dept of Bridges πŸŒ‰

So much bridge news this week!

Old Gitter bridge end of life (2021-04-21)

Eric Eastwood said:

Next week on Wednesday (2021-04-21), the old Gitter bridge (identified as @gitterbot:matrix.org) will be shut down and any plumbed rooms (bridged connections) remaining will no longer bridge. To replace this, we've already migrated all of the portal rooms and many of the plumbed rooms in preparation so most users will not need to take any further actions. The remaining rooms with the old Gitter bridge are unfortunately not possible to migrate and for those communities a clean break will be needed. The new native Gitter bridge is here to replace this!

You can read most of the same information and details if you still need to plumb for your existing room in the blog post, https://matrix.org/blog/2021/04/15/old-gitter-bridge-end-of-life-2021-04-21-to-be-replaced-with-native-bridge

Element now has a Microsoft Teams bridge

Half-Shot told us:

Hey hey folks, something I can finally talk about in the open is that Element now has a Teams bridge! After months of being isolated on a desert island being fed nothing but rice crackers and diet pepsi, I can talk about our newest bridge. It's fairly feature packed with support for all the usual formatting options, plus Jitsi widget bridging (as links) and full puppeting including DMs. Matthew even went and nattered to The Register about it. So you heard it here first, no network is truly safe from the open federation and we hope to welcome teams users into the Matrix. The bridge is currently a closed source offering under the EMS banner for now.

You can read about it in https://element.io/blog/ems-launches-bridging-for-microsoft-teams/

David Mehren added:

Heise wrote an article about the Teams bridge: https://www.heise.de/news/Fuer-MS-Teams-Verweigerer-Element-startet-neuen-Bridging-Dienst-6017946.html

Half-Shot also added:

Incidentally, would you like access to the teams code to work on lots of bridges and make things happen? Please reach out!

matrix-github (new name pending?)

Half-Shot reported:

Also, some more news. I've started making improvements to matrix-github as it continues to serve as the primary way for me to get notifications from GitHub. The latest improvements are that you can now dynamically create and assign filters to notifications coming to the bridge. This means you can name filters and turn them on and off as required (i.e. don't bug me about matrix-org on weekends please). The v0.1.0 release is out.

Have questions/ideas/mad-experiments, come chat to us in Matrix Github Bridge.

I've been using this for months now, and can confirm it works great!

Matrix PSTN Bridge

KB1RD reported:

It's a simple puppetting bridge to the public telephone network via providers like Twilio. It's designed to be modular and support several different providers (though it only supports Twilio ATM). Once more providers are added, it will be possible to seamlessly migrate your phone number between multiple providers and save conversation history. Chats are created by starting a DM with the control bot (currently hardcoded at @_pstn_:myserver.org) and running the dial command. Multiple users can join a room with the control bot and are all given access to puppet the bridge.

Features include:

  • Connect to Twilio & get current account balance

  • Send SMS texts to phone numbers and receive texts back

  • Intelligent dialing looks up phone numbers based on the one you're using

  • Give SMS users "pet names" via the name command

  • Allow multiple users to puppet a bridge & allow the bridging of bots

Some planned features could include: (I'm not committing to any of these ;D)

  • Displaying bridge info in Element settings

  • Dialer widget

  • Sending MMS (pictures, video, voice, etc.)

  • Getting extended information about users. Services like Twilio offer carrier lookups and that sort of thing. Could be useful to help weed out spam.

  • Phone calls -- This is very hard

    • Answering machine
  • Faxing. Why not, I guess?

  • Pay-as-you-go managed phone number service

    • Start a chat with the bridge bot and buy a phone number via Matrix

    • Payment security is an issue here ;)

  • Puppetting WhatsApp business or Facebook Messenger. Companies like Twilio offer connections to proprietary messengers like these.

It's not ready for production use, though. It's still stuck on a SQLite DB and has a few usability issues.

Check it out on GitHub and join #matrix-pstn-bridge:kb1rd.net.

2021-04-16-clFJc-ima_4289d95.jpeg

Dept of Clients πŸ“±

Element Clients

Updates from the teams:

Delight

  • On Spaces, we’ve been doing first implementations of MSC3083 (Restricting room membership based on space membership) on Android & Synapse.
  • Meanwhile, we’re continuing effort on iOS on adding SDK support for Spaces, and also refactoring room navigation to soon implement the Spaces UI.

VoIP

  • Lots of design in progress for improving group calls, and work ongoing to implement those designs on iOS.

Web

  • Element Web 1.7.25 released

    • Added reset button in settings to assist with search index issues
    • Added optional warning before exiting desktop app
    • Improved VoIP call media error handling
  • On develop

    • Enabled sharing room keys on invite
    • Added persistence of unsent messages across app reloads
    • Fixed replies for IRC layout

iOS

  • Element-iOS 1.3.0 contained several issues we wanted to fix before publishing it. 1.3.3 will fix all (https://github.com/vector-im/element-ios/milestone/52?closed=1) plus:

    • An update of self-verification to follow recent Element-Web changes
    • A fix to correctly display sender display name in notifications

Android

  • Element Android has been released 3 times this week, first version was 1.1.4, then 2 corrective releases, 1.1.5 and 1.1.6 to fix crashes… The main changelog is https://github.com/vector-im/element-android/releases/tag/v1.1.4 . F-Droid store will only get version 1.1.6, please be patient.
  • We are currently working on the account creation and registration flows and made some experiments on it.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte announced:

It's been almost two months since we shared an update 😱

Lots of things have happened in that time:

In addition to all the PRs, we are taking part in GSoC this year again! Proposals have been written, reviewed, updated, finalized, submitted and now there's some quiet time until the student projects are announced on May 17th.

Dept of Interesting Projects πŸ›°οΈ

Search Peertube via Matrix

Cos announced:

I wrote a new tool for fediverse: search Peertube via Matrix. It uses Sepia Search API to search on all participating public Peertube instances. You can also select any single instance. It's implemented as a module for Hemppa the bot - see docs here: https://github.com/vranki/hemppa#peertube-search #peertube #matrix

See the announcement: https://fosstodon.org/web/statuses/106048573207784409

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.net490
2fosil.eu505
3maescool.be579
4maunium.net592
5nordgedanken.dev669
6fachschaften.org679
7matrix.org717
8buyvm.net919
9boiler.social953
10signal-eleven.com991

#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.foxomy.com587.5
2dendrite01.fiksel.info903

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-04-09

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

Matrix Live πŸŽ™

Google Summer of Code - GSoC -- Final Call: put your seatbelts on!

From Nico (@deepbluev7:neko.dev), who is assisting with GSoC admin this year:

As already mentioned a few times, this year the Matrix organization is taking part in GSoC again. This is an amazing opportunity for students to take part in various Matrix-related projects and helping those projects implement awesome new features. Submission for this closes on April 13 this year (which is Monday on my clock)! If you want to take part in GSoC as a student, submit your final proposals now! You can find some examples here: http://matrix-org.github.io/gsoc. If you want to submit your own ideas, please contact a potential mentor before that. If you have questions, please check out the #gsoc:matrix.org room.

If you have already been writing a proposal, now is the time to put on the final polish and submit your proposal. If you are interested, now is the last opportunity this year to submit your proposal! We are excited to see, who will want to take part this year!

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://matrix.org/docs/spec/proposals.

MSC Status

Closed MSCs:

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

After a lot of work behind the scenes, we've now officially unfrozen the spec! 🧊 πŸ”¨

This means spec PRs that change the actual content of the spec can be made again, and made they certainly have been! Huge thanks to TravisR for writing all of those up (and others for reviewing!), and for the last push of removing all of the old spec toolchain from the matrix-doc repo.

With this out of the way, we move forward migrating the old spec pages over to the new site, as well as to the next release of the spec, which will feature a new global versioning scheme!

2021-04-09-hGhUh-stacked_area_chart.png

Dept of Servers 🏒

Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

Ding dong the snake is dead! 🐍☠️

We released SynapseΒ 1.31 on Tuesday. There are certainly nice things in it (read the release notes), but also, two days after that... WE FINALLY REMOVED SUPPORT FOR PYTHON 3.5!

As part of that, we now have a formal deprecation policy that explicitly states our platform support strategy. Namely: we follow upstream lifecycles. Thus, we can say with confidence that we will drop support for Python 3.6 in December of this year. So when upgrading, please do ensure that your operating system of choice provides modern Python packages.

By the way: if you're looking to contribute to Synapse, now is a good time to start grepping for 3.5 or xenial or stretch and seeing what cobwebs turn up which can finally be swept away. πŸ•ΈπŸ§Ή

We're also experimenting with using GitHub Actions for CI, and would certainly appreciate reviews and pull requests from folks who are more knowledgeable in that area, especially around speeding up workflows and caching.

We'll be back next week with more details on the specific quarterly goals the team is committing itself to, but until then, πŸ‘‹!

I don't know specific change helped, but 1.31 is a noticeable performance improvement for my Synapse, so thanks team!

Conduit

  • Conduit: A Matrix homeserver written in Rust https://conduit.rs
  • Ruma is a set of Rust library crates around Matrix

timokoesters told us:

Done:

  • Fix media thumbnail generation

  • Fix appservice detection

  • Implement room account data endpoints

  • Big state resolution refactor to make it easier to understand

  • Use correct room versions

  • Submit bug reports to libraries and clients:

    • https://github.com/vector-im/element-android/issues/3065

    • https://github.com/ruma/ruma/issues/446

    • https://github.com/ruma/ruma/issues/447

Doing:

  • Thinking about the future of the sled database in Conduit: https://gitlab.com/famedly/conduit/-/issues/74

  • Investigating state resolution problems

  • Investigating why certain clients are not supported by Conduit

Motivations & Challenges:

  • Some state resolution bugs are (still) very nasty and hard to debug

  • A deadlock was causing the whole program to freeze. The cause was found.

  • Our #conduit room had a state reset (it's on room version 5), so we upgraded to version 6, which was annoying

matrix-registration

zeratax offered:

Been a while since I last updated twim about matrix-registration.

Since then we added the possibility to localize the project and already got translations for

german, portuguese and chinese! https://l10n.dmnd.sh/engage/matrix-registration/

there has also been work on a nix package and module over here:

https://github.com/NixOS/nixpkgs/pull/107654 and a nur package to test it right now:

https://github.com/ZerataX/nur-packages/blob/master/pkgs/matrix-registration/default.nix https://github.com/ZerataX/nur-packages/blob/master/modules/matrix-registration.nix

But here are the newest changes for the just released v0.9.0

Features

  • now uses alembic to up- or downgrade the database scheme

Please run the following after every update to make sure your database scheme is uptodate

alembic upgrade head

  • instead of one time token you can now set arbitrary amounts of usage per token via
 *m, --maximum INTEGER     times token can be used

  • new option in the config file to log IPs to the database

these are viewable by checking the status of individual token via the cli or web api

Changes

There have been a lot of changes to the config file and web api,

please refer to: https://github.com/ZerataX/matrix-registration/releases/tag/v0.9.0 and make sure to check the sample config for other changes you might have missed

Get it here

  • pypi: https://pypi.org/project/matrix-registration/0.9.0/

  • docker: https://hub.docker.com/repository/docker/zeratax/matrix-registration

and as always feel free to join #matrix-registration:dmnd.sh for support or w/e else!

Homeserver Deployment πŸ“₯️

Kubernetes

Ananace told us:

Updated my Kubernetes chart - and image, for those still using it - to the new Synapse 1.31.0 release.

Dept of Bridges πŸŒ‰

matrix-puppeteer-line

Fair announced:

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

New features:

  • Sending & receiving images

  • Sending Matrix stickers

  • Receiving LINE stickers

  • Receiving LINE emoji (via [MSC2545: Emotes](https://github.com/Sorunome/matrix-doc/blob/soru/emotes/proposals/2545-emotes.md ))

TODOs:

  • Rework message syncing so that receiving a message doesn't require "viewing" the LINE chat in the Puppeteer-controlled browser, which will make LINE send a read receipt even though you may not actually have read the message yourself.

  • Try to conclude whether bridging LINE stickers & emoji breaks copyright and/or would cause any other legal issues...! And look for something more threatening than just the Terms of Use (relevant section is 10.3). Any advice regarding this would be much appreciated πŸ™‚

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

iMessage bridge hinted

Tulir offered:

I sent some messages between two Element web instances this week.

2021-04-09-jvbbb-image.png

<@jboi:jboi.nl>: is that an iMessage bridge? πŸ‘€

yes, but there's no Mac involved

Dept of Clients πŸ“±

Hydrogen

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

Bruno reported:

After finishing push notifications last week, this week I've been getting on top of the bugs that had previously come in, before getting to more feature work. There were 3 releases with 7 bugs fixed, the last release being 0.1.45 just now.

Nheko

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

Nico (@deepbluev7:neko.dev) offered:

For people that use our Nightlies and Windows at the same time, we fixed our nightly builds for Windows now.

For people often going to the TWIM room, we fixed "TWIM" now actually finding the #thisweekinmatrix:matrix.org room. (We also fixed a lot of other small issues on the side, that are less interesting and hope we can tie a release soonish. :3)

Rather meta, that this fix relates so specifically to TWIM.

NeoChat

Tobias Fella offered:

In the last weeks, we have landed several smaller features:

  • Quick reply: Press Ctrl+Up to reply to the last message

  • Quick edit: Press Up to edit your last message

  • React with arbitrary texts using /react

We also fixed a lot of smaller issues, including joining rooms from the global room list, emotes, some commands and deletion of images and added lots of visual improvements. We're still investigating a bug that makes NeoChat get stuck on startup, and some fallout from our recent redesign of the timeline.

Element Clients

Updates provided by the teams.

Delight

  • We’re iterating on private spaces, working towards making them publicly testable first on the Web & Android, with iOS to follow.
  • MSC3083 (Restricting room membership based on space membership) has more details on spec changes.
  • If you have Spaces enabled in labs on the Web or Android come join us in the Matrix Test Space
  • And big thank you to everyone giving feedback in the Spaces feedback room, please keep it coming and as a reminder if you run a public community (on any platform) we’d love to chat to you to get closer to understand your problems and goals.

iOS

  • The olm library is now available through Swift Package Manager. Instructions can be found at https://gitlab.matrix.org/matrix-org/olm/-/tree/master/xcode.
  • Element-iOS 1.3.0 is almost ready to be shipped. A public TestFlight will be available over the weekend. It has an entire new text composer with changes in the layout around the room timeline. It contains several fixes in the notification extension to avoid β€œUnable to decrypt” errors and out of memory crashes.
  • We made good progress on the new design for VoIP but we preferred to polish it even more. It will be available in another version.

Android

  • Element Android 1.1.4 has been released to the beta testers. This version includes lots of optimizations. Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.4. This release should be available to all users and to F-Droid users next week. The matrix SDK2 v1.1.4 has also been released today.
  • We are making good progress to implement the Spaces, which will replace the communities (AKA groups). Spaces will be available in the release 1.1.5, behind a lab flag.
  • Behind the hoods, we are making lots of code cleanup and we are improving the Matrix SDK API.

elmussol let us know that Element Android 1.1.3 is already available on F-droid. I love getting a new Element Android update!

Dept of SDKs and Frameworks 🧰

Polyjuice Server πŸ§™

uhoreg offered:

There is a new library in the wizarding world: Polyjuice Server, an Elixir library to help with writing Matrix homeservers. It is still in the very early stages, but it is starting to take form. Please note that this is just a library and not a homeserver implementation, as I don't want anyone to mistake this for something that's actually useful. (And now that I've scratched this itch, I should attend to my secret personal side-project that I've been neglecting...)

In 20 years, will we look at this small comment from uhoreg and say, that's the first hint of the project that would change the world?

maubot

Tulir said:

I finally started writing some plugin development docs for maubot. It doesn't cover everything yet, but you can find it at https://docs.mau.fi/maubot/dev/getting-started.html. Setup docs were also moved from the GitHub wiki to docs.mau.fi and some of those docs have been improved (e.g. it now has instructions for enabling e2ee)

Guile-Deck: GNU Guile SDK for Matrix

a_v_p told us:

I released Guile-Deck 0.2.0, a GNU Guile SDK for the Matrix network: https://github.com/artyom-poptsov/guile-deck/releases/tag/v0.2.0

libkazv (and the Kazv Project)

tusooa reported:

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

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

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

Updates

In the past 2 week we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Added Boost.Serialization support https://lily.kazv.moe/kazv/libkazv/-/merge_requests/4

Dept of Ops πŸ› 

matrix-docker-ansible-deploy

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

Slavi offered:

Thanks to Aaron Raimist (Aaron), matrix-docker-ansible-deploy can now install and configure the Mjolnir moderation tool (bot).

Additional details are available in our Setting up Mjolnir documentation.

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

Chemnitzer Linux Days talk

Benedict said:

For german speakers: my matrix talk from the Chemnitzer Linux Days is now online.

Dept of Interesting Projects πŸ›°οΈ

Cactus Comments 🌡

AsbjΓΈrn told us:

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

Web Client v0.7.0 released! This one includes two new configuration options.

  • New configuration option: loginEnabled changes the login button to be a matrix.to link, if set to false (default is true).

  • New configuration option: guestPostingEnabled requires users to log in using their Matrix account, if set to false (default is true).

  • Added HACKING.md, a guide to getting started with hacking on the client.

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

Come play with the demo: https://cactus.chat/demo

Join our Matrix room: #cactus:cactus.chat

Also, watch Matrix Live! If you've already done so, watch it again.

Matrix in the News πŸ“°

Famedly-folk on LinuxLounge

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

If anyone understands German and listens to podcasts, Krille Fear and I will be on the LinuxLounge on the 25th of April: https://social.tchncs.de/@theradiocc/106025736391026211

In fact there are dozens of people who understand German, and surely some subset of these listen to podcasts. With these conditions accepted, the LinuxLounge appearance will go ahead.

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.net549
2fosil.eu579.5
3maunium.net614.5
4xethos.net713
5franssen.xyz758
6privacytools.io798
7covert.tel968
8finallycoffee.eu1303.5
9eqlipsis.io1347
10dodsorf.as1351

#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.grin.hu302
2dendrite01.fiksel.info1011
3testuser-matrix.duckdns.org2630

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-04-01

01.04.2021 19:50 β€” This Week in Matrix β€” Ben Parsons

Introduction πŸƒ

Just keep the date in mind as you read these updates from the community. πŸ˜‰

Matrix Live πŸŽ™

Dept of Spec πŸ“œ

kegan reported:

MSC3079: Low bandwidth CS API is now up, feedback is welcome! Low bandwidth will increase mobile battery life, allow Matrix to be used over low bitrate links (1-5Kbps) and even allow push notifications to be done natively over Matrix (as /sync is now efficient)! We'll be experimenting with this some more and hopefully even enable it on some servers like dendrite.matrix.org in the near future.

anoa told us:

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

MSC Status

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

The Spec Core Team had another retro this week. We're happy with the increased amount of MSCs flowing through the pipeline, but there's still a huge amount of work to get through, mainly revolving around prioritisation.

Don't let that keep you from sending in your well-formed MSCs however - the more the merrier!

New Spec Platform

The unstable version of the spec now lives entirely on https://spec.matrix.org! Redirects have been put in place from the old spec to the new for unstable. Stable versions will be moved over in time (and the redirects will hopefully better preserve url paths!).

We're also planning to unfreeze the spec shortly so that spec PRs can start flowing again. We now just need to clear up the old buildtools from the matrix-doc.

2021-04-01-tN1MO-stacked_area_chart.png

Dept of Servers 🏒

Synapse

callahad offered:

πŸšͺKnock, knock? MSC2403: Add "knock" feature was merged! Now we have a stable target to aim at for implementing knocking support in Synapse. Knocking is part of (well, the entirety of) the forthcoming room version 7.

Not much else to report this week -- it's been a short week, and much of the team is heads down figuring out goals for Q2. With the start of the new quarter, a few Element employees are rotating their responsibilities: richvdh has wrapped up his work on social login and will be focusing more on core platform, with clokep shifting to focus on Spaces. Meanwhile, babolivier will come back into Synapse / Sygnal / Sydent land.

From all of us the Synapse team, we hope you have a great weekend and we'll see you next week!

Dept of Bridges πŸŒ‰

mautrix-whatsapp

Tulir announced:

v0.1.6 was released today. Some of the main changes since v0.1.5:

  • Improved connection reliability and auto-reconnection, including auto-resending queued messages after reconnecting.

  • Basic support for broadcast lists (WhatsApp's mass DM feature).

  • Option to re-sync chat and user metadata less aggressively to avoid WhatsApp rate limits on big accounts (if you get 599 errors, enable this).

Full changelog on GitHub: https://github.com/tulir/mautrix-whatsapp/releases/tag/v0.1.6

Dept of Clients πŸ“±

Nheko

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

Nico (@deepbluev7:neko.dev) announced:

Big announcement day! It's been a long time cooking in secret, but today Nheko finally got legs!

nheko1

We are happy to announce, that Nheko got aquired by Google and will now be shipping on Android!

nheko2

Google already contributed a few important improvements. All your messages are now sent in rainbow colors, because inclusivity is very important and we feel like no color should get excluded in a message. We also merged some crypto code to make indexing messages easier and help governments to protect our users.

With great new things sometimes also come sad things. As such we sadly have to announce, that Windows, macOS and Linux will now be degraded to secondary platforms. Primary development target will just be Android and Haiku. The former is the most widely used operating system nowadays and Haiku is the only actual desktop operating system. We are sure this won't lead to such a degraded experience on those platform, just because they are now effectively unmaintained.

We hope you love this day as much as we do and if you are not reading this at the day of publication, we ask you to please check the date and mark it in your calendar, so that we can celebrate next year!

If you are reading this at a later day, please consider the following changes canonical:

  • LordMZTE contributed the /rainbow command, which makes Nheko finally a client, that can be taken seriously.
  • LorenDB has been having some fun building Nheko for Android. This may actually become supported in the future, but so far they are just experiments.
  • red_sky fixed the certificate errors on macOS.
  • You can now leave rooms by using the /part or /leave command.
  • salahmak made the upload widget close, when you press the escape button
  • A few other misc fixes here and there.

That's everything and have a lovely day!

Watch The Matrix

Doug said:

Update: I’ve made the following changes to Watch The Matrix since first sharing it:

  • Reactions and Edits are shown properly.

  • Redactions now work for messages.

  • Rooms indicate if they’re unread and send a read receipt when opened.

  • Older messages can be loaded in a room.

  • Data is persisted so it’s no longer performing a huge sync on each launch! The initial sync is hopefully much lighter too.

  • Sync errors are now shown at the top of the room list.

  • A few basic localisations (aka Google Translate) have been added.

New room: #watchthe:matrix.org

Element Client Updates

From the teams:

Delight

  • Spaces
    • We’ve been iterating on our initial implementation of private spaces, including getting the first parts of restricting room membership to space membership in Synapse
    • We’re also breaking out larger MSCs into smaller ones, like this draft on space membership.

Web

  • 1.7.24 released on Monday
    • Additional VoIP call connection reliability improvements
    • Added invite option to room tile context menu
    • Improved cross-signing login flow
  • On develop
    • Added prompt before quit in desktop
    • Fixed recovery key loop at login
    • Indexing errors added to settings

iOS

Dept of Guides 🧭

Decentralisation/interoperability guides

Bram told us:

Two weeks ago, we held elections in the Netherlands and I went around the bigger political parties to ask them what concrete goals/ideas/plans they had to fight big tech companies.

And the best concrete solution I've heard, I'm not kidding, was that they're happy with the GDPR and that they want to keep that.

Knowledge of the internet is pretty dire in the EU, and I wanted to educate people a little. So I made a video explaining what a decentralized open communication network is: https://youtu.be/v5Y8zCwIxjI

Additionally, I wrote an article for people and politicians to read through, where I share my opinion on how and why the EU should encourage companies to allow for interoperability: https://noordstar.me/b/decentralize.md

Dept of Jobs πŸ’°οΈ

Hiring at Element

Element, the company which employs much of the Matrix core team, is growing! Element are hiring for a number of different roles, 14 of which are currently listed and spec'd.

However, also note what's written at the end of the page:

Can’t find the right role? Feel free to reach out to Mischa (@mischawalmsley:matrix.org) via https://app.element.io or email your resume to [email protected] to be considered for new positions in the future.

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.net376
2matrix.dani.icu426
3hmko.net434
4maescool.be484
53r.rs684.5
6thomcat.rocks888
7matrix.sp-codes.de947
8maunium.net1284
9roeckx.be1611
10glowers.club1896

#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
1dendrite01.fiksel.info813

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

19.03.2021 19:40 β€” This Week in Matrix β€” Ben Parsons
Last update: 19.03.2021 19:24

Matrix Live πŸŽ™

Dept of Status of Matrix 🌑️

Conduit accepted by Prototype Fund

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

timokoesters offered:

Hello everyone! I'm excited to announce that Conduit has been accepted by Prototype Fund and will be funded by the Federal Ministry of Education and Research over the next 6 months: https://prototypefund.de/project/conduit/

The focus lies on federation support and overall improvement and stability, maybe we will even land version 1.0 at the end.

I am surprised how Conduit went from a small hobby project to a very promising Matrix server in just a year. Thank you all for accompanying me on this journey, I really appreciate it.

Now what did we actually do in the last two weeks?

  • Query signing keys through other servers

  • Many state resolution updates

    • Implement /get_missing_events

    • Implement /state_ids

    • Many bugfixes

  • Push notifications on mobile

  • Fix joining via alias with appservices

  • Enable zstd for database compression (3.3GB -> 1.6GB on old db!)

  • Rework state storage to be much more optimized (store a few bytes instead of long strings)

  • Send proper HOST headers in federation requests (thanks Gabriel!)

Conduit is beginning to run fairly well on the state resolution branch, we will probably merge it after fixing the last few bugs.

This is really excellent news! Congratulations to Timo on this achievement!

Linux Plumbers Conference Matrix / BBB RFQ

David Mehren reported:

The Linux Foundation wants to use BigBlueButton and Matrix for the Linux Plumbers Conference in 2021 and is looking for developers to implement various improvements to BBB and to integrate Matrix as the in-meeting chat.

https://www.linuxplumbersconf.org/blog/2021/index.php/2021/03/16/rfq-sw-development-linux-plumbers-conference-2021/

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://matrix.org/docs/spec/proposals.

MSC Status

Closed MSCs:

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

We're still working to unfreeze the spec, but in the meantime have been working on MSC2516 (voice messages) and MSC1772 (spaces) plus the merged and in FCP MSCs you see above. ⬆️

2021-03-19-gB-lC-stacked_area_chart.png

Dept of Servers 🏒

matrix-media-repo

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR reported:

v1.2.5 is out now with several bug fixes and other improvements. The most notable things being:

  • Optional support for Sentry (error reporting). This is the same error reporting structure that Synapse uses, so it should fit right in πŸ™‚

  • Several oEmbed URL previews have been fixed, making them useful again. Rejoice once again with a preview of Tweets, Giphys, and other rich content.

  • Fixed a bug where after uploading media to a datastore the media repo would then download it again before returning it. This made remote media downloads inefficient (it'd download from the remote server, upload to S3, then download from S3, then return it to the user), sorry.

  • Sometimes a wobbly database could cause some issues with future requests. While I recommend a not-wobbly database, the media repo should be more resilient to this sort of problem now.

As always, if you have bugs or encounter problems with setup then please pop by #media-repo:t2bot.io

Synapse

callahad told us:

As I mentioned last week, we've been focusing on nailing down some inefficiencies in federation performance. Well, Synapse 1.30.0rc1 is out, and I'm very excited to share one result of that work:

2021-03-19-vEb-4-synapse-1.30rc1-state_ids-cpu.png

If you look closely, you'll note an order of magnitude improvement in our handling of the /_matrix/federation/v1/state_ids/{roomId} endpoint. On matrix.org, we've seen that endpoint go from averaging a few seconds of CPU time to well under 100ms. Database usage is similarly reduced.

This improvement by @clokep builds on the chain cover index that @erikjohnston implemented in Synapse 1.26.0 to speed up the calculation of auth chain differences during state resolution.

Synapse 1.30 will be released early next week.

We also shipped Sygnal 0.9.0 today, which has a few minor bug fixes as well an initial prototype of Web Push support, per the Hydrogen update in last week's TWiM.

Dept of Bridges πŸŒ‰

matrix-puppeteer-line

Fair offered:

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

Updates:

  • New name! (Previously named matrix-appservice-line)

  • New home: https://src.miscworks.net/fair/matrix-puppeteer-line

  • Group chat support

  • Syncing of own messages sent from another client (must enable bridge.invite_own_puppet_to_pm)

TODOs:

  • User/chat avatars

  • Emoji/sticker support (barring copyright issues??)

  • LINE->Matrix read receipts

  • Not requiring the Puppeteer-controlled browser to be visible in order to run (Puppeteer requires it when loading extensions, but will look for a workaround)

  • Double-puppeting with login support

  • Bugfixes, inevitably πŸ™‚

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

Dept of Clients πŸ“±

Nio, Mio, wow-io!

Nio is a client written with SwiftUI

helge5 announced:

I ported the native https://nio.chat iPhone client to macOS Big Sur, and call that "Mio". Nio and Mio share the same SwiftUI code base, with the Mio changes being merged into the Nio upstream repository. Like Nio, Mio is still in very early stages but looks quite nice already.

A preliminary build can be downloaded over here: https://zeezide.de/download/Mio.app-0.2.0-2.zip, and I posted a screenshot in the Nio channel: https://matrix-client.matrix.org/_matrix/media/r0/download/matrix.org/RpPiQFJytjXboshcUnqnGwrd.

2021-03-19-qvIJN-Screenshot2021-03-07at16.47.56.png

Some time ago we featured Nio running on an M1 Mac via Catalyst, this is being compiled natively for Mac.

Nheko

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

Nico (@deepbluev7:neko.dev) offered:

Thanks to LorenDB, notifications now omit the reply fallback and show that that message is a reply instead. They also should not break on encrypted rooms anymore (they show that the message was encrypted for now, but they will be decrypted in the future, if that is enabled in the settings). Emotes should now also show up in them properly and if someone sends an unencrypted image, this should show up with a preview in the notification as well.

2021-03-19-B7XCf-clipboard.png

Jedi18 ported the room switcher, which can be accessed with Ctrl+K to Qml, which fixes a lot of readability issues and should improve how the rooms get filtered.

2021-03-19-BGKIu-clipboard.png

Jedi18 also fixed a few issues with playing video on Windows. Salahmak made sending media easier by allowing you to send the image by just pressing enter.

Nheko now also stores images outside of the database, which should decrease database size in the future and make it easier to clean out that part of the cache. We also now use native menus where possible and fixed a few crypto and sync issues as well as formatting of mentions sent by Nheko. Nheko should now not randomely fail to /sync anymore, if your network connection dropped out in between. Also the flatpak should now be able to use your webcam in more cases, but this means we also use less sandboxing now. If you don't like that, you can disable access to all devices, but that sadly also includes the webcam.

Quaternion

kitsune reported:

Yet another beta-approximation of Quaternion at version 0.0.95 arrived, with the main change being fonts finally unified throughout the application. Translators are stilll very much welcome (French is almost there to be marked as "sufficiently complete", e.g.). Expect 0.0.95 release in the nearest weeks.

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.1.39 with:

  • Fix for always retrying decryption after fetching key backups

And work on progress:

  • Work is progressing on push notifications, along with the Sygnal webpush implementation. An initial version should land early next week.

  • A community member stepped forward and volunteered on adding SSO support πŸŽ‰

  • Another community member fixed the room header disappearing on iOS when showing the keyboard, this should land soon πŸŽ‰

  • Fixed updates sometimes taking seconds or even minutes to apply

Element Clients

Updates from the teams:

Delight

  • Social Login
    • MSC 2858 (multiple sso providers) has been pushed to spec
  • Spaces
    • Web is trailblazing private spaces, while Android is catching up on support for public spaces
    • We’ve almost finished the first implementation of the Space Summary API in Synapse, so will start testing public space user flows next week!

VoIP

  • Another connectivity fix on web
  • Fixed jitsi sometimes getting usernames instead of display names on web

Web

Element Web 1.7.23 is now available, including:

  • Refreshed UI for file uploads and sent messages
  • Improved VoIP call connection reliability
  • Added Edge to the set of supported browsers
  • Added send message button to the composer

...along with many smaller fixes.

iOS

  • The 1.2.6 release in on the App Store since Monday
  • Trust shields have been removed from rooms list for performance
  • The crypto module has received several performance improvements
  • Several memory leaks have been fixed

Dept of SDKs and Frameworks 🧰

Polyjuice Client πŸ§™

uhoreg said:

Polyjuice Client 0.4.0 has been released. This release features support for more endpoints, mostly contributed by two new contributors, multi prise and Arjan Sherpenisse. This release also has some backward-incompatible changes. See the changelog for more information.

libQuotient

kitsune told us:

Aligned with the Quaternion beta, stability-focused libQuotient 0.6.6 has been released - packagers already using libQuotient 0.6.x branch are strongly encouraged to update to this version.

Dept of Ops πŸ› 

matrix-docker-ansible-deploy

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

Slavi offered:

Thanks to Zir0h, matrix-docker-ansible-deploy can now install and configure the Go-NEB bot.

See our Setting up Go-NEB documentation to get started.

Final Thoughts πŸ’­

Did you get involved with FOSDEM this year? If you hung out on Matrix that weekend and had a great time, then maybe you bought a t-shirt? Oleg did, and he shared this photo!

2021-03-19-wS0or-16161468000490.jpg

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.net356
2maunium.net386
3neko.dev469.5
4matrix.sp-codes.de654
5maescool.be666.5
6thomcat.rocks669
7fosil.eu674
8helsinki-systems.de702
9halogen.city727
10backhaus.nrw898

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

12.03.2021 20:33 β€” This Week in Matrix β€” Ben Parsons
Last update: 12.03.2021 19:43

Matrix Live πŸŽ™

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Random fact: as of last week, we've now hit 400+ MSCs in total! That's a lot of words!

Spec Core Team

Now that the new spec platform is out, we're looking to unfreeze the spec so that spec PRs can once again start landing. That process has been written up in an issue. Once again thanks to everyone that's given https://spec.matrix.org a try and reported their feedback. πŸ™‚

Work this week from the SCT has focused mainly around Multiple SSO Identity Providers and Spaces (+ Spaces Summaries).

2021-03-12-Bwf22-stacked_area_chart.png

Dept of GSoC πŸŽ“οΈ

Google Summer of Code

Matrix has been accepted, once again, as a GSOC mentoring organisation! See us on Google's page, check out the list of project ideas (more to come!) and join GSOC Matrix to chat.

Dept of Servers 🏒

Synapse

callahad said:

(πŸ’­ If this gets published every Friday evening, shouldn't it be Last Week in Matrix?)

On Monday we released Synapse 1.29.0! The most visible highlights are new configuration settings which can limit disclosure of user profile information and optionally rank local users higher when searching the user directory. However, we've also made quite a few tweaks under the hood, including some initial improvements to presence performance and allowing the media repository to regenerate missing thumbnails on demand.

The next release of Synapse will focus on mitigating several known inefficiencies and problematic behaviors around federation performance; I look forward to telling you more about that when it reaches release.

We're also excited to announce that we've secured funding to participate in the next round of Outreachy internships. Outreachy encourages people from underrepresented or nontraditional backgrounds to participate in F/OSS. We have funding for one intern and are proposing two possible projects focused on either modernizing Sygnal/Sydent, or extending Complement so it can replace more of SyTest.

While applications for this round have closed, we also expect to also participate in the end-of-year internship round, applications for which will open in September.

Homeserver Deployment πŸ“₯️

Kubernetes

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

Ananace said:

More updates for the chart gods! I've pushed new versions of my element-web, matrix-synapse, and matrix-media-repo charts. And a new image tag (1.29.0) for the matrix-synapse image I'm still building, still haven't quite found the time to move everything over from it and into the chart proper.

The charts are still available at https://gitlab.com/ananace/charts, and the #matrix-on-kubernetes:fiksel.info room is still a great place to drop in for questions or general thoughts/comments.

Dept of Clients πŸ“±

🌡 Cactus Comments

AsbjΓΈrn told us:

Web Client v0.5.0 released!

A small-ish release, adds support for decoding and rendering some more m.room.message msgtypes.

The only remaining unsupported msgtype is m.location, hopefully we'll figure out something for that soon.

  • Support m.image messages

  • Support m.audio messages

  • Support m.file messages

  • Support m.video messages

  • Stricter MXC url parsing

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

Come play with the demo: https://cactus.chat

Join our Matrix room: #cactus:cactus.chat

Element Clients

Updates provided by the teams.

Delight

  • Spaces
    • On Web, we’ve merged in a bunch of WIP work on develop.element.io
      • New concept of suggested rooms to help new users in a space discover important rooms - requires compatible homeserver
      • New experience for previewing spaces before you join them
      • Warning: The feature is in alpha, any spaces created at this time will need to be re-created later
    • On Synapse, we’ve started implementing the Space summary API which is teasing out various details in various MSCs
    • On Android, we’re:
      • Space first cut on a branch behind lab flag; create Space / switch Space / join by link
      • In flight | basic hierarchy support in SDK
    • iOS started SDK foundation work for Spaces
      • SDK: Support room type (MSC1840)
      • In flight | Space creation SDK

Web

  • Issue labels renamed to align with new Synapse style
  • Element Web 1.7.23-rc.1 on staging
    • Refreshed UI for file uploads and sent messages
    • Improved VoIP call connection reliability
    • Added Edge to the set of supported browsers
    • Added send message button to the composer
  • 1.7.23 will be released next Monday (Mar 15)

iOS

  • We released 1.2.6 yesterday. The app is currently in review for the App Store and TestFlight. This release contains a new display for the progress of sending a message or media, a better UX for managing retry and bug fixes.

Android

  • We are working to improve the performance of the application. We are making progress on the local echo display, the initial sync time, the timeline display and scroll, etc. We have prepared a release candidate 1.1.1, but only 1.1.2 will be pushed to production.

Hydrogen

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

Bruno reported:

  • released 0.1.37 with some more bug fixes; catch-up sync should now be faster ; and adds support for video messages.

  • started working on push notifications & adding web push support to Sygnal. Got a basic proof of concept working, see screenshot.

2021-03-12-Mb1e2-webpush-android-lockscreen.png

Nheko

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

Nico (@deepbluev7:neko.dev) announced:

This was the week of internal changes. If you are building from source, the following changes may affect you:

  • After some distros now ship a newer fork of lmdbxx under the lmdbxx package name, we migrated to that version. While we wanted to do that for some time, if you have been using your distro package and builds now fail for you, you may want to use the bundled version of lmdbxx. Similarly, if there are new database issues, that you experience, please report them!

  • Similarly, we dropped our dependency on tweeny, since we only used that in one location and the same thing can be done natively, so you can remove that from your package builds.

  • Furthermore we are now stricter with how we validate tls certificates and bumped the minimum version to tls 1.2. If that causes issues for you, please report them as well. There is a known issue, that if you are using the bundled OpenSSL, it may not load your system certificate chain, so you will get TLS errors. We are still trying to find a proper solution for that.

  • We also disabled the epoll backend on all ARM builds instead of just our flatpak, since that one just crashes on ARM and until that is fixed in the library we are using, this would lead to a much worse experience on those platforms (and we didn't notice that before, because we disabled it a long time ago in our flatpak while debugging a related issue).

Apart from that, we did also have some cool stuff happening. One thing I want to especially highlight is the push work from tilde. It is one direction that I never thought of Nheko moving in and I think UnifiedPush is a really cool project!

We also switched from inline buttons to a hover overlay for message actions. Please try it out and give us feedback, if that is an improvement or makes the experience worse! It does at least make it clearer, which button belongs to which message, make the interface less messy and scrolling faster.

We also try to suppress the notifications caused by @⁠room mentions, when you reply to such a mention now by inserting a zero width joiner. This seems to work fine for all clients and servers but Element Web... So at least for everyone not using Element Web, if someone replies to an @⁠room as a mod on Nheko, they should not get a notification anymore. (Full disclosure, that was an idea from the FluffyChat team!)

2021-03-12-STO-8-Screenshot_20210312_184249.png

See more about Unified Push below.

Dept of SDKs and Frameworks 🧰

libkazv (and the Kazv Project)

libkazv is a sans-io C++ (gnu++17) client library built upon lager. Along with it there is kazv, a kirigami/qml client, and a forward bot between matrix and tencent qq. Talk to us on #kazv:tusooa.xyz

tusooa announced:

In the past 1 week we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Added a Dockerfile to build libkazv and its deps.

There is also a pre-built docker image here. You can download it using docker image pull reg.lily.kazv.moe/kazv/libkazv/libkazv:servant.

  1. Added method to deal with sync gaps.

See a video in action here: https://tusooa.xyz/_matrix/media/r0/download/tusooa.xyz/VHsPuGSHNDMnlASQoGmdHnBf

Dept of Ops πŸ› 

Ansible role for running Mautrix-Telegram with Docker

jaywink told us:

Made a new Ansible role for running Mautrix-Telegram with Docker: https://git.feneas.org/jaywink/ansible-mautrix-telegram

Dept of Interesting Projects πŸ›°οΈ

UnifiedPush, what is it, what happened this week, and why should you care?

vurpo announced:

UnifiedPush is an interface that apps can use to receive push notifications without caring about which service transported those push notifications to the device, and it's an interface that you can implement to deliver push notifications to people's apps, if you've come up with a great new way to transport push notifications from the internet to a device (did someone say push over Matrix?).

UnifiedPush has been specified for Android with some apps implementing it for a few months now, but now I've been working on specifying and implementing it for D-Bus platforms. (This is mostly intended for mobile Linux OSes such as postmarketOS, but any platform with D-Bus will work!) This means I've implemented a Gotify-based distributor that runs on Linux, and also implemented UnifiedPush in nheko to give it the capability to receive push notifications. I've yet to iron out all the details, so push in nheko isn't exactly ready to be released yet, but I can demonstrate with a video!

To you, Matrix client developers who desperately want to receive push notifications and get your app woken up while it is not running (on Linux or Android), this means that you should simply implement UnifiedPush in your app to receive pushes from the user's choice of distributor. (note: D-Bus API is not yet in the spec, but under discussion) How? See https://unifiedpush.org and join #unifiedpush:matrix.org to discuss it further!

Keyoxide Project adds support for Matrix

haywo told us:

The keyoxide project added support for matrix: https://yarmo.eu/post/keyoxide-project-update-3#proving-matrix-identity-with%E2%80%A6

Dept of Guides 🧭

Discord bridging guide

Cos shared a nice guide to configuring mx-puppet-discord: https://boilingsteam.com/how-to-bridge-discord-in-matrix/.

Soru, the author of mx-puppet-discord, wanted to add some clarifications for the article:

The section on having to set up your .well-known is slightly incorrect: mx-puppet-discord does normal C-S API discovery, so if your C-S API is not on any subdomain it will already just work, .well-known is just needed in case that differs. Additionally, you can set up a manual mapping in your config.yaml (also helpful if you need http for e.g. local development). This is totally unrelated to setmatrixtoken.

While the guide mentions bridges, it does not mention setispublic <puppetId> 1/0 to make the bridge public / private. If you want your relay to just be usable by anyone, you should do setispublic <puppetId> 1, as then the rooms it creates aren't invite-only.

If you have any other questions or need help, please visit #mx-puppet-bridge:sorunome.de , thank you!

Final Thoughts πŸ’­

Brendan Abolivier shared this weeks ago, and we missed it. But, it's really nice content that doesn't go stale.

I did a talk at FOSDEM 2021 two weeks ago titled "Mental health and free software" in which I talk about my experience dealing with mental health issues while working as a full-time Matrix developer and give leads to address some of these issues. I've uploaded the recording of the talk at https://tube.abolivier.bzh/videos/watch/c28a3957-25cb-4519-ad3d-9f8812f88ee2 πŸ™‚

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.net346
2diem25.tech543
3fluse.duckdns.org579
4matrix.sp-codes.de786
5rollyourown.xyz1282
6flobob.ovh1455
7thomcat.rocks1718
8nobelium.no2143
9utzutzutz.net3095
10mailstation.de3107.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-03-05

05.03.2021 19:45 β€” This Week in Matrix β€” Ben Parsons
Last update: 05.03.2021 19:23

Matrix Live πŸŽ™

Selection of demos this week, including: Element Home, Hydrogen, Nheko and matrix-notepad.

Dept of Status of Matrix 🌑️

Element Home

Element announced Element Home, a new way to get your own homeserver. Read more about it on their blog, or watch Matrix Live for a real demo.

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

This week the Spec Core Team worked on MSC2858 (sso ID providers), MSC2403 (knocking) and MSC2746 (voip signalling), as well as held another retrospective of the past month. Discussion mainly focused on process and the new spec redesign. Speaking of which...

New Spec Platform

The new spec has launched! πŸŽ‰ Check it out at https://spec.matrix.org/unstable! Release versions will be landing sometime soon. Bear with us as we finalise the new release process.

Huge thanks to wbamberg for working hard on bringing the idea to a reality. The Matrix.org foundation will continue maintenance of the platform and continue to make it even better for developers in the coming months.

We've already got a number of bug reports that need fixing. If you find anything that's a bit off with the redesign, please file an issue at https://github.com/matrix-org/matrix-doc. Thanks!

2021-03-05-LWU1H-stacked_area_chart.png

Dept of Servers 🏒

Conduit

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

timokoesters said:

  • Support for Jaeger to find performance bottlenecks

  • Improve initial sync ~2x

  • Implement /receipt

  • Use transaction ids properly when sending transactions

  • Improve sending code (less likely to get stuck)

  • Small improvements to README.md and https://conduit.rs

  • Updated milestone + lots of new issues: https://gitlab.com/famedly/conduit/-/milestones/3

  • Appservice support improvements

    • no longer query for aliases outside of their namespace

    • no longer send irrelevant events

  • Temporary fix for duplicate events (will be fixed properly with state res)

2021-03-05-c078w-image.png

Thanks to Famedly and everyone who supports me on Liberapay or Bitcoin!

matrix-media-repo

matrix-media-repo is a highly customizable multi-domain media repository for Matrix

TravisR told us:

v1.2.3 is out now with a highish priority fix if you have audio thumbnails enabled. Other goodies include an X-Robots-Tag header and some artifact repairs on gif and apng thumbnails. See https://github.com/turt2live/matrix-media-repo/releases/tag/v1.2.3 for the full changelog.

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander said:

Earlier this week we released Dendrite 0.3.11, and since then we have merged a significant number of appservice fixes to master which will go into the next release. With these, bridges should stand a much better chance of working with Dendrite.

Changes include:

  • Events are now properly sent to interested appservices

  • Appservice namespace exclusivity is now respected properly

  • Users starting with _ can now be registered by appservices correctly

  • Room alias queries for appservices have been improved and should work now

We also upgraded a number of dependencies.

Spec compliance has improved slightly:

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

  • Server-server APIs: 82%, up from 80% last week

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

Spec compliance is really progressing!

Synapse

Synapse is a popular homeserver written in Python.

callahad told us:

We've heard some feedback that Synapse's release cadenceβ€”an RC every other week, with releases in betweenβ€”can feel a bit overwhelming. In response, I'm going to try to write a little less about each RC and instead simply refer to the 1.29.0rc1 Release Notes from yesterday.

We'll shout a bit more when that matures into a formal release early next week. πŸ™‚

On non-release weeks I'll try to spend a little more time focusing on the behind-the-scenes aspects of developing Synapse in our TWiM updates. If there's anything in particular you'd like hear about, let me know!

Speaking of, we're experimenting with using GitHub Discussions for... discussions.

We don't want to go full-on mailing list, but it might be nice to have a place to for slower, asynchronous conversations that don't quite fit into the more rapid pace of a typical Matrix room.

Our first two discussion topics ask about:

Please do weigh in!

Dept of Bridges πŸŒ‰

GroupMe bridge (matrix-groupme-go)

karmanyaahm offered:

I'm working on a GroupMe bridge I made based on tulir's mautrix-whatsapp and mautrix-go.

I aim to add features like double puppeting, end to bridge encryption, etc over time, but an alpha release is available now. I would love to get bug reports and testing info to fix them.

If anyone's running/testing this please join #groupme-go-bridge:malhotra.cc to chat about it

https://github.com/karmanyaahm/matrix-groupme-go

Another recent GroupMe bridge effort: https://gitlab.com/robintown/mx-puppet-groupme

matrix-appservice-bridge v2.6.0-rc1

Half-Shot announced:

A PSA this time around. Please test this release and update as soon as you can when we go to release on Monday next week. We've included a change to correct how users are registered against the homeserver to comply with the spec (Synapse accepts a /register call without a type=m.login.application, and versions 2.5.0 and below of the matrix-appservice-bridge sent these invalid requests). I'm hoping to eventually retire this behaviour from Synapse, so the more people that upgrade the better!

Also this PR is the Synapse-side change to remove this behaviour. If your appservice implementation uses this behaviour, please chime in.

matrix-appservice-irc hits v0.25.0(-rc1)

Half-Shot told us:

Hey folks, this release contains a bunch of tiny-but-useful bugfixes that you'd hate to miss out on. The full release comes next week but if you want to help us test early, come and get it while it's hot! This release includes the all important fixes from matrix-appservice-bridge v2.6.0-rc1 which fix a spec compliance issue.

Dept of Clients πŸ“±

Hydrogen

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

Bruno said:

Multiple releases this week with lots of bug fixes:

  • make catchup sync faster, a fix for the biggest slowdown

  • correct profile info on messages during sending

  • messages don't wait for remote echo to be marked as sent

  • make storage on iOS more reliable, this should hopefully be the last of storage errors on this platform

  • fix file up/downloads on iOS

  • fixed an issue where room keys never got shared if you talk into an e2ee room for the very first time since login and you happen to be offline

  • more little fixes.

Fixes, fixes, fixes. Working on another catchup sync slowdown, and then hope to focus soon a new features!

Element Clients

Updates from the teams

VoIP

  • Fixed a bug causing connectivity failures on web
  • Fixed bug preventing calls from connecting on iOS
  • Moved VoIP call button to the top on web, and fixed bug resulting from the fact they no longer turn into the hangup button

Web

  • Added Edge to supported browsers

  • E2EE Olm session deadlock issue (primarily affecting large accounts during startup) has been resolved

  • 1.7.22 was released on Monday (1 Mar)

    • Fixed user content sandbox security issue, please upgrade!
    • Improved Jitsi conference names
    • Disabled chat effects when reduced motion preferred
  • 1.7.23-rc.1 next Wednesday (10 Mar)

iOS

  • Release 1.2.3 has been rejected by Apple

  • Release 1.2.5 is available on App Store, it contains fixes:

    • SSO flow crash fix
    • An new option to filter NSFW public rooms (on by default)
    • Fix a crash after login/password account creation when a grace is active
    • Plus fixes from releases 1.2.2 and 1.2.3

Android

  • Release 1.1.0 is now in production on the stores.
  • We are working to improve the global performance of the application. Faster initial sync, faster sending of messages, faster timeline, etc.

Element Web on IPFS

TR_SLimey reported:

I mentioned a while back that I've put Element Web on IPFS.

Since then, I unfortunately had to change its DNSLink domain, so I decided to post about it again, with the new addresses and some minor updates. Here are the former:

  • ipns://element-web.0x1a8510f2.space/ (Main DNSLink address)

  • ipns://k2k4r8mx8muu913j5oy3e4zvt77xtks8xgxuamlv0ltzwx95lcgk2glw (IPNS hash which the above address points to)

  • ipfs://bafybeievxs6qzzbfbn6xcbz3xwxhjzxkffjbpwbcc3gikrac6ytqkkutva (IPFS hash of the current snapshot of the above)

In other news, I've updated Element on IPFS to v1.7.22 and made a tiny script to easily update it in future. In case it's of use to anyone, it's right here:


#!/bin/bash

if [ "$#" -ne 2 ]; then

        echo -e "Invalid number of arguments (got $# but 2 required)!\nUsage: $0 <element web folder> <release tag to download>" >&2
        exit 1

fi

wget -c "https://github.com/vector-im/element-web/releases/download/$2/element-$2.tar.gz" -O - | tar --overwrite --strip-components=1 -xzv -C $1 element-$2

ipfs add -r -p $1

echo "Now use: 'ipfs name publish -key=<publish key> <folder ID>' to publish on IPFS"

NeoChat

Carl Schwan announced:

We are currently refactoring the NeoChat room page. Nothing merged yet but scrolling is now smoother, we added swipe gestures to reply on mobile, and more importantly chat bubbles are coming :) Here is a small video of the new timeline, feedback very much welcome.

Mirage

A fancy, customizable, keyboard-operable Matrix chat client for encrypted and decentralized communication. Written in Qt/QML and Python, currently in alpha. https://github.com/mirukana/mirage

miruka said:

0.7.0 has finally been released, including:

  • Push rules and notifications support:

    • Native desktop notifications

    • Sound effect playback

    • Notifications can be globally turned on and off in the running client within a click

    • Context menu options in the room pane to control a room's notification settings

    • Push rule editor in account settings:

      • Control for any rule whether matching messages are

        marked as unread, highlighted, trigger a desktop notification, sound, window alert/flash, or any combination of those actions

      • Create custom rules targeting a particular room, message sender,

        messages containing certain words or messages matching advanced conditions

  • New Python-based configuration system replacing the previous rudimentary JSON settings file

  • Config files and themes are now automatically reloaded when changed on disk

  • Rooms in the left pane can now be pinned to the top of the list

  • Support for drag-and-dropping text and files to upload in chats

  • Tooltips for the message read counters, listing who has read a message and when

  • The chat header now indicates when messages are selected in the timeline,

    and offers copy/redact/clear selection buttons

  • Visible indicator when downloading files

  • Command-line arguments parsing and a --start-in-tray option

  • Support for HTTP and SOCKS5 proxies

  • Hovering on stability percentages in the public homeserver list

    now shows more detailed tooltips about the server's recent downtimes

  • And a lot of other fixes and improvements: full changelog

Dept of SDKs and Frameworks 🧰

libkazv (and the Kazv Project)

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

tusooa reported:

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

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

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

Updates

In the past 1 week we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Published API documentation on the web.
  1. Together with that, added a "getting started" guide with an example >w<
  1. Made matrix-tencent-forward-bot support directly forwarding images

    from the matrix room.

  1. Colourized sender nicks in messages for matrix-tencent-forward-bot.

Dept of Services πŸš€

#matrix-admins-edu-german:matrix.org

Marcus Schopen (the fellow with the festive mugs) reported:

Together with Anthony Rhode from Element we have published the room #matrix-admins-edu-german:matrix.org for Matrix Admins at German-speaking educational institutions. Here we want to discuss topics about Matrix in an academic context. The room is open to the public and everyone is very welcome.

How is it not #matrix-admins-edu-deutsche:matrix.org!? This is a welcome public room for the growing number of Matrix Admins in Germany!

Dept of Interesting Projects πŸ›°οΈ

Cactus Comments

carl announced:

I am very excited to launch Cactus Comments (https://cactus.chat) today together with @asbjorn:olli.ng!

Cactus Comments is a federated, web-embeddable comment system. And of course, we federate by building on Matrix!

On the frontend - your website - we embed a Matrix client written in Elm that renders Matrix rooms as comment sections. The client is designed to be especially easy to embed on static sites. Once you log in to the client, it will only communicate directly with your Matrix server of choice.

On the backend, an application service is used to create rooms on-demand and help with moderation. It is built with Python and is completely stateless. It does this by modelling all state in native Matrix objects without any custom events!

The entire thing is free and open source software and we would love it if you were to contribute. We really hope some of you will give it a try!

Join our matrix room: #cactus:cactus.chat

Read the introductory blog post: https://cactus.chat/blog/hello-cactus-comments/ Try the demo: https://cactus.chat/demo/

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

What a project! Let's see how we can integrate this with the Matrix.org blog!

Matrix Queue Processor

reivilibre reported:

With things on the Internet vanishing, I've been wanting to start saving copies of interesting web pages and videos to my server-at-home.

This really doesn't involve much more than just running youtube-dl or archivebox on the relevant URLs, but I needed a better way than having to e-mail myself reminders to download things…

I decided to make Matrix Queue Processor.

You can run it occasionally (or set it up to run in a cron job!) and it will then read all outstanding messages and feed the text to a given command, such as youtube-dl.

You can choose for it to delete processed messages, or tick them off (βœ…). If the command wasn't successful, it will instead reply with the exit code.

It's not particularly sophisticated but it might at least be a small starting point for anyone who wanted to make something similar, and it is end-to-end encryption capable because it uses the Python matrix-nio SDK.

See this example of use with youtube-dl; it fails on the second message because it's not a video page URL:

2021-03-05-6K_RG-Screenshot_20210301_074617.png

I like this a lot - there are so many uses for this project.

Hummingbard

ahq said:

Hummingbard updates:

  • Supports nested spaces under user profiles.

  • Enhanced sidebar/navigation.

  • Explore spaces modal.

  • Code cleanup, Bug fixes and UI tweaks.

https://github.com/hummingbard/hummingbard

Have you checkout out hummingbard yet? This is a very promising-looking project, I recommend reading this introduction to get started.

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.net387
2maescool.be464
3neko.dev494
4voolik.pw572.5
5fosil.eu577
6thomcat.rocks623
7kif.rocks702
8dodsorf.as722.5
9aria-net.org743
10matrix.sp-codes.de753

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

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

Matrix Live πŸŽ™

Dept of Status of Matrix 🌑️

Decentralized Systems and Network Services Research Group output

Florian told us:

The article of my research group Decentralized Systems and Network Services Research Group from the KASTEL Institute of Information Security and Dependability and me, Analysis of the Matrix Event Graph Replicated Data Type, was published in the Open Access journal IEEE Access! πŸ“° πŸ₯³ Open Access here means that the article is freely available for you to read, under CC-BY.

2021-02-26-x72VR-MEG_with_Chat.png

In layman's terms, we showed that the Event Graph provides a strong form of eventual consistency even when new events are applied in arbitrary order. In addition, this consistency guarantee can still be provided even if all other servers in a room are malicious, which is unexpected compared to the honest majority required for the usual Distributed Ledger Technology. We also looked at the problem of β€œIf servers randomly select at which parents at the bottom of the Event Graph they append new events, and the number of parents for an event is limited, how can you be sure that the Event Graph does not grow arbitrarily wide?β€œ, which is something that puzzled me since the beginning of my Ph.D. two years ago. It is easy simulate a given setup and see that the width shrinks really fast, but it is also easy to see that arbitrary growth has a likelihood larger than zero. As this was astonishingly hard to grasp mathematically, we were very happy that we could recruit Prof. Dr. Norbert Henze from the Institute of Stochastics as co-author to provide evidence that you can expect the Event Graph to shrink to a normal width quite quickly.

Let me quote parts of the abstract for some more technical details:

[…] By comparison with traditional decentralized communication systems, Matrix replaces pure message passing with a replicated data structure. This data structure, which we extract and call the Matrix Event Graph (MEG), depicts the causal history of messages. We show that this MEG represents an interesting and important replicated data type for decentralized applications that are based on causal histories of publish-subscribe events: First, we prove that the MEG is a Conflict-Free Replicated Data Type for causal histories and, thus, provides Strong Eventual Consistency (SEC). With SEC being among the best known achievable trade-offs in the scope of the well-known CAP theorem, the MEG provides a powerful consistency guarantee while being available during network partition. Second, we discuss the implications of byzantine attackers on the data type’s properties. We note that the MEG, as it does not strive for consensus or strong consistency, can cope with n > f environments with n participants, of which f are byzantine. Furthermore, we analyze scalability: Using Markov chains, we study the number of forward extremities of the MEG over time and observe an almost optimal evolution. […] With the properties shown, a MEG represents a promising element in the set of data structures for decentralized applications, but with distinct trade-offs compared to traditional blockchains and distributed ledger technologies.

Dept of Spec πŸ“œ

anoa offered:

Interrupting spec update!

Spec

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

MSC Status

Closed MSCs:

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

In terms of Spec Core Team MSC focus for this week, there's been activity from the core team on MSC2516 (voice messages), MSC2312 (matrix URI scheme) and MSC3026/MSC3032 (presence improvements).

New Spec Platform

PR updates on matrix-doc has been refactored and straightened out, and is up for review. We're reviewing changes to our infrastructure on matrix.org in parallel which should result on spec.matrix.org hosting the unstable spec sometime early next week!

2021-02-26-c2XcZ-stacked_area_chart.png

Dept of Servers 🏒

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

Hey, it's Friday!

We released Synapse 1.28 yesterday, with the bulk of effort going into stability improvements and bug fixes, and an emphasis on further improving social login.

We're also working to more clearly communicate our prioritization of issues, starting with documenting our triage and labeling process for the core Synapse repository on GitHub.

(Still very much a work in progress, but starting to shape up nicely.)

We're also on track to maintain our fortnightly cadence of Release Candidates, with 1.29.0rc1 due out in just a few days. I look forward to telling you all about it next week!

Homeserver Deployment πŸ“₯️

Kubernetes

Ananace offered:

Another week, another bump of the Kubernetes chart and image of Synapse (to 1.28.0), still haven't had time to fix it to be image agnostic - the Synapse team is just developing far too fast.

Dept of Bridges πŸŒ‰

Gitter

Eric Eastwood announced:

We've added a "Chat via Matrix" button next to the join button in a Gitter room so you can jump straight into Matrix and start chatting that way. We've also added a Matrix.to link in the chat header so you can switch off to your favorite Matrix client at any time.

2021-02-26-vvZtd-Photoshop_2021-02-25_18-52-05.png

New LINE messenger bridge

fair offered:

matrix-appservice-line: A bridge for LINE messenger based on running LINE's Chrome extension in Puppeteer. Based on tulir 's mautrix-amp, as per Eric Migicovsky's suggestion πŸ™‚

Currently very rough around the edges, but message sending & receiving in 1:1 chats works, as does conversation syncing & backfilling.

Repo: git://miscworks.net/matrix-appservice-line
Discussion: #matrix-appservice-line:miscworks.net

Dept of Clients πŸ“±

Neochat 1.1

Carl Schwan announced:

We released NeoChat 1.1 containing 2 months of new features and bugfixes. Most notably message editing, sticker events support, rewritten login screen, SSO support and more commands. Check it out at https://carlschwan.eu/2021/02/23/neochat-1.1/

2021-02-26-jJwf3-image.png

In addition to the 1.1 release from earlier, aa13q added support for fancy animation for the πŸŽ†, πŸŽ‰ and 🌨️ emojis. This feature can be disabled.

2021-02-26-euMEn-Screenshot_20210226_144943.png

aa13q shared this video too!

neochat pinephone poorly recorded effects demo πŸ™‚ https://i.imgur.com/Z9vF9px.mp4

Nheko

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

2021-02-26-M_N-6-clipboard.png

Nico (@deepbluev7:neko.dev) sent a teaser image first, then added:

As seen from the image, you can now share your screen. This currently only works on X11, since there are no cross platform APIs for that, so look out for that, if you run into issues.

Jedi18 also polished the UX a bit more and fixed bugs, so registration should now work properly again and leaving or joining rooms should place you in the right rooms after that. We also fixed some inconsistencies, where text could be misaligned, when writing long messages.

Quaternion

kitsune reported:

Version 0.0.95 beta4 is out, with significantly better Markdown support (code fences work now, and the overall formatting is better), further improvements to the shuttle dial and other smaller fixes. The release notes and some packages are at their usual place at GitHub; the Flatpak is also coming real-soon-now.

No (or almost no) changes in strings are expected before 0.0.95 from now, so translation contributions are very welcome at Lokalise. German, Polish and Spanish translations are quite advanced but need just a few more entries; the French translation is just about half-way; and there are many prominent languages not even started. You can help!

Element Clients

Updates from the team:

Delight

  • Social Login
    • After shipping Social Login on matrix.org, we’re working on general stability to harden the feature, and get better visibility on stability.
  • Spaces
    • On Android, we’re making good progress on creating and managing spaces, first focusing on public space use cases. Otherwise, we’re also polishing implementations on web & iOS.

Web

  • 1.7.22 RC on staging, includes
    • Improved Jitsi conference names
    • Disabled chat effects when reduced motion preferred
  • 1.7.22 planned for release on Monday (1 Mar)

iOS

  • 1.2.2 RC currently available in TestFlight
  • 1.2.3 RC is coming
  • Will be released on Monday:
    • Mainly bug fixes around e2ee and VoIP

Android

  • 1.1.0 released with a huge update on VoIP
  • Initial sync is now more reliable for big accounts, consuming less RAM

Watch The Matrix, for Apple Watch

Doug told us:

Hey TWIM. I'd like to present Watch The Matrix, a matrix client for watchOS that I've been working on over the last few weeks. Currently can view rooms, receive new messages and react to them:

Find the code: https://github.com/pixlwave/Watch-The-Matrix

Dept of SDKs and Frameworks 🧰

libQuotient

kitsune reported:

libQuotient 0.6.5 is out, featuring fixes in rich replies handling and the updated Matrix URIs support, as per the latest iteration of MSC2312, enabling shorter, nicer Reddit-style URIs such as matrix:r/thisweekinmatrix:matrix.org.

libkazv (and the Kazv Project)

tusooa offered:

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

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

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

Updates

In the past (how many?) weeks we ("tusooa and her longcat," we hope someday we can

remove this annotation :P):

  1. Released libkazv 0.1.0 and matrix-tencent-forward-bot 0.1.0.

    Those are stable enough to run as daemon, at least for days.

  1. Added related ebuilds to the overlay.
  1. Implemented streaming uploads for libkazv.
  1. Made matrix-tencent-forward-bot support directly forwarding images

    to the matrix room.

Opsdroid 0.21

Cadair reported:

opsdroid is an easy to use chatops framework with excellent matrix support.

0.21 Release

This week opsdroid 0.21 has been released, it's an incremental release but includes a couple of nice matrix related features and fixes. The highlights are:

  • Support authorization by access token in addition to user name and password for the matrix connector. #1707.

  • Fix parsing a sync response with more than one message in it. #1715.

  • Minor fixes to the matrix documentation. Thanks to @anoadragon453 @xDiesel76 for these.

For a full list of the other changes see the release notes.

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

Caridina, Crystal library for Matrix

erdnaxeli said:

Caridina, a Crystal library for Matrix, got some new releases, which bring it to v0.10.2. It now supports the last version of Crystal (0.36.1) and redacted events, which I discovered the hard way were making the lib crash. Internally a big part of the lib was rewritten using macros, which makes the code a lot clearer but the API doc too. Thanks to Ruma actually for giving me inspiration about implementing events using macros.

Again, if you like Crystal and want to write some matrix bot, this library might interest you. Feel free to open issues about bugs or feature requests! There is now a room #caridina:cervoi.se to talk about it.

Dept of Bots πŸ€–

taavi

select announced:

So I had a minute to release my open q&a bot taavi.

I always wanted to write a chatbot that does cool things, so checkmark for that one on the list. In addition to that I recently failed a job interview. For their technical skill test (I did not fail this :P), I got a task for which I learned how to use puppeteer, then saw a post on reddit about Tuxi and together with my previous project that included Matrix (Audius), I knew what I had to do: create Taavi.

I have created this bot as a "weekend project", litteraly one day for the code and one day for documentation. Surely it's far from perfect but I don't have any big plans with it so far… If you think I should add some features, create an issue and let me know. I could imagine adding other websites / services to it like last.fm, do you have any ideas?

I gave my daughter the task to choose a name for a bot, that can answer any question in the world, and she came up with Taavi, nice!

https://gitlab.com/s3lect/taavi-bot

Ansible role for installing Maubot via Docker

jaywink said:

I created an Ansible role for installing Maubot via Docker - https://git.feneas.org/jaywink/ansible-maubot . Currently it only supports an Sqlite database, but pull requests are welcome for more configuration. Supports a pre-created client account.

Dept of Interesting Projects πŸ›°οΈ

Hummingbard

ahq reported:

I've written a post introducing Hummingbard. https://hummingbard.com/hummingbard/introducing-hummingbard

This looks really interesting!

Final Thoughts πŸ’­

JCG said:

Not sure if TWIM worthy, but here's a nice article about the recent flood of people migrating away from whatsapp, and why people should've migrated to matrix instead of Signal.

(In German)

There is also a sympathetic response that has been discussed on HN.

Seirdy said:

i've been getting some feedback from other matrix users on a blog post i wrote that outlined a few concerns I had about the Matrix ecosystem and steps for improvement. idk if it'd be relevant in TWIM, but I noticed that "Final Thoughts" sometimes linked blog posts so I thought I'd share: https://seirdy.one/2021/02/23/keeping-platforms-open.html

Dept of Ping πŸ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1rollyourown.xyz420
2neko.dev465.5
3maunium.net480
4phys.ethz.ch481
5envs.net492.5
6mailstation.de738
7blackline.xyz891
8kif.rocks902
9casavant.org932
10aria-net.org1028

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-02-19

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

Matrix Live πŸŽ™

Dept of Spec πŸ“œ

Spec

anoa offered:

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

MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

Spec Core Team

The Spec Core Team has spent this week working on getting MSC2312 (Matrix URI Scheme) over the line, which is really exciting! Otherwise the team has been reviewing MSC2304 (knocking).

New Spec Platform

Work is currently underway in migrating to the new spec platform. A PR for updating the CI of matrix-org/matrix-doc to build the new spec is up, and an equivalent for matrix-org/matrix.org should be up next week.

2021-02-19-QCQcX-stacked_area_chart.png

MSC3013

sorunome said:

Soru has been working on experimenting with / designing a way to improve push systems within the matrix ecosystem, so that ideally clients can display full event contents in a notification and dispose of specific push notifications without the need for any extra HTTP calls. This lead her to making MSC3013 (encrypted push), so that no gateway is able to read event contents pushed down to the client and MSC3014, so that the client can know which rooms have been read on other devices, allowing them to dispose push notifications.

This is more than just MSCs already, soru already got encrypted push in a patched synapse and a patched fluffychat working locally, and it is working super great!

Dunno soru is just really excited about this somehow >~< 🦊

Dept of Servers 🏒

Hedwig: push gateway

krille reported:

Let's talk more about Hedwig: This is a push gateway for matrix and an alternative to Sygnal. Hedwig is completely written from scratch in Rust (Yes! Rust!) and offers the basic functionality to forward matrix push notifications to Firebase Cloud Messaging. That's it. Nothing more. It is intended to be as lightweight as possible and so it is very fast and stable. Just change a simple config.toml file and run the binary. There are docs for how you can configure a proxy in Apache2 and an example systemD service file. Currently it only supports event_id_only formatted notifications but maybe, in the future, we expand this functionality.

Learn more: https://gitlab.com/famedly/services/hedwig

Dendrite / gomatrixserverlib

Dendrite is a next-generation homeserver written in Go

Neil Alexander reported:

This week we released Dendrite 0.3.10, and have committed a couple more fixes to master:

  • The database is now only queried for remote servers once in /send

  • The oldest cache entries are now gradually evicted, saving a small amount of memory

  • The destination queues in the federation sender are now not stored forever, saving some memory

  • A bug where a non-excluded event could be accidentally excluded from /sync has been fixed

  • Some dependency fixes have been merged

Sytest compliance:

  • Client-server APIs: 60%

  • Server-server APIs: 82%

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

Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

Synapse 1.27 is out, and you can read all about it on the Matrix Blog! This is the version that powered FOSDEM, and we're super proud of it. Especially the much improved support for multiple social login providers, which debuted at FOSDEM and is now enabled on matrix.org.

In addition to all the performance, stability, and social login improvements, there are two important things to note:

  1. If you use SSO, you will need update your configuration before upgrading; please see the link above for details.
  2. We were unable to build Docker images for ARM platforms in time for this release, and will not build images for ARMv7 in future releases.
  • To avoid unexpected breakage, we have not updated the latest tag on Docker Hub for this release; if you want Synapse 1.27, you'll need to specifically reference the v1.27.0 tag.

  • Images for ARM64 (and an updated latest tag) will return with the next Synapse release.

It took us a bit longer than usual to get 1.27 out the door, so we're also pleased to announce that 1.28.0rc1 is also now available, and we expect to release it early next week. Keep your eyes peeled for more on that next week!

Homeserver Deployment πŸ“₯️

Kubernetes

Ananace announced:

New chart versions have been pushed for Element 1.7.21 and Synapse 1.27.0.

The rejiggering to allow arbitrary images for the Kubernetes chart got delayed due to lack of time, but 1.27.0 should hopefully be the last version with that limitation.

Dept of Clients πŸ“±

Nio

Nio is a client written with SwiftUI

kilian offered:

Nio has seen some great improvements since the last update, mostly thanks to gaining a new main contributor \o/

  • History loading now works (seems like a rather essential messenger feature πŸ˜„)

  • New conversations can be started (with a slick UI)

  • There's a preliminary (but well-working!) build for macOS on Catalyst

  • As a first step towards E2EE support Nio can now participate in encrypted sessions while running

  • Many new translations (thanks to all the contributors on translate.element.io!)

  • Lots of additional bugfixes and improvements

Join us in #niochat:matrix.org for more details 😊

FluffyChat

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

krille said:

FluffyChat 0.27.0 is out. Not with the new design but with some minor design improvements like the return of the presence list top bar (or whatever you would name it!). Also this release brings a lot of bug fixes, working bootstrapping and the switch to our new Push Gateway (in Rust) we have invented inside of Famedly. You can find it here: https://gitlab.com/famedly/services/hedwig

FluffyChat on Pinephone

Lukas Lihotzki said:

FluffyChat runs on the PinePhone (Flutter Linux ARM64). I've built it with flutter master on the PinePhone itself, because cross-compiling is not yet supported. Currently, Flutter Linux on the PinePhone only works with X11. It crashes with Wayland.

I am on the brink of buying one of these!

2021-02-19-2Lo26-pine.png

Nheko

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

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

We had a fun week this time. Today I tested trilenes screen sharing code, which seems to work pretty well on X11, although it only shares the full screen atm. I expect window sharing to land next week though. We also ran into some issues with matrix.org enabling optional SSO login, which locked some people out of their accounts, since Nheko preferred SSO login in that case... This is now fixed and in such cases you will be offered both login flows.

Jedi18 also added a room name completer, which means you can finally complete aliases when typing them! The room settings were also ported to Qml and now actually show the room topic. Apart from that there were various UX fixes here ad there, like hovering actually working properly now, emote messages formatting correctly in notifications and more. We also adapted the matrix: uri support to the latest changes, although the MSC is a bit volatile atm, so it may need some more adaptions over time.

I think that's all, have a nice weekend everyone!

Hydrogen

Bruno announced:

I'm back working on Hydrogen, and started to tackle logging to be able to diagnose problems better. I've opted for a structured log format in JSON that gives a tree of log nodes for an entire operation (e.g. sync, or sending a message, ...) which will be more compact and should also be easier to find patterns in than a pure line based format. I had hoped to get that out in a release by today but didn't get as far as I hoped, so should get released early next week.

2021-02-19-VTLG5-image.png

Yes! Hydrogen progresses!

Element

Neil told us:

Delight

  • Social Login

    • Social log-in has shipped to matrix.org, we are seeing about 40% of new users opting for a social method. Next up will be landing some robustness improvements as well as automatic avatar import.
  • Spaces

    • We are aiming to get a basic version up and ready over the next few weeks. The idea is to have something behind a labs flag that will work for Spaces containing public rooms only. After that we will think about more complex cases such as Spaces containing private rooms.

VoIP

  • Fix for crash on Android caused by VoIP tiles

  • Design updates on iOS for in-call view and dial pad

  • Couple of tweaks to web that may help 1:1 call connectivity

Web

  • Element 1.7.21 was released on Monday (15 Feb)

iOS

  • Element 1.2.1 was released on Friday (12 Feb)

  • We now use XcodeGen to generate Xcode project files. Please check new instructions to build the project. It is only on develop for the moment

  • We made an update to libolm so that it accepts an external pickle key to encrypt its data when serialising it. Element-iOS uses the Keychain to provide this key.

  • We started to review and merge pending PRs in our repos but we still have work. Thanks for your contributions and patience

Android

  • We are preparing the release 1.1.0 which contains the work on VoIP

  • This release will also contain a lot of bug fixes

Dept of SDKs and Frameworks 🧰

ruma

Ruma is a set of Rust library crates around Matrix

jplatte said:

This week,

Dept of Ops πŸ› 

matrix-docker-ansible-deploy: Synapse workers

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

Slavi told us:

After lots and lots of work (done over many months by Marcel Partap, Max Klenk, a few others from the Technical University of Dresden, Germany and various other contributors), support for Synapse workers has finally landed in matrix-docker-ansible-deploy. πŸš€

Learn more from our changelog announcement.

matrix-docker-ansible-deploy: GroupMe bridge

Slavi returned to say:

Thanks to Cody Neiman, matrix-docker-ansible-deploy can now install the mx-puppet-groupme bridge for bridging to GroupMe.

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

To get started, follow our Setting up MX Puppet GroupMe docs.

ansible-matrix-collection from tntclaus

tntclaus announced:

Collection of Ansible modules to manage Matrix Homeserver instance. Only tested with Synapse but may (partially) work with the other Matrix Homeserver implementations.

Provides modules to manage users, rooms and communities.

https://github.com/eraga/ansible-matrix-collection

synadm

jojo said:

synadm is growing! Pull requests have been submitted, issues been raised, bugs fixed and quite some user community seems to have evolved around it as it’s regularly mentioned on #synapse:matrix.org

Since it’s first announcement on TWIM in December, notable things happening in the project are:

  • Massive internal overhaul, tidying up and refactoring

  • Media Admin API support

  • Make Room Admin API support

  • Delete Group (community) API support

  • 4 available output formats (json, yaml, pprint, human)

  • Python requests debugging switch

  • Textual Error responses of Synapse now showing in output

  • Licensed under GPL-3

Have a look at the latest release notes for a complete list of new features and fixes: https://github.com/JOJ0/synadm/releases

Thanks a lot to contributors @hpd, @kaiyou, @schwindp, @aaronraimist and @rht! Keep those PR's and ideas coming! You have been a great help!

Next features on the roadmap are "Purge History API", regular matrix client calls support and login as a user. Help me prioritise features by raising an issue: https://github.com/JOJ0/synadm

Still, I am basically a one man show, and certainly any contributions are warmly welcomed! Even as a non-programmer you can help by keeping the implementation-status list up to date. If you find an admin API missing, please take a minute and use the integrated edit functionality github provides and add it to the list: https://github.com/JOJ0/synadm#implementation-status--commands-list. It helps contributors to quickly find out what feature they could code!

I am also thinking about finding people who'd like to join the team, code new features and help maintain codebase, review PR's, get push access and so on. Spread the word! Join #synadm:peek-a-boo.at!

Matrix in the News πŸ“°

Shine reported:

Dunno if twim worthy? Proton mentioned Matrix in https://protonmail.com/blog/whatsapp-alternatives/

Seems to be worthy, it's been included anyway!

Final Thoughts πŸ’­

Nico (@deepbluev7:neko.dev) offered:

Oh, and maybe as a side note: Since Steam voice chat failed me one too many times now, I now use Nheko for voice chat, if I just play with one other player. It is more reliable and most people I play with do have a voip capable Matrix client installed!

Using own product πŸ˜€ πŸ‘

TR_SLimey said:

It seems neochat has made it into the Plasma 5.21 preview video, albeit not quite as one might expect :P

2021-02-19-1248X-Screenshot_20210217-193527.png

Here's the video link: https://youtu.be/ahEWG4JCA1w

That indeed is an unusual way to get featured, well done NeoChat!

Dept of Ping πŸ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net437
2midov.pl493
3kif.rocks582
4nicoll.xyz638
5maunium.net708
6rollyourown.xyz785
7utzutzutz.net912
8blackline.xyz975.5
9shortestpath.dev1194
10roeckx.be1516

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

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

Matrix Live πŸŽ™

This week we have Neil presenting P2P Matrix over Bluetooth. It's titled "P2P Matrix Bluetooth Low Energy demo", but I thought Neil and Matthew brought a pretty good energy to the video!

Dept of Status of Matrix 🌑️

Famedly in the media

Nico (@deepbluev7:neko.dev) announced:

Famedly (Matrix based application for German hospitals and clinics) seems to be getting positive feedback so far: https://medtech-zwo.de/aktuelles/nachrichten/nachrichten/famedly-ueberzeugt-mit-messenger-dienst-im-krankenhaus.html

Article in German, but my favourite parts are:

  • They used the word "Anti-Datenkrake" to describe how data is handled in the application, which basically is a metaphor for Famedly being the opposite of the usual corporations trying to pry their tentacles into everyones personal data. See also: https://en.wiktionary.org/wiki/datenkraken

  • They actually use [matrix]–Protokoll to refer to the Matrix protocol. The open and standardized Matrix protocol seems to be a big selling factor.

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://matrix.org/docs/spec/proposals.

MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

New MSCs:

Spec Core Team

Some chatter about the MSC2403 (knocking) as FCP has been proposed. Otherwise work on MSC1772 (Spaces) as that nears production and some encryption work with MSC2874 (single SSSS).

The team is carefully debilitating MSC2997, which spurred out of a conversation during FOSDEM2021. What sizes to include? What font to use? What colour do we paint this bike shed? All incredibly complex questions.

New Spec Platform

Will Bamberg has done an incredible job with getting both an entire redesign and an internal refactoring to the Matrix Spec. Remaining work includes ironing out some remaining minor blockers (https://github.com/matrix-org/matrix-doc/pull/3002, https://github.com/matrix-org/matrix-doc/pull/3003), merging changelog representation with respect to the current idea of a global Matrix Spec version number (https://github.com/matrix-org/matrix-doc/pull/2992) and then finally hooking up all the CI/CD to deploy it all (my job!).

We're planning to present the new spec on a new domain; running it in parallel with the old design for a bit before eventually retiring the latter.

2021-02-12-B00Xp-stacked_area_chart.png

Dept of Servers 🏒

CONSTRUCT

grin shared this note from Jason:

This week in Matrix Construct added Application Services support. I've been using the Mautrix Telegram bridge on a daily basis, and it's been a pleasure to develop with. Expect more bridges to be tested in the coming weeks. I'll also be working on completing the documentation for how to setup a bridge in Construct. Just to give some insight: The server has the ability to manage all of your bridges as sub-processes. In any client, just create a room for your bridge and enter its configuration there. Voila! The bridge's console appears right in that room and can even highlight you about errors!

Join us at #construct:zemos.net to learn more about bridges and lend a hand.

Jason

2021-02-12-eXJxK-Screenshotfrom2020-10-2504-23-40.png

Synapse

Synapse is a popular homeserver written in Python.

callahad announced:

We survived FOSDEM! Last week was relatively slower in Synapse land as we paused to catch our breath, but we do have news!

First, releases. Synapse 1.27.0rc2 is out now (changelog), and we anticipate a full 1.27 release early next week. This is basically the branch that FOSDEM ran, so we think it's a good one.

Second, keeping with our biweekly development cadence, the first 1.28 release candidate is due out midweek next week, so keep your eyes peeled for that. Given FOSDEM, most of our recent focus has been on stability, bug fixes, and social login. We hope to knock your socks off with more ambitious features soon. πŸ˜‰

Homeserver Deployment πŸ“₯️

YunoHost

Pierre told us:

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

Synapse integration had been updated to 1.25.0 (1.26.0 available in branch testing)

Element Web integration had been updated to 1.7.16 (1.7.20 available in branch testing)

Dept of Clients πŸ“±

SchildiChat Web/Desktop

qg offered:

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

Thanks to @michi7801 we can now provide builds for macOS!! 🍎

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

Matrix room: #schildichat-web:matrix.org

2021-02-12-5B1P9-Bildschirmfoto2021-02-12um10.48.41.png

Nheko

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

Nico (@deepbluev7:neko.dev) announced:

We just landed basic support for edits. Which means edits are now applied to the original message instead of showing the fallback and you can edit your messages. You can also change a text message to a video (or the other way around) or change, who you replied to, but the latter fails to render in some clients properly, so be aware of that. Edits also send a secondary relation format, which makes handling edits easier, but I still haven't written up the MSC for that... The UI is not final yet and you can't show edit history yet, but apart from that it may or may not work fine.

There were also a lot of bugfixes like broken kerning in some cases, improved focus handling when clicking buttons in the timeline, Duplex devices should now work in calls, notifications now work on Haiku and a few more.

Now please stop asking for edits! :D

Cos discovers the /addwidget command in Element Web

Cos offered:

Public service announcement: Widgets are awesome. You can use /addwidget <url> in Element Web to add any web page in a iframe to the sidebar of Element Web. They get default name "Custom Widget" but you can rename them from /devtools menu. Very useful for group calendars, status pages and other info related to Matrix rooms.

Element

Neil announced:

Delight

  • Social Login

    • We’ve concluded most of the development on Social Login, and tested it last weekend on the FOSDEM deployments. We found that over 50% of new accounts used it to register! We’ll be deploying Social Login to matrix.org in the near future after polishing some final pieces on iOS.
  • Spaces

    • We’re iterating on the user experience for Spaces, first focusing on setting up, sharing and joining public spaces.

VoIP

  • VoIP branches merged to develop on iOS and & Android - please test voice & video calling if you have the android develop build, or testflight for iOS will be coming soon. More complex scenarios with multiple devices are particularly useful to test, eg. do other devices stop ringing when you answer on a different one?

Web

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

    • Fixed screen sharing in VoIP calls

    • Added window vs. full screen sharing option in VoIP calls

    • Fixed event permalinks to show link text instead of a room pill

  • 1.7.21 planned for release on Monday (15 Feb)

  • Element Desktop nightly builds are now using Electron 11

    • Please report any issues you notice so we can address them before the next Element release

iOS

  • 1.2.1 has been submitted to Apple. TestFlight should be available from tomorrow:

    • All new VoIP stuff described above

    • Handle User-Interactive Authentication for delete device and adding user 3pid.

    • Improve grace period management and setup Cross-Signing after login if possible when using SSO.

  • XcodeGen integration into the Element-iOS codebase is almost complete. From next week, we will not have merge conflicts on the pbxproj files. This also means better control on build settings.

Android

  • Initial sync work improvements: performance is far better regarding RAM usage and stability (especially true for large accounts), though duration is still a concern.

  • Started working on running integration tests via CI.

  • 1.0.17 released, fixing a join over federation bug. Expect 1.0.18 next week.

Dept of SDKs and Frameworks 🧰

Ruma

Ruma is a set of Rust library crates around Matrix

jplatte offered:

In the last two weeks,

Dept of Ops πŸ› 

matrix-docker-ansible-deploy

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

Slavi told us:

Thanks to @Peetz0r, matrix-docker-ansible-deploy can now install a bunch of tools for monitoring your Matrix server: the Prometheus time-series database server, the Prometheus node-exporter host metrics exporter, and the Grafana web UI.

To install these services, follow our Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server docs page.

Dept of Interesting Projects πŸ›°οΈ

SpaceHub

MTRNord offered:

This is a super early announcement.

As now Spaces exist and are kind of testable if you know how I went ahead to plan organizing my 200 rooms I currently have into spaces and realized soon that I will have A LOT of nested Spaces.

So I am now starting to write a tool to generate these spaces easily from a folder structure and exporting them.

You may ask why not a yaml or json format: Simply to more easily allow forking of existing collections. A folder structure is much easier to do a diff over in git than file content.

Feel free to join #space-hub:nordgedanken.dev for discussions or have an eye on https://github.com/matrix-spaces-generator where at the time of writing this only an example of the spaces folder structure exists.

Keymaker

MTRNord reported:

Small update time:

We are currently starting to add some documentation to it over at https://docs.joinmatrix.rocks/users/what-is-keymaker.html

It at time of writing still very barebones but over the next few weeks the goal is to add the Code of Conduct as well as a server admin guide on how to use this.

Dept of Guides 🧭

matrix-appservice-irc sprouts a book

Half-Shot said:

Hi folks! I'm happy to say that after many years of fielding IRC bridge support questions, the bridge team has now written the book on it. A markdown book! Using the latest mdbook tech we've written a draft of a usage guide and a server administration guide for the bridge and would value feedback on how we can make it better. This could be typos that I have strewn about it, or suggesting new content.

The draft is hosted at:

https://matrix-org.github.io/matrix-appservice-irc/latest

and the PR is:

https://github.com/matrix-org/matrix-appservice-irc/pull/1235

Final Thoughts πŸ’­

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

Shine reported:

If you have a 3D printer and want to express your love for Fluffychat with a nice badge, you can download the necessary files here ^_^ https://www.thingiverse.com/thing:4550331/files

Freecad source file included for those who need some modifications.

(Yes, it's older, but I never TWIM'd it πŸ€¦β€β™€οΈ)

sorunome shared:

2021-02-12-cPftU-img_20210208_160724.jpg

Dept of Ping πŸ“

Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server. Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net347.5
2syn.steimel.info480
3matrix.xn--kll-sna.net491
4etke.cc682.5
5maunium.net692
6maescool.be708.5
7jupadr.de741
8matrix.godfreyhendrix.com1072.5
9shortestpath.dev1093.5
10queersin.space1180

That's all I know 🏁

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