This Week in Matrix

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

Atom Feed

This Week in Matrix 2021-06-11

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Room of the week

timokoesters said:

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

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


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

"Share your artwork and drawings and chat about it. You don't have to be good!"


If you want to suggest a room for this section, send an email to

[email protected] or a Matrix message in #roomoftheweek:fachschaften.org

Yep, go ahead and email your suggested Matrix room-of-the-week to Timo!

πŸ”—Dept of Spec πŸ“œ

kegan said:

MSC3079: Low Bandwidth CS API now has an experimental implementation containing a proxy server and mobile bindings! In addition, there's a blog post explaining how to use this implementation to add low bandwidth support to your servers/clients! This implementation will use about 22% of the bandwidth that the normal CS API would use. Please be aware that low bandwidth Matrix is in its infancy and is subject to change without notice.

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:

New MSCs:

πŸ”—Spec Updates

Mostly Spaces and E2EE work this week. New spec release is still in the works.

Graph will return in a future edition!

πŸ”—Dept of P2P πŸ‘₯

πŸ”—Pinecone

Neil Alexander told us:

I have spent quite a bit of time lately working on Pinecone network convergence for P2P Matrix. There's still quite a bit to do in order to call Pinecone "complete", but a network of 50 nodes now bootstraps entirely from cold much more quickly and converges on full end-to-end reachability in roughly 6 seconds. This is a significant improvement to before! Keep an eye out for future P2P Matrix demo builds using these new protocol changes.

2021-06-11-Mz77O-convergence1-rtree.png

This chart also represents interest in Pinecone over time!

πŸ”—Dept of Servers 🏒

πŸ”—Conduit

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

timokoesters told us:

Hello! The last two weeks I mostly tried to make our database backend swappable so we don't need to rely on the sled database anymore. I was able to try out rocksdb, but there were bugs in the rust bindings which required inefficient and unsafe workarounds.

If you know about other key-value databases that work better with Rust, please comment on the issue:

https://gitlab.com/famedly/conduit/-/issues/74

  • Feature: Swappable database backend

  • Improvement: Don't apply push rules for users of other homeservers

  • Fix: is_direct now works for locally invited users

  • Fix: Deactivated accounts are now actually deactivated (-> performance improvements for appservice puppets)

πŸ”—synapse-media-proxy

f0x offered:

This week I implemented the remaining API route for URL previewing. Already has some nicer url preview results like showing images with Twitter posts and proper YouTube previews instead of the cookie wall text :)

With this, synapse-media-proxy should be a drop-in overlay for all Synapse's /_matrix/media routes. I don't really recommend using it in prod yet however, but I have a test instance that could use some responsible disclosure pentesting at https://media.pixie.town, please DM me @f0x:pixie.town if you find anything :)

https://git.pixie.town/f0x/synapse-media-proxy
synapse-media-proxy now has a room at #synapse-media-proxy:pixie.town

2021-06-11-8dmdK-image.png

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad reported:

πŸšͺ Knock, knock... It's Friday!

After over a year of work and over a hundred commits, we're now one major step closer to supporting MSC 2403: Add "Knock" feature, which allows users to request admission to rooms which would otherwise be invite-only. Specifically, last Wednesday we merged (#6739) which is an experimental implementation of the MSC, under an unstable prefix. Knocking is not available in any current room versions β€” we need to implement room version 7 for that β€” but the remaining work is minimalΒΉ compared to what it took to get to this point. πŸ™‚ Major kudos to Sorunome, Anoa, and Clokep for their work on both the spec and implementation.

Otherwise we're looking forward to releasing Synapse 1.36 early next week, and we have some great things in store... but I'll not spoil them today! 🀫

From everyone on the Synapse team, have a great weekend!

ΒΉ: Well, on the server-side at least. No clients support knocking, yet...

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace reported:

This week too comes with an update on the Helm Charts I'm maintaining, with an update of element-web to 1.7.30

πŸ”—Docker-based development environment for Matrix

psrpinto wrote:

Hi folks. Some time ago I asked here about any projects that provided a local Matrix "node" through docker, and it seemed not much existed in that space, so I went ahead and created the following repo:

https://github.com/Automattic/matrix-env

Docker-based development environment for Matrix. Provides a local sandbox with the following pre-configured services:

  • synapse: the reference homeserver implementation
  • synapse-admin: homeserver admin UI
  • element: a web-based Matrix client

If this is something that would be useful to you, feel free to give it a try and send some feedback, either here or through GitHub issues. Thanks in advance! I hope this is helpful to some of you πŸ™‡

Thanks uhoreg for passing this on! Looks like a really useful way to get a local env running

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Libera.chat IRC bridge work continues

Half-Shot reported:

Hi folks, just a quick update on the Libera.chat bridge situation. We're still rapidly working on the bridge, the milestone highlights for this week are:

  • Nearly 6k Matrix users are now connected to IRC and growing by the minute.

  • We're midway though our #matrix* Freenode to Libera channel/bridge migrations.

  • FOSDEM has been migrated over

  • We're still working through our backlog of migration requests from users, a lot of you phoned in!

We're still continuing to rapidly work on the bridge, with a release expected on Monday 🀞. For any of you who aren't in the know yet, you can start bridging to libera.chat by simply joining a channel like #libera-matrix:libera.chat or by searching the libera.chat room directory.

I'm hoping we'll be nearing the end of our journey on this bridge, and it will settle into a natural stable state over the coming days! Anyway, thanks everyone for your patience and we hope to see you on Matrix or IRC!

πŸ”—IRC Bridge 0.27.0-rc1 leaps out of the gate

Half-Shot offered:

Hi bridge followers, today we've released 0.27.0-rc1 of the IRC bridge containing a huge number of changes following all the work we've been doing on libera.chat. Notable things to call out in this release are:

  • We've refactored the node-irc library to be typescripty and modern, rather than the quite old JS that it was.

  • SASL support for username/password auth has landed, which hopefully means a smoother login process for many. (We're aware of some issues around setting usernames, watch this space)

  • Allowing you to spin up the bridge with complete control over the alias namespace of a host (e.g. #libera:libera.chat links to #libera).

  • And finally, a privacy feature to block incoming IRC messages when Matrix users are not all joined which is requested by some IRC networks.

Please report bugs as you see them to https://github.com/matrix-org/matrix-appservice-irc, and let's all pray this will be a smooth release :)

πŸ”—matrix-puppeteer-line

Fair offered:

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

Read receipt improvements are here! They are in temporary branches until they've been tested for stability:

  • The better-receipts-dm branch contains some smarts to prevent Puppeteer from having to "view" a LINE DM chat in order to sync it, which would make the contact you're DMing think you've read their messages when it was really Puppeteer that "saw" them. However, this doesn't work for non-text messages (like images) or messages in group chats.

  • The better-receipts-msc2409 branch (which extends the above branch) uses MSC2409 to detect when you read a bridged message on Matrix, so it can tell Puppeteer to view it on LINE on your behalf. This will let your LINE contacts know when you've read their messages.

After this, only a few read receipt improvements are left to be made:

  • Make Puppeteer check all LINE chats (not just the most recently-used one) to see if messages you sent have been read (in LINE). This will work by cycling through all LINE chats where the final message is posted by you and doesn't have a "Read" marker on it yet.

  • Use MSC2409 to avoid having to view a LINE chat when syncing non-text messages (like images). The idea is to send a placeholder message that will get replaced with the real message (which requires Puppeteer to view the LINE chat) only when you actually view the placeholder.

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

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

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

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

Nico (@deepbluev7:neko.dev) reported:

I've been slowly refactoring the room and communities list to prepare it for spaces. This work is now mostly complete, changing ~4000 lines of code, of which 1500 just got deleted. All of the sidebars are now expandable and collapsible, so you can see the full name of your tags and communities and the lists should also update more dynamically now. Startup also only takes half as long as before on my system and Nheko uses 100MB less memory for my account. Next week I'll probably add spaces to the communities list as well as the room list.

Apart from that LorenDB has been rewriting the member list as well as the invite dialog in Qml and manu has been making progress on the room directory. All of that seems to be coming along nicely and behave much more reasonably than the old versions. There has also been a lot of progress on the Italian and Esperanto translations as well as a few smaller bug fixes and performance improvements.

I hope we will make it to space next week!

2021-06-11-Xd2Et-clipboard.png

2021-06-11-BuP8c-clipboard.png

πŸ”—Element Clients

Updates from the teams.

Delight, a team aiming to delight users

  • We’re making good progress on the ability to re-order Spaces on Web & Android, expected to land soon!
  • We’re also adding aliases to Space creation, to make it easier to share and onboard other users
  • On iOS, we recently merged a refactor with a new sidebar design which lays the foundations for iOS joining the Spaces beta
  • We’ve also been working on adding pagination to the Space Summary API on Synapse
  • Meanwhile, we’re also shepherding various MSCs through the spec process to improve private Spaces in the very near future

Web

  • 1.7.30 released on Monday
  • On develop
    • Upgraded to React 17
    • First GitHub Actions pipeline for web
  • In flight
    • Continuing to improve application performance
    • Adding dashboard for performance benchmarks
    • Working on Apple silicon desktop builds
    • Working on translation mismatch errors

iOS

  • 1.4.1 released on Tuesday on the App Store
  • The new side menu and voice messages are coming.
  • We are setting up Towncrier to avoid merge conflicts on our CHANGES files. Those conflict prevent Github Actions, our CI, from starting
  • We fixed several annoying bugs regarding VoIP and app stability

Android

  • Element Android 1.1.9 has been pushed to production
  • We are working with the design team on the dark and light themes, not forgetting the black theme, to ensure some coherence across the application and also to clean up some legacy code. There were too many shades of grey… We will also do the same work on TextAppearance.

πŸ”—NeoChat

Carl Schwan said:

This week was a busy week for NeoChat. We added tons of cool stuff! We rewrote the setting page to add a bit of organization in the settings. This also pushed us to add new appearance options. You can now add a blur effect as background, change the color scheme of NeoChat and switch between bubbles and a more compact layout as you wish.

2021-06-11-_cQEN-image.png

2021-06-11-ajhCF-image.png

Another thing we worked on was spellchecking. NeoChat will now add a small red underline under misspelled words and will suggest corrections. This is using the Sonnet frameworks and will integrates perfectly with your personal dictionary from your other KDE apps.

2021-06-11-9Tsyr-image.png

Finally something we added two weeks ago but forgot to mention, we added a quick room switcher using the Ctrl + K shortcut.

2021-06-11-7BfFl-image.png

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—libQuotient

kitsune reported:

Another small release - libQuotient 0.6.7 is out, fixing an issue causing NeoChat to not add rooms to the roomlist after joining. Thanks to Carl Schwan for hunting the problem down!

Tobias Fella added:

Apparently my work-in-progress end-to-end-encryption implementation for libQuotient was bad enough to cause performance problems on my homeserver (Sorry about that!). This should be fixed now πŸ™‚

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

πŸ”—Server_stats

MTRNord announced:

πŸ”—Changes

  • Server now uses warp instead of actix-web

  • /relations request instead of 10s now takes 2s overall

  • Added a /servers api endpoint which returns all servers based on the room_ids. (It splits of the server_name from room_ids and puts them into an array)

πŸ”—Bug Fixes

  • Aliases with emoji will now get recognized.

Thanks to jo , Nico , joepie91 πŸ³οΈβ€πŸŒˆ and poljar for helping to archive these improvements and hinting where improvements were possible to be made :)

πŸ”—Dept of Guides 🧭

πŸ”—A guide for creating simple Matrix bots with Python and Simple-Matrix-Bot-Lib

krazykirby99999 told us:

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

Simple-Matrix-Bot-Lib allows anyone who needs a bot in a Matrix Room to do so without having to spend unnecessary time learning a complex framework!

https://i.imgur.com/xL4ZBO3.png https://i.imgur.com/UFsJMzS.png

πŸ”—Dept of Grants πŸ’°οΈ

πŸ”—Code Lutin grant program

numΓ©ro6 told us:

If you live in France (or eurozone) and your Matrix-related project need some funds, you may candidate to the 2021 #MΓ©cΓ©natCodeLutin grant program for FLOSS by Code Lutin. Candidates may fill the dedicated form before july 8th.

πŸ”—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
1kapsi.fi531
2maunium.net678.5
3trolla.us881
4siika.solutions915
5matrix.sp-codes.de991
6imninja.net1110
7aria-net.org1152.5
8fosil.eu1169
9shortestpath.dev1918.5
10kittenface.studio2221

πŸ”—#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.info760
2weber.world1944.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-06-04

04.06.2021 20:37 β€” This Week in Matrix β€” Ben Parsons
Last update: 04.06.2021 19:10

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Wired UK feature article

Wired UK have published a feature on Matrix in their print edition this month. We'll be sure to link to it when it's made available online!

Wired Article

πŸ”—German-universities poll

jfkimmes shared:

I just learned that in a poll of 89 universities in Germany, Matrix ranked third place in the chat category already.

The source is in only available in German, unfortunately: https://zenodo.org/record/4817795

However, the conclusion list (first table) may be understandable from context. It lists the top three solutions per category with their respective number of universities using it.

Oleg clarified:

The evaluation was "which solution are you using".

Florian added:

The Instant Messaging part starts at slide 15, the first chart on that slide is "which solution do you use", the second is "How content are you with the solution?", with Matrix having the best average of all solutions, namely ~8.8/10.

also JCG:

What's also noteworthy: Those using matrix are the happiest with the solution

\o/

πŸ”—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://spec.matrix.org/unstable/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

This week the Spec Core Team has been reviewing various Spaces MSCs, most recently MSC3230 (Space ordering). We're also hoping to square away the aggregations MSCs (message editing, reactions, etc) once and for all, though this will likely take a concerted effort from a few members to pull off.

Finally MSC3231 is a (currently draft status) MSC from Callum, one of Matrix.org's GSoC students this year! His project aims to allow native token-based registration to homeservers (the idea is so that you can generate a few tokens from your registration-disabled homeserver and hand them out to a few trusted friends and family members).

And finally, work still continues on finishing up the technical portions of the new release process for the spec. As mentioned last week, we've attempted to split the work up over multiple people in order to get it done quicker. Slowly but surely...

2021-06-04-I-r8I-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad said:

Hello from the Synapse team! A short update for a short workweek (thanks, bank holidays!):

  • Synapse 1.35 was released this week! The Spaces flag is on by default, a bunch of bugs were fixed, and we've landed many of the prerequisites to eliminating RAM spikes on room joins.

  • πŸ“š We have new docs! πŸ“š Anoa converted our docs to build with mdbook (#10086), and you can now browse them at https://matrix-org.github.io/synapse/! Check it out and let us know what you think. (Note: Not all of the pages have been converted from reStructuredText to Markdown yet, so some might render a bit strangely, but the structure is there!)

Catch you next Friday! πŸ‘‹

2021-06-04-bILM1-image.png

πŸ”—synapse-media-proxy

f0x announced:

Another round of updates on my smart caching media proxy. After refactoring a lot (as always), I implemented thumbnailing! Now the only big feature left to add is url previewing. I also have a test deployment configured on media.pixie.town now, so you can try fetching a bit of remote media through there, or view this submissions screenshot

πŸ”—metrics

Got started implementing a Prometeus /metrics endpoint, with a rudimentary Grafana dashboard for my test installation.

πŸ”—comparison with matrix-media-repo

While they both implement Matrix' media endpoints, they serve rather different niches, where matrix-media-repo fully decouples the media repo aspect, my proxy cooperates with Synapse's filesystem and database, to speed up operation while ultimately making it a seamless drop-in and removal process.

also :P

2021-06-04-WnfPb-image.png

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

And another weekly installment of Kubernetes Helm Chart (and deprecated Docker image) updates, tracking the Synapse releases this week (1.35.0/1).

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Heisenbridge demo video

hifi shared this great demonstation video of Heisenbridge:

Half-Shot hit us late with a pair of updates:

πŸ”—Security release for the matrix-appservice-irc and matrix-appservice-bridge library

Hello. This week we've released an update to the https://github.com/matrix-org/matrix-appservice-bridge/ library containing a security fix for room upgrade handling. The security report will come later, but for now we advise anyone using the room upgrade handler feature to upgrade to 2.6.1. By the same token, we would also advise all IRC bridge admins to update their bridge to 0.26.1.

πŸ”—The Libera.chat bridge is still ongoing

Howdy folks. As you've likely seen over the last few days, we're still hard at work getting the final pegs in place for the libera.chat bridge. As usual, you can start using the bridge now while it's in beta by going to #<foo>:libera.chat, but we're hoping to have the thing stable by next week. Catch us in #libera-matrix:libera.chat for the juicy gossip about it.

πŸ”—matrix-puppeteer-line

Fair reported:

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

  • Send a bridge notice when getting unexpectedly logged out of LINE, to warn you to log in again.
  • Improve resiliency of LINE user avatar syncing.
  • Properly support syncing LINE rooms with participants who aren't in your LINE friends list (This was harder than it sounds...!)

These changes (and ones before it) will be merged to master once I reorganize some messy commits.

The next big task is still to fix outbound read receipts (i.e. to make it so that the bridge syncing a message doesn't make your > LINE contacts think you actually read that message). Once that is done, I'll consider the bridge to be in beta.

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

πŸ”—Dept of Clients πŸ“±

πŸ”—Thunderbird Matrix support

freaktechnik announced:

Thunderbird now has Matrix support based on matrix-js-sdk enabled in the Nightly builds.

The star feature is probably that we support multiple Matrix accounts in the same client. Right now all your unencrypted rooms with text messages should work fine. While we think we won't destroy your account's state, it's still recommended to use a testing account with it. During account setup, it will ask you for a password, even if the homeserver supports SSO. If you intend to log in through SSO, just leave the password field blank.

We're not quite at the point where we support all the things you love about chatting with Matrix. Many of the missing features and polish to make communication successful are tracked in this meta bug. The goal for that milestone is to enable Matrix in our Beta builds.

You can get a Thunderbird Nightly build at the bottom of thunderbird.net by switching from "Beta Channel" to "Nightly Channel". If you run into bugs with the Matrix integration, please report them through this form. When filing a bug, please include debug logs. You can copy the debug logs for the account by going to the "Show Accounts" dialog, right clicking the account and selecting "Copy Debug Log". Note that the debug log may contain information from any of your conversations, so you might want to check the contents before posting it anywhere.

Also, check out Matrix Live!

πŸ”—NeoChat

Carl Schwan announced:

NeoChat 1.2, our third major release, was released this week bringing many improvements to the timeline and text input component. If you missed it, you can read the announcement here: https://carlschwan.eu/2021/06/01/neochat-1.2-bubbles-better-text-editing-and-more/ and we even have a nice release video :) https://www.youtube.com/watch?v=4lcH4tm6uTk

Other than that, we started working on an integration with KDE web shortcuts functionality to quickly search selected text on the web: https://invent.kde.org/network/neochat/-/merge_requests/279.

2021-06-04-KGrID-image.png

πŸ”—Nheko

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

Callum, our GSoC student, after spending some time on Synapse, had now his first go at Nheko's codebase. He implemented, that you can now just enter the server name on registration instead of the full URL. This means entering conduit.rs or matrix.org works now nicely, since those servers are actually hosted at a different URL. He's now working on the Token Registration MSC, which he will implement in Synapse and Nheko, so exciting times ahead!

We also had a small contribution from pcworld, who fixed that if you only viewed the room list in the narrow layout, you would not get notifications for the last selected room.

I'll leave you with some words, that you may have heard a few times already: "Watch this space for next weeks update!"

πŸ”—Fractal

Alexandre Franke reported:

A dozen merge requests have been integrated in our fractal-next branch since last week.

Amongst the more trivial changes, Julian made sure rooms are added to the sidebar in batch (!737) to improve performances, added in-app notifications for invite errors (!760), added a menu entry to leave rooms (!769), and implemented display of user and room avatars (!770). We also gained a right-click-menu entry to display event sources thanks to KΓ©vin (!766).

πŸ”—Element Clients

Updates provided by the teams.

Delight team

  • We’re continuing progress on implementing Blurhash on Web & Android to improve the image loading experience, especially on low bandwidth
  • On Spaces, we’ve started working on the ability to drag and drop to re-order Spaces, along with improving adding aliases to public Spaces

Web

  • 1.7.30 RC on staging
    • Improved layout performance in the timeline and room list
    • Refined the message action bar UI
  • Continuing to improve application performance
    • Recent focus on minimising browser layout work when things change
    • Reducing DOM size
  • Working on Apple silicon desktop builds

iOS

  • 1.4.0 is available on the public TestFlight. We expect to make it available on the App Store on Monday. It has:
    • Performance improvements
    • Crash fixes
    • New languages: Esperanto, Portuguese (Brazil), Kabyle, Norwegian, Swedish, Japanese and Welsh.
    • There are some API breaks in MatrixSDK due to those performance improvements.
    • We have now a MXLog module with log levels! It is now possible to disable all logs from MatrixSDK
  • We continued to work on performance and stability and will continue to for the coming sprint period: https://github.com/vector-im/element-ios/milestone/55

Android

  • 1.1.8 has been released to production, and 1.1.9 has been released to beta on the PlayStore
  • We are currently working with the design team on the light and dark theme of the application, especially colors and text appearance. Lots of cleanup to do...

πŸ”—Hydrogen

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

Bruno announced:

Released Hydrogen 0.1.56 this week, with redactions. In the meantime, I've been making good progress on reactions, which should hopefully get released early next week. Midhun has made good progress on the right panel, ironing out the last bugs.

Here's a sneak preview of reactions (with slow network to show off the local echo animation):

2021-06-04-0GlkZ-hydrogen-reactions-preview.gif

πŸ”—kazv

tusooa reported on kazv:

kazv is a matrix client based on libkazv. Talk to us on #kazv:tusooa.xyz.

πŸ”—Updates

I guess it's a long time from our last twim. Here's what is going on in that time:

  • We used fluent for translations. https://lily.kazv.moe/kazv/kazv/-/merge_requests/1
  • We supported read and save client state. https://lily.kazv.moe/kazv/kazv/-/merge_requests/2
  • A work-in-progress, but we are displaying some common event types; there are even chat bubbles (>w<) Check out a screenshot below: (yes, and we got a new logo)

kavz

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

πŸ”—Matrix @ FrOSCon this year

Oleg said:

On August 21-22 the annual Free and Open Source Conference (short FrOSCon) will take place. Usually the conference takes place in a German University of applied Sciences Bonn Rhine Sieg. This year it will be virtual. On the positive side - we don't need to travel.

As German Matrix community grows this is a great opportunity to meet each other and hack together.

πŸ”—Matrix Dev Room

We are planing to do a virtual Dev Room this year. The idea is to exchange on the latest Matrix development and projects, get to know each other and drink <your_favorite_beverage> (virtually) together. πŸ˜‰

πŸ”—To make it happen we need your help!

πŸ”—Dev Room is living from talks and workshops - this is your chance to present your Matrix project or to do a workshop!

Language: preferably German, but English is also ok

Submission is until 2021-06-11, but please give us feedback ASAP so we can create a plan now.

If it's your first talk or workshop some free of charge coaching is included. πŸ˜‰

Also help in organizing the Dev Room (moderation, timekeeping) is needed.

πŸ”—Matrix Open Source booth

It was a great place to chit-chat and to get your in-depth answers regarding Matrix at FOSDEM this year. πŸ‘οΈ

We also planing to have a virtual booth at FrOSCon.

We need your support in answering questions about Matrix or just to have a good time.

πŸ”—Get in touch

πŸ”—If you want to take part please contact @oleg:fiksel.info (or [email protected]) ASAP to add you to the Dev Room participants list.

BTW: we also have a #FrOSCon:fiksel.info room

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

πŸ”—Circles

cvwright reported:

  • Set up a new (virtual) EU homeserver in Frankfurt, so European folks can join the beta starting next week

  • Use StoreKit to detect when a user is in Europe and should therefore use the EU homeserver, both for GDPR and to minimize latency

  • Made some progress toward supporting m.video messages

  • Experimented with using the new iOS photo picker to better protect users' privacy Homepage: https://kombuchaprivacy.com/circles/ Source code: https://github.com/KombuchaPrivacy/circles-ios

You can also support circles on Kickstarter.

πŸ”—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
1lama-corp.space492
2trolla.us526
3int21.dev569
4fosil.eu727
5d0.ee728
6nordgedanken.dev740.5
7feneas.org805.5
8maescool.be1073.5
9matrix.sp-codes.de1077
10coffespot.com1490

πŸ”—#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.info1152
2dendrite.s3cr3t.me1386
3weber.world8297.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-05-28

28.05.2021 21:38 β€” This Week in Matrix β€” Andrew Morgan
Last update: 28.05.2021 21:14

πŸ”—Matrix Live πŸŽ™


A classic "Matthew & Amandine" episode. This week: Spaces, Reputation, Low-Bandwidth, P2P & more!

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa gifted us with:

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

πŸ”—MSC Status

Lots of new MSCs appearing this week!

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

The Spec Core Team is working towards finalising the remaining spec PRs and the new spec release process. Good news is there's only one final spec PR to go! Bad news is it's probably going to be one of the hardest :)

Otherwise the team was pleased to see that noticeable progress is being made on the MSC backlog. But that doesn't mean we get to rest on our laurels!

2021-05-28-u8l6Y-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad said:

We have interns! In addition to Matrix.org's participation in Google Summer of Code, Element has funded two Outreachy interns to work on backend projects, and we're overjoyed to welcome the following folks to Matrix:

  • Shay (Outreachy) is focused on modernizing Sydent and Sygnal, our reference implementations of a Matrix Identity Server and a Matrix Push Gateway respectively.
  • Meenal (Outreachy) is helping us improve Complement, and modern replacement for SyTest, our homeserver integration test suite.
  • Callum (GSoC) is working on adding support for restricting homeserver registration to users with pre-shared invite codes.

Welcome Callum, Meenal, and Shay!

We're also working to unify and standardize the module API which is used to extend Synapse, and your feedback would be very welcome. Similarly, if you have any experience with adding custom modules to Docker images or Debian packages and have thoughts on how we should best support that (or just examples of projects which do that well), please weigh in at #9944.

Lastly, we're looking forward to the release of Synapse 1.35 which will bring significant improvements to memory use during room joins, but that's for next week. πŸ˜‰

A very warm welcome to all of our Outreachy interns and Google Summer of Code students this year! You can see the full list of GSoC students in our Google Summer of Code 2021 blogpost.

πŸ”—synapse-media-proxy

f0x announced:

I've been working on a smart media worker/proxy, to offload initial spikes in traffic for homeservers behind slower network uplinks.

There's a <remote> component that sits on a small vps, handling the upload and download endpoints (and soon, thumbnails), with an in-memory cache to quickly respond to requests. Media still gets forwarded to the <local> component where it gets stored in Synapse's media folder with an accompanying database entry, so all media is still stored long-term in the way Synapse expects it to be, so the proxy can be removed at any point.

Currently not production ready but you're welcome to snoop around the repo :)

https://git.pixie.town/f0x/synapse-media-proxy

Seems like quite a useful project! Other adventures in splitting out the media server from the homeserver include TravisR's matrix-media-repo project.

πŸ”—Conduit

Conduit is a Matrix homeserver written in Rust.

timokoesters reported the latest updates since last week:

  • Feature: Implement /claim

  • Feature: Handle incoming to-device events

  • Feature: Implement /query

  • Improvement: Faster signing key storage

  • Improvement: Documentation for Appservices

  • Fix: State resolution bugs

  • Fix: Respond to unauthorized PDUs with FORBIDDEN

  • Fix: Forward errors from remote servers (e.g. unsupported room version)

Timo also shared with us a milestone dashboard for Conduit being production-ready: https://gitlab.com/famedly/conduit/-/milestones/3. It's exciting to see the multi-implementation Matrix homeserver landscape really beginning to take shape!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace announced:

Another weekly Kubernetes Chart update, this time only for element-web though - which was updated to 1.7.29.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—libera.chat IRC network news

Half-Shot tells us:

Hey folks, some of you (well, frankly most of you) wanted to hear about our plans for libera.chat. I've been hard at work this week building a brand new bridge which is hosted on the libera.chat homeserver and it's nearly ready to go. We're just making a few final preparations before taking it out of beta, but it's currently available as a portaling bridge. You can currently reach any channel on libera.chat by joining #<channel_name>:libera.chat. You can also add the homeserver to your room directory in your Matrix client to search all the bridged rooms.

We're also hanging out in #libera-matrix:libera.chat, if you have any questions. Of course, the bridge is proving to be very popular so please be patient :)

Definitely one of the most sought-after Matrix bridges lately. Props to Half-Shot, Libera.Chat and everyone else for getting it all together in such short notice.

πŸ”—Heisenbridge Updates

hifi told us:

πŸ”—Plumbing IRC channels πŸ§‘β€πŸ”§

Somewhat experimental feature that has landed this week is the ability to use single puppeting in a public Matrix room to bridge IRC channels.

This support comes through a new PLUMB admin command for network rooms that will ask the bridge bot to join a public Matrix room and an IRC channel.

On IRC side there will be only a single user/bot that will relay messages from Matrix users. This is a stop-gap between fully puppeting Matrix users on IRC and doesn't need explicit permission from an IRC network to use by channel operators as long as bots are allowed.

On Matrix side puppets will join and leave based on their presence on the IRC channel. The bridge bot does not need any special permissions in a room as it doesn't do permission synchronization so it can be kept without any power levels.

Unplumbing a room is as simple as kicking the bridge out and it will take the puppets with it.

As this is a fairly new feature it does have some rough edges so feedback is greatly appreciated.

With all this said, if you're in the need to bridge any IRC channel on any network with little friction, Heisenbridge should have you covered!

πŸ”—SASL support πŸ”’

If you're using Heisenbridge to connect to Libera.Chat from a network block that has SASL enforcement enabled (like some VPS providers) you can now configure SASL credentials to authenticate at connection time to bypass this restriction.

This only implements SASL PLAIN for now. Certificate authentication may be looked at in the future.

πŸ”—But that's not all

  • Identd will now always provide a unique ident for everyone

  • Improved detection for stalled connections

  • IRC user ghosting issues fixed for good 🀞

  • Server TLS cert checking fixes, self-signed support

  • Initial bridge DM invites should go through more reliably

  • QUIT command to leave from all networks in one go

  • Automatic Docker Hub images from master (amd64 and arm64)

In addition Heisenbridge is now featured on matrix.org πŸ₯³

πŸ”—matrix-puppeteer-line Updates

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

Fair offered:

This week brings a variety of assorted bugfixes & feature improvements in the testing branch. Included are:

  • Support for m.sticker events for LINE stickers (with an option to use m.image if preferred)

  • Clear resolution of LINE emojis, and a config option to scale them (since they're tiny by default)

  • Less frequent re-downloading of already-seen LINE stickers/emoji (there are limits to this, but it's still an improvement)

  • Option to disable syncing LINE stickers/emoji (in case re-hosting LINE imagery is a liability)

  • More reliable message syncing (should never get "Decrypting message..." or invisible images/stickers/emoji anymore)

  • Fix crashes during inbound message & read receipt syncing of multi-user rooms

Like last time, testing is much appreciated πŸ˜€

Remaining big tasks are:

  • 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 (I mentioned this a while ago; it's still a todo)

  • Support for multiple bridge users at once (A public instance of the bridge will only be considered once multi-user support is ready)

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

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

πŸ”—Dept of Clients πŸ“±

πŸ”—NeoChat Updates

NeoChat is a Matrix client written using KDE technologies, most notably the Kirigami UI framework.

Carl Schwan reported:

The past few weeks have been busy with fixing bugs. As a result, we plan to release NeoChat 1.2 next week. You can help by testing the Flatpak beta version of NeoChat: flatpak install https://flathub.org/beta-repo/appstream/org.kde.neochat.flatpakref.

Aside from bug fixing, Tobias worked a bit on E2EE encryption in Quotient and Noah added a fancy typing indicator.

2021-05-28-jvofQ-image.png

πŸ”—Nheko Updates

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

AppAraat told us:

  • I added mnemonic shortcut keys to the context menu. Now you can react and reply even faster! (Thanks Nico for all the guidance :))

  • Nheko is now available on the Chocolatey package manager for Windows, yay!

2021-05-28-GwdUf-clipboard.png

πŸ”—FluffyChat Updates

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

krille announced:

FluffyChat 0.31.1 has been released with a lot of bug fixes, stability improvements, minor redesigns and a lot of refactoring under the hood.

πŸ”—Feature

  • Cute animation for hiding the + button in inputbar

  • Improved chat bubble design and splash animations

  • Zoom page transition on Android

  • SSO is now an option even if the server supports password login

πŸ”—Fixes

  • "Pick an image" button in emote settings doesn't do anything

  • Emoji picker

  • Status bar and system navigation bar theme

  • Open URIs and receive sharing intent on iOS

  • SSO on iOS

  • Workaround for iOS not clearing notifications

  • Send read markers

2021-05-28-wPAPg-scaled_screenshot_20210522-101152_fluffychat.jpg

πŸ”—Fractal Updates

Fractal is a Matrix client written in Rust, and one of the first to use the matrix-rust-sdk!

Alexandre Franke offered:

Since last week, a couple things landed in fractal-next. Julian added support for accepting/rejecting invites (!754/#759). KΓ©vin did an internal restructuring of how we handle the SyncResponse in !759. The visible consequence for users is that room categories (also known as tags) are updated directly in Fractal when the user changes it from an other client. He also switched from comrak to ruma’s markdown in !756. It shouldn’t have any impact for users, but should mean less code in the end on our side and more consistent code as well.

2021-05-28-Hlji9-image.png

πŸ”—Element Client Updates

Crafted by the Element teams.

Delight

  • Spaces: We’ve been listening to, investigating, triaging and organising feedback from the beta so far. There’s a lot to get through, but thanks to everyone who has submitted feedback in-app in Element so far! The insight has been invaluable and is instrumental in shaping up our next milestones.
  • Papercuts: We’re also organising and fixing small issues throughout Element, biasing for highly visible issues which have the greatest impact and reach, affectionately titled β€˜papercuts’. Expect more info on these soon, but for now a fun one to highlight is we’re implementing blurhash on Web & Android (with iOS to follow soon after) to improve previewing and viewing images, especially when on low bandwidth.

Web

  • 1.7.29 released
    • Improved startup performance by focusing decryption on recent rooms
    • Fixed reaction duplication
  • Sorting out why we sometimes see "missing translations" hopefully for good this time
  • Continuing to improve application performance
  • Started work on Apple silicon desktop builds

iOS

  • We continued to work on technical subjects:
    • Stabilisation and performance improvements
    • New logging system. It will be possible to disable all logs for MatrixSDK, MatrixKit and Element-iOS
    • The code that manages application navigation in Element-iOS has been updated. It will allow us to add a slide menu to display things like user spaces.

Android

  • Element Android 1.1.8 has been released on the beta track of the Google PlayStore. It will probably be pushed to production at the beginning of next week. The Android matrix SDK2 has also been released.
  • This week, we implemented the ability to change the network when looking in the room directory. Also gitter.im has been added to the default network list. See some screenshots in https://github.com/vector-im/element-android/pull/3419
  • Lots of improvements regarding Spaces have also landed to develop.
  • Besides that, we are still fixing issues and perform regular maintenance on the project

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—autodiscover-server-configuration

f0x said:

I forked autodiscover-client-configuration to implement the Server-Server counterpart of getting the API endpoint from a server_name.

Package published on NPM: https://www.npmjs.com/package/@f0x52/autodiscover-server-configuration

Repository: https://git.pixie.town/f0x/autodiscover-server-configuration.git

πŸ”—Dept of Services πŸš€

GoMatrixHosting is a SaaS Matrix hosting platform.

Michael reported:

We are finally open for business. Start your own Matrix service today with GoMatrixHosting!

https://www.gomatrixhosting.com/2021/05/23/gomatrixhosting-is-here/

And quite soon after:

GoMatrixHosting v0.4.7 has arrived!

  • reinvented database purging section, separated final shrinking that causes downtime.
  • fixed AWX issue causing rust-synapse-compress-state section to not execute.
  • added more reliable script method of generating the total room list.

Check us out on GitLab: https://gitlab.com/GoMatrixHosting/

Or come say hello at: #general:gomatrixhosting.com

πŸ”—Cactus Comments 🌡

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

AsbjΓΈrn reported:

Web Client v0.10.0 is out!

  • Allow commenting with Markdown.

  • Pluralize time units properly.

  • Enforce maximum nesting depth of 100 when sanitizing org.matrix.custom.html-formatted messages.

/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

πŸ”—Beeper Update

Beeper is a Matrix client and service that makes it easy to connect all your digital communications in one place.

Eric Migicovsky told us:

Been a while since our last update! The biggest development is that we've hired some fantastic members of the community including SpiritCroc from SchildiChat to work on Beeper Android and Kilian from Nio to work on Beeper iOS.

  • Beeper Desktop reached 2.0.0 with much improved performance and UI. Video Walkthrough

  • Released Beeper Android to Play Store

  • Switched domains from Beeperhq.com to the shiny new beeper.com

Projects in the works

  • Beeper iOS (SoonTM)

  • Adding Infinite backfill to all bridges.

  • Improvements to iMessage bridge (adding tapbacks and reply support)

We are hiring React, iOS, Android and SRE/Devops engineers. If you're interested, send me a DM! 100% remote, we'll hire you anywhere you are.

2021-05-28-y-Bs5-image.png

Eric's Matrix ID is @eric:beeper.com. Reach out if you're interested in getting involved!

πŸ”—Dept of Bots πŸ€–

πŸ”—Airlock, the space invite bot

Robin announced:

If you want to use spaces to run an invite-only community, but can't wait for knocking and restricted room membership to make their way into a stable room version, you may be interested in Airlock, a very simple bot that I wrote to automatically invite people to a space's rooms and subspaces when they join.

It requires zero configurationβ€”just invite the bot to your space and all of the rooms and subspaces within it, make sure it has invite permissions, and you're good to go! You're welcome to use my hosted version @airlock:townsendandsmith.ml, or run it yourself.

It's great to see people building useful tools to bridge the gap as Spaces inches closer out of beta.

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

πŸ”—Host your blog on Matrix

evol told us:

About a month ago I came up with the idea that it would be interesting to use Matrix as an API for a blog. Sometime later it turned out that it's possible, and one thing led to another, and now I have a blog hosted on Matrix πŸ˜ƒ

Long story short, the blog is a space and each post is a room within that space. This allows you to read the posts in your Matrix client of choice and also have discussions right underneath the content.

You can read more details on how it's done on the blog itself (incl. links to ugly code on my Github): https://evolved.systems/hosting-a-blog-on-matrix/. If you want to chat about this, join #blog:evolved.systems !

Longtime readers may remember Luke Barnard's take on the concept of Blogs built on Matrix back in 2019 with Journal. It's really exciting to see a modern version of this concept - and using Spaces no less!

πŸ”—Server_Stats Updates

Server_Stats is a project to make statistics about the Matrix network neatly catalogued and browsable.

MTRNord said:

πŸ”—Space List

The tool now has a separate list for rooms that are spaces at https://serverstats.nordgedanken.dev/spaces this allows you to find Spaces easily and fast :)

πŸ”—Other Updates

  • A bug in the sdk combined with appservices did initially have for some rooms the ban not recognized. This is now fixed and those rooms are hidden again from the API. Sorry for the inconvenience.

  • Safari should now also work after fixing a setting.

Check out the Source at: https://github.com/MTRNord/server_stats or join the room at #server_stats:nordgedanken.dev for questions :)

πŸ”—Circles

Circles markets itself as a private, end-to-end encrypted social network built on top of Matrix.

farribeiro announced:

Good news folks

The Circles beta is open source

https://github.com/KombuchaPrivacy/circles-ios

It's AGPL for now

But automatically transitions to dual-license under AGPL / Apache 2.0 when 'Murica turns 250 years old. (July 4, 2026, for my international friends)

I love seeing Matrix projects dipping into the social networking sphere. It's an untapped market!

πŸ”—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
1rollyourown.xyz534
2maunium.net548.5
3trolla.us746
4matrix.sp-codes.de750
5xethos.net760
6blackline.xyz952.5
7fab.network1010
8lo.hn1096
9dendrite.foxomy.com1125
103icn.net1220

πŸ”—#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.info935
2dendrite.foxomy.com1154.5
3dendrite.s3cr3t.me3392

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

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa reported:

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

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

Closed MSCs:

πŸ”—Merged Spec PRs

πŸ”—Spec Updates

Travis rolled out MSC3202 to aid in the quest for end-to-bridge encryption without having to rely on /sync. Otherwise the Spec Core Team has been reviewing MSCs and focusing on the last remaining spec PRs needed before cutting a new spec release. Watch this space!

Matrix Spec Change Proposals status chart

Awesome to be able to VISIBLY see the progress in that graph!

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

The big news this week was the launch of Spaces, supported by the release of Synapse 1.34.0.

However, there were quite a few other fixes, improvements, and additions: I'd encourage you to read the release announcement for those.

But more than anything, we're hard at work realizing the room-join memory improvements we talked about in last week's Matrix Live, and we expect to have some exciting news to share next week. Concretely: the pull request to support incremental parsing of join responses was merged, and several pull requests (#10017, #10018, #10035) to simplify and slim down the code for verifying event signatures are in review.

See you next week! πŸš€

πŸ”—Conduit

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

timokoesters said:

Here are some Conduit news!

  • Feature: Handle incoming read receipts over federation

  • Feature: Send read receipts over federation (MVP done)

  • Improvement: Make UIAA (user-interactive authentication API) work like in Synapse (this gives us better client support)

  • Refactor: Sending code refactored to make EDUs over federation possible

  • Fix: Remove old presence events when restarting Conduit

  • Fix: Array bounds bug in server_server.rs

  • Fix: Power level content override adds to the default event instead of replacing it

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace said:

And this week brings another instance of the regularly scheduled Kubernetes updates, with Element-web going to 1.7.28 and Synapse having been bumped to 1.34.0 on both the deprecated image and the chart.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—libera.chat IRC network news

Half-Shot offered:

Howdy folks! I'm sure many of you read the news about the new libera.chat IRC network starting up, and many of you also reached out (via pretty much every channel available) to ask about a potential bridge. libera.chat are doing a remarkably good job of getting spun up but are hyper busy with all the inbound users and need a bit more time, so in the meantime I would ask that everyone subscribe to https://github.com/matrix-org/matrix-appservice-irc/issues/1324 to listen for changes as they happen.

The matrix.org bridge team are on the case! Expect news in the near future :)

πŸ”—Dept of Clients πŸ“±

πŸ”—Element Client Updates

Submitted by the teams

Delight

  • Spaces are now live! πŸš€ Test them on Element Web, Desktop & Android (iOS is coming soon!)
  • In short, Spaces are a new way to group rooms and people together, and are slated to replace legacy groups/communities
  • We’d love your feedback! Either submitted in app or in #spaces-feedback:matrix.org
  • Read the full blog post

Web

  • 1.7.28 released
    • New spaces Beta (new way of grouping rooms and people)
    • Added support for slash commands working in edits
  • 1.7.29-rc.1 on staging
    • Improved startup performance by focusing decryption on recent rooms
    • Fixed reaction duplication
  • Continuing to pursue application performance generally
  • Improving day to day developer experience with more TypeScript conversion

iOS

  • 1.3.9 has been published on the app store
  • Some performance improvements have been merged on develop:
    • Reduce the number of decryptions. A decryption takes about 5ms on iPhone X. On an account with 500 rooms this allows us to skip thousands of decryptions on an initial sync
    • Those decryptions do not happen anymore on the main thread

Android

  • Lots of dependency upgrade following the release with Space (1.1.7).
  • Next release candidate, 1.1.8 will also contain improvements on Spaces.
  • We have set up towncrier flow to better handle changelog generation.
  • Also Element Android project is now using GitHub actions, but it cannot run the integration tests for the moment.

πŸ”—Fractal

Alexandre Franke offered:

As announced in the general Matrix GSoC post, we are lucky to get two interns this year again. Alejandro (whose previous work includes switching to matrix-rust-sdk for syncs) will implement multi-account support, while Kai (also a regular contributor by now) will help bring our application rewrite to the same functionality level as our current nightly and stable versions. Both projects will build on top of Fractal Next.

Julian came back from his vacation and immediately got quite busy reviewing and merging contributions from others. Kevin (also known as zecakeh) and him made good progress on several fronts:

  • Room handling was improved. We now keep track of whether the user joined them, left them, or has been invited to them, as well as their categories (favourites, low priority…).

  • The sidebar uses these categories and now uses a single list with GtkFilterListModels instead of one list per category. The greatly simplifies code for things like moving a room from one category to another.

  • History style has been tweaked, state events and timestamps have been added.

  • Markdown can be enabled from the newly implemented popover and the message composer offers syntax highlighting, although a bug currently makes it so that sent messages are still not sent with a formatted_body.

  • A persistent state store is used to load rooms on startup while sync is in progress.

Last but not least, new contributor Raatty implemented room name and topic display in the header bar.

2021-05-21-zHc3a-image.png

πŸ”—Hydrogen

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

Bruno announced:

Released 0.1.53 with support for linking to room this week, which should allow to add Hydrogen to matrix.to soon. Also started working on redactions, which is useful in itself and also lays the foundations for reactions and edits coming next.

πŸ”—Nheko reviewed

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

Check out this flattering portrait of Nheko on the Brodie Robertson "Linux Tips & Tricks" channel.

https://odysee.com/@BrodieRobertson:5/nheko-reborn-lightweight-native-matrix:8

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma

Ruma is a set of Rust library crates around Matrix

jplatte offered:

We've been quiet in the past weeks, but certainly not due to lack of activity! So many awesome things have happened, I don't even know where to start. I guess I'll go chronologically:

We published so many new crate releases. Most of our crates didn't see non-alpha releases for almost a year and now we've finally reset that counter! Now you can depend on ruma 0.1 and get bug fixes and new functionality through cargo update without having to worry about breaking changes. Huge thanks to @zecakeh for automating our release process, without that this would have taken so much longer.

We got initial spaces support! I'm super excited that we're now enabling client authors to take spaces into account, even if "taking into account" will initially just mean filtering out space rooms from their room lists. Code-wise, this was actually a relatively small change, with ruma-client-api receiving support for room types and ruma-events receiving support for the event types m.space.child and m.space.parent.

We're swapping out ruma-signatures' crypto library. Since ring, which is what we've been using so far, doesn't currently support cross-compilation to WASM, there's long been some interest to exchange it for something else for webbrowser homeserver experiments. A viable alternative library was identified a while ago and now @ShadowJonathan has taken on the task of implementing the switch.

In addition to unblocking the WASM usecase, this work revealed a bug in ring, which generated invalid PKCS#8 documents. We are pretty confident that once the switch away from ring (including a small compatibility shim to convert the invalid documents), a certain class of signature verification failures that Conduit has been getting will be fixed.

We're taking part in GSoC again. As you might have seen in the earlier blog post, two students are working on Ruma as part of GSoC this year: @Frinksy (for the first time) and @DevinR528 (for the second time).

Apart from that,

πŸ”—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 Aaron Raimist, matrix-docker-ansible-deploy now supports Hydrogen - a new lightweight matrix client with legacy and mobile browser support.

By default, we still install Element, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook.

Additional details are available in Setting up Hydrogen.

Also...

Thanks to Toni Spets (hifi), matrix-docker-ansible-deploy now supports bridging to IRC using yet another bridge (besides matrix-appservice-irc), called Heisenbridge.

To get started, see our Setting up Heisenbridge bouncer-style IRC bridging documentation.

πŸ”—Dept of Services πŸš€

πŸ”—etke.cc updated

Aine reported:

etke.cc updates

etke.cc is "spantaleev/matrix-docker-ansible-deploy as a service" and we got some updates:

  • New services: miniflux, wireguard, languagetool, email service for you domain (based on awesome Migadu) and consultations

  • Website redesign - made with ❀ ourselves instead of old generic template

  • announcements room migrated to public room without encryption, but with invites and previews

πŸ”—Dept of Bots πŸ€–

πŸ”—Community -> Space Bot

TravisR said:

If you're trying out all those cool Spaces (Element Blog) and have some old Communities/Groups hanging around, I have the bot for you.

spacebot makes quick work of the conversion by translating as much as possible to the Space structure. Simply DM the bot and say !convert +group:example.org and it'll go off and make your Space.

The bot doesn't invite everyone from your Community to your Space, giving you a chance to configure the Space further before advertising it within your rooms.

The source can be found on GitHub if you feel like running your own or seeing how simple it is under the hood. #spacebot:t2bot.io is a great place to get help if you're having problems getting it going, and #help:t2bot.io would be glad to assist you if the t2bot.io deployment doesn't do the right thing.

P.S.: Spaces are currently considered Beta in Element, so they might not be perfect just yet. #spaces:riot.ovh is the room to join if you have questions about Spaces.

πŸ”—Hemppa

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

Cos offered:

Hemppa the bot is a general purpose Matrix bot written in Python. This week it gained two useful admin tools: Kick by wildcard (for cleaning up zombies after bridge decomission) and making tombstones to point room to a new one. https://github.com/vranki/hemppa

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

πŸ”—raspberry-noaa-v2 matrix support

Cadair said:

A little bit different, but matrix related, this week I added Matrix push support to the raspberry-noaa-v2 project. This is a project which runs on a raspberry pi to automate receiving, decoding and post processing of images over radio from weather satellites. It's easy to build a cheap ground station for this with little more than a USB SDR dongle and a metal coat hanger. If you want to see the pictures I am decoding you can join #weather:cadair.com.

Cadair, living in the north of England, will only see this symbol unfortunately 🌧️

πŸ”—Server_Stats Voyager Project

MTRNord announced:

The Project now has a proper webpage at https://serverstats.nordgedanken.dev/ !

πŸ”—Newly added Features are:

  • A List of all the rooms that are found

  • A list to find the links (either outgoing or incoming) for a room. So a 1 level deep view into the graph as a table.

  • An FAQ with some information about the project, known data issues and more

  • A websocket at wss://serverstats.nordgedanken.dev/ws that allows you to get the updates directly pushed as soon as a room lands in the db. Effectively the fastest way to get data updates.

πŸ”—Planned features for the webpage

  • AR and VR Graphs

  • A Space Finder that allows you to find the discovered spaces

Be aware that this page is very new and therefor might have bugs. It also isn't yet mobile optimized.

For questions, suggestions or fast updates check the #server_stats:nordgedanken.dev Room or for questions regarding issues with the bot in a specific room feel free to write a DM to MTRNord :)

πŸ”—Possible Bug that needs manual fixing

Due to a bug with my homeserver or synapse it happens for some rooms that synapse generates a lot of join events (Lots of "server_stats bot made no change" messages). If you see this please write a message to MTRNord so I can manually prevent my bot from trying to join the room over and over again as I cannot easily detect this kind of issue before joining.

The issue can be followed at https://github.com/matrix-org/synapse/issues/10021

πŸ”—midnight from cvwright

cvwright offered:

This might be of interest for TWIM. It's a little web app that supports token-based registration in the Matrix UIAA. Sort of like matrix-registration, but aiming for compliance with the UIAA spec

https://github.com/KombuchaPrivacy/midnight

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

πŸ”—Circles, new social network on top of Matrix

cvwright offered:

Circles is a new project to build an E2E encrypted social network on top of Matrix. https://www.kombuchaprivacy.com/circles/ https://www.kickstarter.com/projects/cvwright/circles-a-secure-social-app-for-friends-and-family

It's really early days for this project, but please check it out!

πŸ”—Final Thoughts πŸ’­

farribeiro reported:

The fedora project is discussing which domain to take in https://discussion.fedoraproject.org/t/so-what-domains-should-we-use-for-our-matrix-server/29842

Un-burying the lede: Fedora are making the jump to Matrix!

πŸ”—Dept of Ping πŸ“

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

πŸ”—#ping:maunium.net

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

RankHostnameMedian MS
1the-apothecary.club463.5
2fosil.eu539
3helderferreira.io545.5
4trolla.us579
5zheng.fi639
6alra.uk702
7feline.support759.5
8thomcat.rocks770
9jae.fi777.5
10roeckx.be1033

πŸ”—#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
1lankolol.de392.5
2zemos.net2251

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

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

πŸ”—Matrix Live πŸŽ™

This week Dan talks to Erik about the state of Synapse generally, and in particular the work Erik has been doing for performance.

Plus! Bonus content, demos! Half-Shot on the MS Teams bridge work, and Hubert previews Matrix over MLS!

πŸ”—Dept of Spec πŸ“œ

Matthew reported:

Some combination of me, Kegan, Bruno and neilalexander have been working on v3 of the CS /sync API. (Today's /sync API in matrix is v2; v1 was the old /events API). We're not yet at the point of publishing a draft or MSC, but it's coming soon. It's really exciting work which flips Matrix around so that sync scales independently of the number of rooms you're in - and it's at last possible to write rich clients which only ever sync the bare minimum data needed to work: i.e. lazy loading eeeeeeeeverything. Watch this space :)

anoa told us:

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

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

πŸ”—Merged Spec PRs

Here are all the actual MSC-related changes made to the raw Matrix spec this week!

πŸ”—Spec Updates

There's been activity from the Spec Core Team on a number of different MSCs, such as MSC3189 (per-room/space profile data). Additionally a spec PR for Matrix URI schemes has been getting feedback and is moving forward at a quick pace! There was also some feedback from the team on MSC2448 (blurhashes) which I'll get around to answering shortly πŸ™‚.

Otherwise I think this week was a bit implementation-heavy for the team (the Spec Core Team is a task in addition to our full-time jobs). Hopefully next week will grant us more of a breather.

2021-05-14-wdmML-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad announced:

Hello TWiMmers! The bulk of our update is in Matrix Live today, so go check out the video above ☝️ to hear about how we're reducing the amount of memory it takes to join large rooms, and why joins take so much memory in the first place.

Otherwise, we're mainly getting ready for the public debut of Spaces as a beta feature, but more on that next week... πŸ˜‰

Oh, and before we go: please make sure your Synapse is up to date! We released 1.33.2 on Tuesday, which contains a low severity security fix.

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace offered:

Another installation of the regularly scheduled Kubernetes Helm Chart updates (and another bump of the deprecated Synapse image). Now up to Synapse 1.33.2 and Element Web 1.7.27.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-puppeteer-line

Fair told us:

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

This week was spent on stability improvements & bug fixes.

Calling for testers! The bridge is at a point where it's mostly usable, but it still has quite a few blindspots. If anyone is willing to try it out & report issues, it would be a great help!

Discussion: Matrix-LINE Puppeteer bridge Issue page: https://src.miscworks.net/fair/matrix-puppeteer-line/issues

Shout-outs to @lecris:lecris.me for being an early tester & having given a lot of useful feedback πŸ™‚

πŸ”—Gitter

Eric Eastwood reported:

Last time, we updated you on starting DM conversations with Gitter users from Matrix. Now we have the other side of this complete! From Gitter, you can now start a one to one conversation with someone you see from Matrix πŸ˜€

Just hover over their avatar to bring up the user popover, then press the "Chat privately" button. πŸ—£

2021-05-14-VYQjI-chrome_2021-05-12_18-38-44.png

πŸ”—matrix-appservice-irc 0.26.0

Half-Shot reported:

Goooooooood afternoon folks and happy Friday! This week we're announcing the 0.26.0 release of the matrix-appservice-irc bridge which contains precious goodies:

  • You can now disable the kick behaviour of the bridge on Matrix users if you are running a personal bridge, so losing your IRC connection no longer results in a kick.

  • You can now remove bridges from rooms by using the admin room, so no need to use the provisioning API or modify the DB.

  • We've added a new feature to allow you to specify bridge options on a per room basis using room state. At the moment you can modify the limits of the automatic pastebin system but more features like reply formats are to come!

As always please come tell us about it in #irc:matrix.org and make sure to check out the new docs if you get a bit stuck.

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

Hydrogen can now leave rooms and forget archived rooms. URLs are now also clickable in the timeline. Get the full details in the release notes!

2021-05-14-iIgrd-image.png

πŸ”—Element Clients

Updates from the teams

Web

  • Element Web 1.7.28 is up on staging, targeting Monday for release.
    • New spaces Beta (new way of grouping rooms and people)
    • Added support for slash commands working in edits
  • On develop:
    • Voice messages are nearing completion - enable the labs flag and give it a go :)
    • Performance improvements to app startup time. Let us know if you run into any issues!

iOS

  • 1.3.7 is available on TestFlight. It should be on the App Store on Monday. Spaces are not yet available on Element-iOS but the app offers minimal support. The release contains a fix for background crashed due to PushKit
  • At the platform level, we are still improving stability and performance:
    • Decryption operations to be moved outside the main thread
    • More robust on initial sync
    • etc

Android

Delight

  • β€œSpaces are coming” (I had heard something about that - BP)

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-spring-boot-sdk 0.5.0

Benedict announced:

matrix-spring-boot-sdk 0.5.0 is released and uses Trixnity now.

πŸ”—Dept of Services πŸš€

πŸ”—GoMatrixHosting v0.4.6 released!

Michael offered:

https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/1046/files

Just had a new release, GoMatrixHosting v0.4.6


* Add database purge section.

* Add markdown copy of User manual.
* Tweak compress state find rooms timeout.

* Update compile AWX instructions for custom branding and radius fix.

Visit #general:gomatrixhosting.com to join in the discussion.

GoMatrixHosting offer a great way to get your own homeserver without needing to run it yourself. Check them out!

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

farribeiro shared:

Fedora promoting the matrix https://fedoramagazine.org/access-freenode-using-matrix-clients/

πŸ”—Final Thoughts πŸ’­

From Dept of Humour in #twim:matrix.org πŸ˜…:

  • R1 Airport: Maybe I want to see if I can build some type of bridge between Matrix and CUPS.
  • hifi: the sad part is that would probably be more reliable than just printing directly

πŸ”—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
1neko.dev422
2xirion.net471
3matrix.kalleeen.fi507
4t2bot.io516
5alra.uk556
6thomcat.rocks767
7matrix.vgorcum.com800.5
8matrix.2kgwf.fi817
9nordgedanken.dev828.5
10trolla.us878

πŸ”—#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.info810.5
2dendrite.s3cr3t.me816
3lankolol.de931

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

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

πŸ”—Matrix Server_Stats Bot

MTRNord announced:

The first iteration of visually representing the data gathered by Server Stats Discoverer (traveler bot) is now publicly available at https://serverstats.nordgedanken.dev/

It for now is only a graph of room relations but in the future is supposed to be extended for a server based graph as well as a Table to search your room within.

Be aware that the page is best viewed and used on desktop. Clicking a Room Node will open a new tab with the matrix.to link. If this fails this might be because of no canonical alias being available.

For the developers the data can be taken from https://serverstats.nordgedanken.dev/relations The format currently is only available in the d3js format but in the future that API also will be extended for different usecases.

For any feedback like accessibility issues or other issues please reach out to me either via DM or in #server_stats:nordgedanken.dev

2021-05-07-jh7X9-image.png

πŸ”—Dept of Spec πŸ“œ

πŸ”—Spec

anoa said:

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

πŸ”—MSC Status

New MSCs:

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

Closed MSCs:

πŸ”—Merged Spec PRs

Here are all the actual MSC-related changes to the raw Matrix spec that landed this week!

πŸ”—Spec Updates

A reminder that #sct-office:matrix.org is available to communicate directly with the Spec Core Team. A clarification from the last edition of TWIM is that this room is intended to be a low-traffic room solely for asking about the status of a/your MSC, rather than the Spec process or anything else. There is however #matrix-spec-process:matrix.org for discussion of the Spec process, and #matrix-spec:matrix.org for discussion of the Matrix spec and MSCs in general.

Otherwise the Spec Core Team has been doing a little bit of house-keeping. For those that have been living under a rock, Spaces is an upcoming feature intended to replace the old Groups/Community stuff with a much-improved implementation. And one that will actually make it into the spec! We've closed all old groups-related MSCs as they are now obsolete.

Additionally we've been giving some feedback on MSC2946 (Spaces Summary) which is another part of the Spaces puzzle (and is still a blocker for the release of the feature), as well as MSC3079 (Low Bandwidth CS API) which allows Matrix to operate on resource constrained devices and networks. Yours truly has also been making some PRs (one, two) to help clarify the Spec process.

2021-05-07-tEcUz-stacked_area_chart.png

πŸ”—Dept of P2P πŸ‘₯

πŸ”—Pinecone

Neil Alexander reported:

Yesterday we announced the source code release of Pinecone, our new peer-to-peer overlay network, which we are developing under the P2P Matrix banner.

If you missed it, we wrote a blog post that explains some of the juicy details. The source code is available on GitHub.

Join us in #p2p:matrix.org for the latest P2P developments!

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad offered:

It's a release! Synapse 1.33 is out, and we plan to release a security patch for it on Tuesday, May 11th. This follows our previous discussion where we committed to trying to decouple routine security updates from our regular feature releases.

Read the release notes for details, but the big news is that we finally have experimental support for moving presence off of the main process. We're still testing it, but we hope it will allow instances that need presence to more easily scale out.

In last week's TWiM we shared a graph of Synapse's memory use when joining Matrix HQ for the first time. In particular, we saw a spike to 1.4 GB before settling at 800 MB.

In the week since producing that graph, we've managed to nearly eliminate the spike, halving it to 760 MB. After backfilling history, the room settles at around 650 MB:

2021-05-07-8eyfi-Screenshotfrom2021-05-0512-10-50.png

These changes are still a work in progress, but we hope to get them merged into Synapse in time for the 1.35 release on June 1st.

Additionally, Nico (@deepbluev7:neko.dev) has a request:

I wrote a patch for synapse, that reduces the size of almost empty incremental syncs by 50% (30% if you include http headers). If you are a client developer, you may want to test your client against a synapse with that patch applied, since it broke quite a few clients, that relied on synapse sending empty fields. While synapse sends empty fields, other server implementations, like conduit, don't, so fixing any issues here will help with portability across different server implementations too. With a bit of hope this patch can actually be applied in a few weeks to the official synapse, but it was backed out from the next RC because of the breakage. So if you can, please test your client, which you are developing, against the following PR and fix any issues you experience from it: https://github.com/matrix-org/synapse/pull/9919

Thank you!

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace said:

The regular updates for my Helm charts (and still deprecated Synapse image) have been pushed, for Synapse 1.33.0/1 and the Matrix Media Repo 1.2.8. (technically last week, but it was after friday, so I'm throwing it in again)

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mautrix-imessage on iOS

Tulir announced:

The initial alpha version of Brooklyn is now public, which means you can now (try to) use mautrix-imessage on a jailbroken iOS device for iMessage bridging. Setup instructions are on docs.mau.fi: https://docs.mau.fi/bridges/go/imessage/ios/setup.html

Brooklyn was developed by ethanrdoesmc. It's an app/tweak that handles communicating with iMessage and runs mautrix-imessage as a subprocess for the Matrix side. The initial alpha supports basic text and media message bridging. Sending and receiving tapbacks, replies, read receipts and typing notifications will also be supported in the future.

Feedback is welcome in the mautrix-imessage room: #imessage:maunium.net

πŸ”—Heisenbridge

hifi told us:

Heisenbridge the bouncer style Matrix IRC bridge has seen numerous updates in the past week:

  • Identd implementation to get verified usernames on IRC

  • TLS support for IRC connections

  • IRC excess flood prevention with a buffer

  • Proper long message splitting from Matrix to IRC

  • Retry support for Matrix requests to work around homeserver downtime/restarts

Minor fixes to ghosting issues and some other stuff. This will be the last big update for a while as it has mostly stabilized enough for daily use.

More testers are still welcome to get the remaining issues ironed out so if you need to connect to unbridged and unplumbed networks and run your own homeserver it would be an excellent time to try it out.

Thanks!

πŸ”—matrix-pstn-bridge

KB1RD reported:

Experimental support for call bridging has landed. Now you can call phone numbers right from Matrix, with partial support for MSC2746. A few things to keep in mind:

  • The bridge is still in alpha -- I wouldn't trust it for anything secure at the moment. I would love to hear feedback from tests, though!

  • If you tried any of the earlier versions, you will need to re-run the link command since I made some breaking changes. Sorry.

Just a reminder, the GH repo is here and the Matrix room is #matrix-pstn-bridge:kb1rd.net . There's also a general VoIP bridging room at #matrix-voip-bridging:kb1rd.net.

πŸ”—matrix-appservice-irc has a new release candidate

Christian reported:

The IRC bridge matrix-appservice-irc has a new release candidate. The upcoming version 0.26.0 will include many features and bug fixes. Here are three highlights:

  • Allow third-party bridged users to change their nickname with the self-serve command !irc nick anothername (thanks vranki)

  • Allow room moderators and bridge admins to unlink rooms using the !unlink command

  • Add support for specifying the paste bin limit in room state with the org.matrix.appservice-irc.config event type.

Please test it and flag any issues you have upgrading:

https://github.com/matrix-org/matrix-appservice-irc/releases/tag/v0.26.0-rc1

πŸ”—Dept of Clients πŸ“±

πŸ”—FluffyChat

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

krille announced:

FluffyChat 0.30.0 has been released

In this release we have mostly focused on bugfixing and stability. We have switched to the new Flutter 2 framework and have done a lot of refactoring under the hood. The annoying freezing bug should now be fixed. Voice messages now have a new backend which should improve the sound quality and stability. There is now a more professional UI for editing aliases of a room. Users can now see a list of all aliases, add new aliases, delete them and mark one alias as the canonical (or main) alias. Some minor design changes and design fixes should improve the overall UX of the app exspecially on tablets.

Version 0.30.0 will be the first version with arm64 support. You can download binaries from the CI and we will try to publish it on Flathub. Together with the new Linux Desktop Notifications feature, this might be interesting for the Librem 5 or the PinePhone. Sadly I don't own one of these very interesting devices. If you have one, I would very like to see some screenshots of it! :-)

Additionally, Shine told us:

Fluffychat update: Native Fluffychat Linux build now works well on aarch64 devices!

If you want to try the binary from CI, keep in mind that GDK_GL=gles needs to be set to force it to use the OpenGL ES. Flatpak build on Flathub already has it set up and works out of the box.

Some distributions can have issues with input fields and virtual keyboard, making it look like the input is set up as right-to-left. To my understanding, it's an issue of certain older GTK versions with Flutter.

2021-05-07-El6cc-fluffychat_pinetab.jpg

Nice sticker

πŸ”—Nheko

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

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

Nheko now should stop showing you actions, that you can't do anyway, because that is confusing and useless. This includes the following and more:

  • Invite members, if you have no invite permissions.

  • Delete messages, if you don't have redaction permissions.

  • Send a message, reply to one, edit one and more, if you can't even send the message!

Tell us, if we missed something or we removed an action, that you actually have permissions to do!

Apart from that we also started working on some of the features for the next major release. That release will mostly focus on bringing End-to-End-Encryption out of beta. As a first step, Nheko now shows if a message was sent from a verified device or not. This has 3 different trust levels:

  • green: The message is from a device you verified. Either by device verification or cross signing.

  • greyish: The message is from an unverified device, but that user has never rotated their master signing key and has cross-signed that device. As such we can probably assume, that this is a trusted device. For extra safety, you should of course verify that user, but if it is just an internet personality you will never meet, you trust you are speaking to the right party anyway and can't really verify them anyway, since you don't know how they look either! We don't want to prompt users with red warning signs in such cases, which will lead to them not doing verification properly, because they just want the red marks to go away. Many people are also not interested in the MITM aspects of E2EE. We think this is an okay tradeoff, but any feedback is welcome of course! This is basically Trust On First Use (TOFU), if you heard that term before.

  • red: The device is not verified. This can have a few reasons. Either we verified the user, but they didn't verify that device. Or we didn't verify that user and they have changed their master key at some point. Or the signatures for that device are wrong, etc. If you see such a device, you should probably investigate, why that is the case.

These are some biggish changes, so if you experience issues, tell us in #nheko:nheko.im!

πŸ”—Fractal

Alexandre Franke reported:

Hot on the heels of our previous announcement and building on the fresh foundations of our rewrite, Julian got busy on room history. It now appears when a room is selected in the sidebar! To make that selection easier, room filtering in the sidebar has been implemented by new contributor Veli Tasali. Once a room is selected and displayed, messages can even be sent to them! Sounds like we’re done and the client is ready… SHIP IT! Not really though, as it’s still very basic, but at least the bare minimum to make it actually usable is now here.

As a nice bonus, we do lazy loading, and rooms are now added to the sidebar in batch on startup to ensure good performances. The sidebar also got some refinements from KΓ©vin (!732 and !736).

Finally Veli also helped us get the docs for fractal-next published, lowering the barrier to entry for other new contributors. They are available at https://gnome.pages.gitlab.gnome.org/fractal/fractal/.

For further details, Julian published a technical overview of the internals of the new codebase.

πŸ”—Element Clients

Updates provided by the teams

Delight

  • We’ve been shepherding MSC1772 into the spec which has now exited final comment period and merged!
  • Alongside, we’ve also been iterating on the Spaces implementations all round in preparation for wider testing soon, which has included
    • Iterating on filtering on Web to filter all Spaces
    • Iterating on logic for showing notification badges to avoid single DMs spawning multiple badges
    • Iterating on β€˜Home’ to instead behave more like β€˜All’
    • Iterating on implementations across the web, iOS, Android & Synapse to use stable prefixes
    • & lots of other small tweaks

Web

  • Element Web 1.7.27-rc.1 on staging
    • Added localisation support to the desktop layer (for menu items etc.)
    • Fixed encrypted search indexing on Windows
    • Hardware media keys are now ignored, so they'll go to other apps as intended
  • On develop
    • Calling architecture reworked to support multiple streams, please report any issues
  • 1.7.27 release planned for Monday

iOS

  • 1.3.6 is in review for the App Store. We have polished and fixed several issues on 1:1 and group calls. The release contains fixes for several bugs and crashes.

Very excited about the Spaces progress! Looks like everything that I found in recent testing is fixed!

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Trixnity released

Benedict announced:

Trixnity finally got released this week. It's a Kotlin multiplatform Matrix SDK for high level access to Client-Server API and Appservice API. It has all (and some more) features from matrix-spring-boot-sdk which is based on Trixnity now (an update for that will be released soon). Trixnity can currently be used on JVM and JS as platform (Native is not working yet). It is also very customizable by adding custom room and state event types.

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

πŸ”—Cactus Comments 🌡

AsbjΓΈrn offered:

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

We released the Cactus Comments Web Client v0.9.0!

This version introduces a display name field for guest users, so guest users finally have sensible names.

It also brings the option to use HTML data attributes for configuration.

  • Comment sections can now be initialized using data-* attributes on the script tag (Thanks to @NicolaiSoeborg for !5).

  • Allow using strings for any config parameter, including booleans and numbers.

  • Users can now set a displayname when commenting as a guest.

  • Some styling improvements for text inputs.

/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

πŸ”—Phonehome stats viz

Matthew reported:

I did a video a few months back trying to show the physical layout of Matrix over the years by looking at the phonehome stats and the number of active users per server (showing full-mesh edges between the top 100 servers, heatmapped by how busy the servers were at either end of the edge). There was a bug in the phonehome stats during 2017, but it's still fairly cool...

πŸ”—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
1kapsi.fi611
2queersin.space623.5
3maescool.be678.5
4chatcloud.net702.5
5woefdram.nl743
6matrix.sp-codes.de769.5
7dodsorf.as788
8wallace.sh803
9kittenface.studio1180
10dendrite.foxomy.com1320

πŸ”—#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.thomcat.rocks493
2dendrite.s3cr3t.me625.5
3dendrite01.fiksel.info1086
4dendrite.foxomy.com1347

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

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

πŸ”—Matrix Live πŸŽ™

Matthew presents the MSC process! Get slides here.

πŸ”—Dept of Status of Matrix 🌑️

Oda Nobunaga said:

The German IT platform Heise has conducted an interview with the university of Innsbruck which chose Matrix/Element over Microsoft Teams. Reasons: it's free, decentralized/federated, expandable and secure.

https://www.heise.de/news/Zusammenarbeit-MS-Teams-als-Lockangebot-in-eine-geschlossene-Microsoft-Umgebung-6030514.html

"free, decentralized/federated, expandable and secure" sounds like a great set of reasons!

Heise article, naturally, is in German. Element have some content in English discussing the deployment, and how well-suited Matrix is for universities. Finally, the best kind of feedback: an Innsbruck professor cheers the utility of federation:

And the best thing: The federation across different institutions really works. I can still participate in project related chats with my former team @ETH_en while seamlessly supporting lectures at @uniinnsbruck. All out of one tool, one login. pic.twitter.com/6LXHcu7Jjf

— Jan Beutel (@jan_beutel) April 30, 2021

πŸ”—Famedly Fellows on Linux Lounge

Nico offered:

Btw if anyone wanted to hear Krille and me live, we are live at the linux lounge now. It's in GERMAN! https://theradio.cc/blog/category/shownotes/linuxlounge/

Exciting! Possibly. For the lucky few who can understand it anyway!

Lazalatin added:

If anyone did miss the opportunity to listen to the live stream: Here you can find the recording, with show notes, as well: https://rec.theradio.cc/item/ll244/
We were happy to have Krille and Nico with us. πŸ₯³
(website in german as well as the stream recording)

:D

πŸ”—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://spec.matrix.org/unstable/proposals.

πŸ”—MSC Status

New MSCs:

  • There were no new MSCs created this week.

MSCs with proposed Final Comment Period:

  • No MSCs entered proposed FCP state this week.

MSCs in Final Comment Period:

Merged MSCs:

Abandoned MSCs:

πŸ”—Spec Updates

We've opened up a new room for MSC authors to come and ask about the MSC process, as well as for review and feedback on their MSC ideas over at #sct-office:matrix.org. If you're unsure what the next steps for your MSC are, or aren't sure whether an idea would make sense for inclusion in the Matrix Specification, then this room is the perfect place to ask about it. Come on by!

In terms of MSC work, Spaces remains one of the most active topics in the spec this week, with MSC1772 finally reaching Final Comment Period! A lot of work went into writing and reviewing the MSC, as well as crafting the implementation - so congratulations to everyone involved! Of course, any concerns can still be raised over the next 5 days by anyone before the proposal is ultimately merged to the spec.

There are a number of changes being merged to the spec as we move swiftly towards the next major Spec release. Those that have merged this week are:

Otherwise there's been a smattering of discussion and updates on various MSCs, such as MSC2730 (verifiable forwarded events), MSC2249 (requiring a user to be able to see an event to report it) and MSC2516 (voice messages).

Thanks for reading!

Also - knocking is now published to the unstable spec, check it out at: https://spec.matrix.org/unstable/client-server-api/#knocking-on-rooms

2021-04-30-iLQCH-stacked_area_chart.png

πŸ”—Dept of P2P πŸ‘₯

πŸ”—P2P Matrix

Neil Alexander announced:

We've just released the first public P2P Matrix demo using the experimental Pinecone protocol. There are builds available for Android right now and iOS is following shortly via Testflight as soon as it passes Apple's beta review:

  • Android 10+: https://appdistribution.firebase.dev/i/394600067ea8ba37

  • iOS: https://testflight.apple.com/join/Tgh2MEk6 (wait for build 73!)

If you enable the static peer in the peer-to-peer settings, you can join us in the #beachparty:3bf0258d23c60952639cc4c69c71d1508a7d43a0475d9000ff900a1848411ec7 room!

The demo will attempt to connect to other devices using Bluetooth Low Energy, even if internet connectivity isn't available. Local connectivity over Wi-Fi is also supported. It's still very rough around the edges and there are lots of bugs, but feel free to give it a go!

Join #p2p:matrix.org for more chat and to provide feedback!

πŸ”—Dept of Servers 🏒

πŸ”—Conduit

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

timokoesters said:

  • Feature: Implement /devices

  • Feature: Send invites over federation

  • Improvement: Verify signatures for incoming requests

  • Improvement: Room directory now loads a lot faster

  • Fix: Retrying transactions works correctly now

We managed to work on a few features the last two weeks, but there are some very annoying issues with major Matrix clients:

πŸ”—Synapse

Synapse is a popular homeserver written in Python.

callahad said:

We expect to release 1.33 on Tuesday; more on that next week. But generally speaking, much of our development focus has been on profiling the memory usage of small homeservers joining large, highly-federated rooms for the first time. For example, we see a graph like this when joining Matrix HQ:

2021-04-30-akzM5-Screenshotfrom2021-04-2918-33-43.png

At a first pass, we're aiming to significantly reduce the initial spikiness of that graph, and we think #9910 will help with the subsequent slow ramp up in memory.

We've also been discussing how to balance our relatively rapid release cadence with managing low severity security issues. If you have any thoughts, preferences, or relevant experiences to share, please comment here!

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Heisenbridge announced

hifi said:

Announcing a new bouncer style Matrix IRC bridge to bridge the gap between IRC and Matrix in a way that's easy to configure and manage by homeserver administrators for small scale deployment.

Meet Heisenbridge https://github.com/hifi/heisenbridge πŸ₯³ (it's a Breaking Bad reference 🀦)

It's written in Python and started off as an experiment if it's possible to create a somewhat well performing stateless IRC bridge that's practically almost zero configuration. It quickly found a use case of being able to join !channels on IRCnet that hasn't been possible in the past.

Intended target audience are people who run their own homeserver and would like to transition from a combination like ssh+irssi to pure Matrix (with weechat-matrix, of course!) but still keep IRC close without losing the "fine details" of the protocol that happens when plumbing a room properly.

As the bridge is written by someone who doesn't really know Python help is much appreciated in the form of filing issues, sending pull requests or just discussing about it on Matrix to tell how you would like to use it!

Development and support in #heisenbridge:vi.fi

Thanks!

πŸ”—matrix-puppeteer-line updated

Fair offered:

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

Updates:

  • Inbound read receipts! But with a view caveats:

    • Receipts are only fetched for the "most recently active" room.

      • Example: if you send a message in room A, then room B, receipts will only be fetched for room B and not room A, until you (or someone else, from LINE) posts in room A.

      • This will be fixed in the next update. I have an idea for some Puppeteer trickery to get it working.

    • Read receipts in group chats are bridged as annotations (reactions) instead of "real" read receipts, until all members of the chat have read a message.

      • This is because LINE's read receipts for group chats don't tell show who read a message, but only how many people a message was read by.
      • To capture this in Matrix, instead of sending read receipts for a group chat message, the bridge puts a reaction of "Read by #" on it, with "#" matching how many people read the message so far. Once everyone in the chat has read a message, the reaction is removed and a "real" receipt is sent for all users.
  • Internal changes to message syncing that should hopefully make inbound messages more reliable, or the very least improve code maintenance.

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) offered:

Hey there, it is your friendly neighborhood cat client! Pardon, chat client!

Jedi18 implemented forwarding of messages. Just select a message and press Alt-F or use the context menu to send a message to the room you select in the popup! This encrypts and decrypts messages and media appropriately, but be aware that sending an encrypted file to an unencrypted room uploads the file unencrypted. (In all other cases the media is not uploaded again.)

Furthermore matrix.to links are now rewritten to matrix:-URIs internally. This means joining rooms and such should now work the same across both of them. It also makes navigation to events work now and even has a shiny highlight effect now! You can also create links to events now from the context menu. These are generated as matrix.to links, since currently the onboarding experience should still be better. Once the next version of the matrix.to website gets deployed, you can even just click there to open the event in Nheko! (Instead of having to copy a /join command).

Since "Copy link to event" was confusing to people and AppAraat opened his present box, only to realize it did not contain "Copy link location", we implemented that too as well as a copy action, to copy the event body for good measure. I hope everyone who got confused will forgive me!

Apart from that we also updated our screenshots on https://nheko-reborn.github.io/ (and all AppStream based store pages) to be higher resolution and reflect the current design. Furthermore we fixed the login on conduit homeservers and that no rooms were shown, if the server didn't support the groups API.

That's all, and keep on c(h)atting! <3

2021-04-30-zKbR8-nheko-message-fwd.png

πŸ”—NeoChat

Carl Schwan told us:

We rewrote the room managing code moving it from QML to C++ and unify how we manage rooms in NeoChat. This allowed us to support the matrix-URIs scheme, making it possible to open rooms and show user information when clicking on a matrix: link in your browser. Sverin Saji improved the look of the typing indicator and Jan Blackquill improved the keyboard navigation.

2021-04-30-JcL3Q-image.png

πŸ”—Watch The Matrix

2021-04-30-boDeS-Icon.png

Doug offered:

This week I published the first public build on TestFlight:

https://testflight.apple.com/join/a06n3gN4

There are a few reports of issues when signing in which I'm looking into. A few other changes include:

  • Round complications show [ ] instead of an empty icon (some have been disabled for now).

  • When signing in, the homeserver can be detected from the username.

  • Various performance and bug fixes for sync responses.

  • The app now has an icon and more purple accents.

As requested by benpa after my last update, here's a video of it running on a device:

/me doesn't need to buy an Apple Watch ... /me doesn't need to buy an Apple Watch

πŸ”—Element Clients

Updates from the teams.

Delight

  • We’ve been maturing and iterating on MSC1772 in anticipating of wider testing of Spaces in the near future
  • On Web, we’ve been iterating on designs & implementations for a beta, including tweaking filtering to display rooms from all Spaces
  • On Android, we’ve been doing the same, and have merged the initial Spaces implementation onto develop
  • On Synapse, we’ve been implementing restricting rooms based on the Space Summary API

Web

  • 1.7.26 released on Monday
    • Added persistence of unsent messages across app restart
    • Improved room list filtering performance
    • Improved the image detail view
  • On develop
  • In progress

iOS

  • 1.3.5 has been published to the App Store on Monday.
  • We have been polishing the new VoIP design this week. It should be merged into develop early next week and released in the App Store the week after.
  • We want to focus on code quality. We set up GitHub actions in our 3 repos. They run both unit tests and integration tests. We need to fix some of our 600+ tests in the SDK but we now have a CI able to complain about test failures.

Android

  • The Spaces have landed on Element Android, on the develop branch. We are working to stabilize the feature before the release in beta next week.
  • In parallel, we are working to stabilize the whole application, and provide a better support on Android 11.
  • Also it will be possible in the next release to compress video before sending, which is a very expected feature.

πŸ”—Hydrogen

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

Bruno said:

Invites and other goodies have landed in 0.1.46 & 0.1.47!

2021-04-30-dyAS7-Screenshot_20210428-143543.png

If you spend any amount of time with Bruno, eventually the topic of sourdough will arise - now it's even sneaking into his updates!

πŸ”—Dept of VoIP πŸ€™

πŸ”—matrix-pstn-bridge

KB1RD told us:

I announced this project last week. It's exactly what it sounds like: A puppetting bridge to puppet a telephone number from Matrix. It's currently pre-alpha and not ready for use on public-facing HSes.

Not too much has happened in the last week as I've been a bit busy. The main thing is that there's now a dev branch where outbound voice calls work. Other than the 2014 SIP experiment, I think this is the first bridge to make voice calls work?

I hope having a reference VoIP bridge can help pave the way for more VoIP bridging. I'm already looking into how code can be generalized for other bridges. For example, I've opened an issue in matrix-bot-sdk to add helper classes and stuff for VoIP support. I'd be curious to see how other bridge builders think this could be accomplished. πŸ‘€

If you're interested in PSTN bridging specifically, there's a room for that.

If you're interested in VoIP bridging in general, there's a room for that, too

πŸ”—Dept of Services πŸš€

πŸ”—etke.cc - like Element Matrix Services, but on your servers, under your control and without restrictions

Aine reported:

Some context: I like how simple EMS allows you to setup the Matrix homeserver, but it lacks any internal tuning or customization ability. Do you want more? OK, setup it yourself and try to stay normal while trying to configure coturn to properly run in docker cluster. Because of that, I did a service where you can order initial setup and configuration of homeserver (yes, with coturn in docker cluster!) and with full control of customization and fine-tuning of manual configuration (website even has step-by-step guide how the process works).

It's based on the amazing spantaleev/matrix-docker-ansible-deploy with additional stuff like system security hardening and maintenance

Announcements: #announcements:etke.cc

Source: https://gitlab.com/rakshazi/matrix-ansible/ It contains basic security stuff like ufw and fail2ban, system maintenance like updating packages, cleanup of old logs and docker images, configuration of swap, some additions like absurdly simply healthcheck page and website deployment to base domain. Documentation may be found in readme files for each role

πŸ”—GoMatrixHosting v0.4.5 is here!

Michael said:

GoMatrixHosting v0.4.5 is here!

https://gitlab.com/GoMatrixHosting

The FLOSS Matrix hosting system built on AWX, it enables you to manage multiple Matrix servers for many clients in both a commercial or non-commercial context. We are currently doing a free giveaway of on-premises server plans, if you're an experienced user or Matrix admin you can receive a free on-premises subscription and hopefully provide us with some feedback.

For more updates on this project visit our Matrix room: #general:gomatrixhosting.com

GoMatrixHosting was previously Oasis Hosting - looks like they're making great progress improving their product, may be time to have another look.

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

πŸ”—Matrix_Stats Discoverer (bot) ( @server_stats:nordgedanken.dev )

MTRNord reported:

Some of you might already have seen that bot show up in rooms. To clear up some confusion around it I will briefly explain what it does and what it is supposed to do:

πŸ”—What does it do?

The Bot is simply existing to do the same task as Matrix Traveler (bot) already did for years now. It joins rooms, listens for an alias, tries to join it.

The main difference between these 2 bots is that my bot also searches for aliases in old messages.

πŸ”—What does it save?

It only saves the relations between rooms. This means it knows which room was posted where. It doesn't know who posted it, when it was posted, why it was posted or any other content of messages.

However due to matrix' nature it does need to get the data once onto a synapse to read trough it. This means it has the data on my synapse. (Running in helsinki at hetzner).

πŸ”—What can I do if I do not want it?

The easiest way is to just ban it. It will fully forget that room.

Kicking works too but it might again join if it gets found again.

πŸ”—Where is the source?

The source code is available at https://git.nordgedanken.dev/MTRNord/server_stats/-/blob/main/src/bot/mod.rs

For further questions feel free to join #server_stats:nordgedanken.dev

Also note this bot is still very early in development which is why it does not respond to you yet on any commands. This will be added in the near future as well as a readme in the repository

πŸ”—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
1maunium.net670.5
2matrix.org739.5
3matrix.vgorcum.com1068
4helsinki-systems.de1072
5kif.rocks1085
6dendrite.foxomy.com1092
7kittenface.studio1549
8thomcat.rocks1674
9mailstation.de2011
10chatcloud.net2311

πŸ”—#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.thomcat.rocks415
2dendrite.foxomy.com557
3dendrite.neilalexander.dev576
4dendrite01.fiksel.info1086

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