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!

Synapse 1.32.2 released

22.04.2021 18:16 β€” Releases β€” Dan Callahan

Synapse 1.32.2 is out! Synapse now requires Python 3.6 (or later) and we've made a few small changes which you should be aware of before upgrading. These are documented in the upgrade notes.

Note: We scrubbed the releases of Synapse 1.32.0 and 1.32.1 as we discovered a pair of regressions including a bug with Prometheus metrics after tagging the release. These have been resolved.

On Monday, humankind flew a helicopter on Mars. And while our pursuit of Space(s) is considerably more modest, it is nevertheless progressing apace: Synapse 1.32 includes an experimental implementation of MSC3083.

This release also includes a new Synapse module for routing of presence updates, which can allow devices to share presence information without requiring that they also share a room. Please note there are some nuances to worker configuration when using this module which we hope to iron out in a future release.

The Admin API is newly able to manage rate limits, and the user listing endpoint can finally sort its results by a variety of criteria.

Otherwise, this is again a very internals-focused release: many additional type hints, improvements to structured logging, and small cleanups, especially those possible now that we've left Python 3.5 behind. We've made changes to how we check whether accounts are exempt from rate limits to avoid cases where we mistakenly applied limits to Application Services which should have been exempt, and we've fixed a bug with sharded federation senders which could occasionally pin the CPU.

See the Upgrading Instructions and Release Notes for further information.

πŸ”—Thank You

Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including dklimpel, languitar, ShadowJonathan, and xmunoz.

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!

Old Gitter bridge end of life (2021-04-21) - to be replaced with native bridge

15.04.2021 00:00 β€” Bridges β€” Bridge Team

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!

Gitter is bridged natively to Matrix on the gitter.im homeserver and all of the public rooms are available there. The new native Gitter bridge has many advantages over the old bridge and is being actively developed to ensure parity and delivers:

  • Ability to join public Gitter rooms from Matrix via #<community>_<room>:gitter.im
  • Native feeling virtual users on both sides of the bridge so messages appear from the author itself
  • Bridging edits, replies (mapped to threads on Gitter), deletes, file transfers
  • Full support for markdown, emoji and mentions
  • Soon to be direct message (DM) support!

If you still need your existing Matrix room for a public community plumbed to Gitter, we’re happy to help community admins with the setup of a manual plumb. Send an email to [email protected] with the details! Self-service plumbing will be coming in future (meanwhile, please keep it to public community rooms only, if you must!)

We hope that this notice helps make the transition a little smoother and avoid any disruptions πŸ™‡

If you have any questions about the migration path or the new bridge, you can always chat with us in #gitter:matrix.org.

Happy chatting everyone!

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!

Synapse 1.31.0 released

07.04.2021 00:00 β€” Releases β€” Dan Callahan

We've released Synapse 1.31.0!

Mainly internal changes this time (type hints, code lints, etc.) but we've also landed some initial work on MSC2946: Spaces Summary. And speaking of MSCs, Synapse 1.31 has an experimental flag which can enable support for the draft MSC3026: "busy" presence state.

Synapse 1.31 can now restrict OpenID Connect logins based on userinfo attributes (Thanks, HubbeKing!).

This release fixes a rare infinite loop when fetching cross-signing keys or handling device list updates, and further improves the speed of federation catchup. It also makes Admin APIs around user reactivation behave correctly when account passwords are disabled.

See the Release Notes for further information.

πŸ”—The Final Python 3.5 Release

This is the last release of Synapse to support Python 3.5 or PostgreSQL 9.5, and the last release of official packages for Debian 9 (Stretch) and Ubuntu 16.04 LTS (Xenial).

Future releases of Synapse will follow upstream end-of-life dates for Python and Postgres.

Accordingly, we anticipate ending support for Python 3.6 and PostgreSQL 9.6 in December of this year. We will also cease producing packages for Ubuntu 18.04 LTS (Bionic) at that time.

πŸ”—Thank You

Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including ankitdobhal, blakehawkins, dklimpel, fuzzmz, HubbeKing, languitar, sandhose, and ShadowJonathan.

This Week in Matrix 2021-04-01

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

πŸ”—Introduction πŸƒ

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

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

kegan reported:

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

anoa told us:

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

πŸ”—MSC Status

Merged MSCs:

MSCs in Final Comment Period:

New MSCs:

πŸ”—Spec Core Team

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

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

πŸ”—New Spec Platform

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

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

2021-04-01-tN1MO-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad offered:

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

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

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

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—mautrix-whatsapp

Tulir announced:

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

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

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

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

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

πŸ”—Dept of Clients πŸ“±

πŸ”—Nheko

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

Nico (@deepbluev7:neko.dev) announced:

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

nheko1

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

nheko2

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

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

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

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

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

That's everything and have a lovely day!

πŸ”—Watch The Matrix

Doug said:

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

  • Reactions and Edits are shown properly.

  • Redactions now work for messages.

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

  • Older messages can be loaded in a room.

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

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

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

New room: #watchthe:matrix.org

πŸ”—Element Client Updates

From the teams:

Delight

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

Web

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

iOS

πŸ”—Dept of Guides 🧭

πŸ”—Decentralisation/interoperability guides

Bram told us:

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

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

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

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

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

πŸ”—Hiring at Element

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

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

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

πŸ”—Dept of Ping πŸ“

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

πŸ”—#ping:maunium.net

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

RankHostnameMedian MS
1envs.net376
2matrix.dani.icu426
3hmko.net434
4maescool.be484
53r.rs684.5
6thomcat.rocks888
7matrix.sp-codes.de947
8maunium.net1284
9roeckx.be1611
10glowers.club1896

πŸ”—#ping-no-synapse:maunium.net

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

RankHostnameMedian MS
1dendrite01.fiksel.info813

πŸ”—That's all I know 🏁

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

Synapse 1.30.1 released

26.03.2021 16:12 β€” Releases, Security β€” Dan Callahan

Synapse 1.30.1 is now available. This release is identical to Synapse 1.30.0, with the exception of explicitly setting a minimum version of the Python Cryptography library to ensure that users of Synapse are protected from yesterday's OpenSSL security advisories, especially CVE-2021-3449.

Note that Cryptography defaults to bundling its own statically linked copy of OpenSSL, which means that you may not be protected by your operating system's security updates.

It's also worth noting that Cryptography no longer supports Python 3.5, so admins deploying to older environments like Debian 9 (Stretch) or Ubuntu 16.04 (Xenial) may not be protected against this or future vulnerabilities.

The next release of Synapse will be the last to support Python 3.5.

This Week in Matrix 2021-03-26

26.03.2021 00:00 β€” This Week in Matrix β€” Brendan Abolivier

Hey everyone!

Ben is away this week for some well-deserved holidays (don't worry, he'll be back next week), so I'm filling in for him so you don't miss out on your weekly dose of Matrix-related news, let's do this!

πŸ”—Matrix Live πŸŽ™

It's demos week this week! Enjoy a selection of demos featuring: Spaces, low-bandwidth Matrix, Hydrogen notifications and bridging DMs between Gitter and Matrix!

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

Lots of MSCs moving through the pipeline last week and this week!

πŸ”—Spec Core Team

We're still working on improving our process for day-to-day MSC work, but small individual improvements seem to be adding up! Otherwise some members of the team came together and summarised the team's thoughts on MSC2190.

πŸ”—Unfreezing the spec

Still shifting internal infrastructure to allow redirecting from the old spec to the new where necessary.

2021-03-26-idw4I-stacked_area_chart.png

πŸ”—Dept of Servers 🏒

πŸ”—Synapse

callahad told us:

We're proud to announce that Synapse 1.30.0 was released on Monday.

(...and 1.30.1, today, in response to yesterday's OpenSSL advisories)

The 1.30 release focused on improving our resilience to interruptions in federation, both being smarter about what work we do, as well as improving the CPU and DB performance of the state_ids endpoint by at least an order of magnitude. Check the release post for full details.

...but also check out this graph (of that endpoint only) from an EMS host after deploying 1.30.0:

2021-03-26-stateids-again.png

That ain't gonna bother us no more.

In other news, we've decided to try out GitHub Actions for automated testing of Synapse and will report back in a few weeks. Our hope is that this makes our CI more amenable to iterative improvement and outside contributions.

It's also worth flagging that the next release of Synapse, due in early April, will be the last to support Python 3.5.

See y'all next week!

πŸ”—matrix-media-repo

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

TravisR announced:

v1.2.6 is out now with a guest account patch and some added libraries to the Docker image. It's a small one, but worth the upgrade when there's a few spare cycles to use :)

As always, if you run into problems or have questions, visit #media-repo:t2bot.io

πŸ”—Homeserver Deployment πŸ“₯️

πŸ”—Kubernetes

Ananace said:

Finally did what I've been talking about for a while, and got the Synapse chart I'm doing upgraded to the point where it won't require my own image any more, Version 2.0.0. (In fact, the chart will now deploy the upstream matrixdotorg/synapse image by default)

I also went through and fixed a bunch of things, refactored the worker config some to get it closer to the generic_worker setup, added configuration to include arbitrary values in .well-known (for Jitsi and the like), etc.

They've also added:

And just updated my Kubernetes image and Helm Chart for Synapse to the new 1.30.0 version - note that the image has been deprecated by now though, the chart is the new go-to way to get Synapse on Kubernetes.

And then, following today's 1.30.1 Synapse update:

I've pushed Helm Chart updates for Synapse 1.30.1 and Matrix Media Repo 1.2.6

πŸ”—matrix-docker-ansible-deploy

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

Slavi told us:

matrix-docker-ansible-deploy can now install the Sygnal push gateway.

This is only useful to people who develop/build their own Matrix client applications.

Additional details are available in our Setting up Sygnal docs.

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

Updates:

  • User/chatroom avatars

  • When logging in with an incorrect email/password, the bot will tell you.

TODOs: Everything I mentioned last week, except for avatars πŸ™‚

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

πŸ”—Gitter

Eric Eastwood offered:

We're working on bridging DM conversations between Matrix and Gitter. For our first iteration, you will be able to start a DM conversation with a Gitter user from Matrix. In the next iteration, we will allow Gitter users to start a DM conversation with a Matrix user.

The following is a small taste of what it will look like and will also be included in the upcoming Matrix live demo day.

2021-03-26-DyR7j-8BB7jFw.gif

πŸ”—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 0.1.40 got released this week with support for push notifications (look to enable it from the settings) and some other smaller fixes.

(Note that because of a sygnal bug, push messages are sometimes failing to be delivered to mobile. This will be fixed in the coming days without any action needed if you already enable it before.)

2021-03-26-E06e8-android-notify-screenshot.png

If you want to know more about Hydrogen's new shiny notifications, check out this week's Matrix live (at the top of this post)!

πŸ”—Element Clients

Updates from the teams:

Delight

  • Spaces are now testable on develop.element.io & matrix.org! Buyer beware: They’re in early beta, using unstable prefixes, so may break at any time. But you can test by enabling the Spaces labs flag while connecting to matrix.org or a Synapse development build
  • If you’d also like access to a test build for Android, we’re working out a better way to deliver test builds, but in the meanwhile let us know in the new spaces feedback room
  • There’s lots of rough edges, but we’re first focusing on polishing public spaces, and feedback is welcome in the spaces feedback room, or via GitHub issues
  • If you run an online community (using any platform), we’d love to talk to learn more about your general pains too, in you guessed it: the spaces feedback room
  • Watch this week's Matrix Live for a demo of the above!

VoIP

  • Not too much news this week, but look out for another connectivity fix in next week’s element web release.

Web

  • Element Web 1.7.24-rc.1 on staging, including:
    • Additional VoIP call connection reliability improvements
    • Added invite option to room tile context menu
    • Improved cross-signing login flow
  • On develop / nightly:
    • Improved invite error handling
    • Search indexing errors now properly state the error, instead of asking you to use desktop (when you already are)

iOS

  • Element-iOS 1.2.7 is already available from TestFlight and will be available on the App Store on Monday.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—libkazv (and the Kazv Project)

tusooa offered:

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

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

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

πŸ”—Updates

In the past 2 week we ("tusooa and her longcat," we hope someday we can remove this annotation :P):

  1. Recorded state events in timeline. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/2

  2. Added support for streaming download. https://lily.kazv.moe/kazv/libkazv/-/merge_requests/3

πŸ”—Ruby

Ananace offered:

Just pushed version 2.3.0 of the Matrix Ruby SDK, headline features include; Ruby 3.0 support (though might still be a few niggles in there, expect a 2.3.1 once it's been more tested), a complete redesign of the room data cache to improve memory usage and code quality, and general request additions that people were interested in.

πŸ”—Guile-Deck

a_v_p said:

Hello everybody! I released Guile-Deck 0.1.0, GNU Guile SDK for Matrix network: https://lists.gnu.org/archive/html/guile-user/2021-03/msg00048.html

This library allows to write Matrix clients in Scheme Lisp.

πŸ”—Dept of Bots πŸ€–

πŸ”—Matrix Daily Calendar

uhoreg offered:

I've written a simple little script that connects to CalDav servers and sends me a summary of the events for the day over Matrix. https://gitlab.com/uhoreg/matrix_daily_calendar I find it useful as I don't have enough meetings that I'm constantly checking my calendar, so having a message at the beginning of the day helps me remember the meetings that I do have.

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

πŸ”—πŸŒ΅ Cactus Comments

AsbjΓΈrn offered:

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

Web Client v0.6.0 released! No new features, just UI/UX improvements this time around.

  • Move matrix.to link into login modal.

  • Removed login status string above textarea.

  • Show userid in Post button.

  • Add placeholder text to comment textarea.

  • Textarea inherits background color, to work better with darkmode websites.

  • dev.html example page now has a darkmode toggle button.

  • A bunch of smaller improvements to the default CSS.

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

If you forked the CSS to style it yourself, you may want to replace it with the new CSS file and add your changes again, to get the new styling.

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

Join our Matrix room: #cactus:cactus.chat

πŸ”—Dept of Guides 🧭

πŸ”—krazykirby99999's guide to creating Matrix bots

krazykirby99999 shared with us their guide for creating simple Matrix bots in Python: https://www.reddit.com/r/matrixdotorg/comments/mdqitp/how_to_create_a_matrix_bot/

πŸ”—Final Thoughts πŸ’­

nikgraf reported:

Hey everyone πŸ‘‹ One year ago I started to explore combining CRDTs with end-to-end encryption (Matrix's Olm/Megolm) to allow people to collaborate on the same documents/data. Couple months back I got a first prototype working and then evolved to a production ready app. Think of a simple Google Docs, but end-to-end encrypted and offline-first (iOS & Android for now).

Feedback, ideas and question are very welcome!

Website: https://www.serenity.re/en/notes

The app/client source is available here: https://github.com/SerenityNotes/serenity-notes-clients

This is not a project built directly on Matrix, but I thought it was a very cool use of Matrix's end-to-end encryption library, olm!

πŸ”—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.net410
2maescool.be533
3fosil.eu674.5
4fluse.duckdns.org685.5
5matrix.vgorcum.com743.5
6ctrl-c.liu.se1237
7maunium.net1284
8elcyb.org1287.5
9roeckx.be1341
10shortestpath.dev1427

πŸ”—#ping-no-synapse:maunium.net

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

RankHostnameMedian MS
1dendrite.neilalexander.dev1251.5

πŸ”—That's all I know 🏁

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