This week was a little on the quieter side again, with some of us away on holiday and others away with illness. Nevertheless, this week develop saw a variety of activity. Some personal highlights:
Shayās effort to document Synapseās numerous config optionslanded. This is a huge and comprehensive effort thatāll help administrators to understand all the options they have to configure Synapse.
A subtle bugfix from Erik which corrects incorrect counts in one of the Admin API endpoints.
The remainder of the poetry work has landed. There were a few last-minute complications in CI to smooth out, but weāve now finished the migration. Synapseās docker images and debian package now come with a fixed set of dependencies (even transitive ones) in a way that lets us support multiple Python versions and interpreters.
Weāre looking forward to shipping these in Synapse 1.58, whose RC is scheduled for Tuesday the 26th of April.
Iām also keen to see how PR 12522 from Rich and Olivier progresses. It aims to fix a nasty memory bug which can cause Synapse to get stuck in an OOM loop.
As ever, Iād like to express thanks to our community of users, server operators and contributors. Thanks are also due to @callahad: today is his last day of managing the Synapse team. Weāre all going to miss him and wish him well: thank you for everything youād done over the last year and a half.
As a follow on from our previous launches, the team is building ālive location sharingā. This will allow you to automatically share where you are in the world with others for a period you choose (15 minutes, 1 hour, or 8 hours), instead of sending a single static location.
Community testing
We ran our first async community testing session this week. Thank you all who joined in! We found 13 issues so far, which is good going.
We have some new features landing for the search experience on Web, join us for testing from Thursday!
Threads is in Beta! The team is hard at work smashing bugs and improving notifications so that we can remove the beta label and get everybody access to our new feature!
If youāre using Threads, donāt forget to give us your feedback.
This week the team discussed how our Web product looks and feels to new users. While we use our own products all the time, it can be good to take a step back and ensure that our product decisions benefit all users, including the newbies. Watch this space for more info in the coming weeks as we continue to trial things that we hope will make onboarding to Element easier.
In labs (you can enable labs in settings on develop.element.io or on Nightly)
Video rooms are coming together nicely, with the addition of lobby screens and room list stickiness to wrap up the design implementation
The newest version of the app (1.8.13) is ready! In this release weāve made a bunch of improvements and bug fixes, check it out here.
Our favourites include: Force touching room previews no longer update your read receipts, thereās a congratulations screen for new users when creating an account, and weāve reduced the number of home page reloads.
Also new in product are presence indicators! From your home page or DMs youāll be able to see if a user is present or away. Note; this is only supported if your homeserver has it enabled.
Upcoming; Weāre working on adding āmention pillsā when tagging users in a room.
Please note; Weāll soon be removing support for iOS 12 and iOS 13
The team is working on fixing bugs and making improvements to flows like āignore userā. Weāve also made some changes to the way we format code.
Element Android 1.4.12 is ready to be released but currently on hold in the Play Store due to rules around User Generated Content (UGC). Weāre chatting with Google and the new update should be available soon.
Weāve added two major user-facing features to populus viewer:
A two-up view in the pdf viewer, allowing you to view and annotate two pages at once on a wider screen
An audio viewer, complete with audio annotation, so that you can annotate temporal segments of an audio recording
Iām especially excited about the latter - being able to discuss audio recordings will be a great teaching tool, and Iām hoping it might also be useful for things like people who want to talk about podcasts together (for purposes of editing, or just for fun), and people who want to annotate recordings of public talks of various kinds. The last use case would also be pretty well served by video annotation - so thatās now rising on the agenda. Iāve created an MSC, here where Iāll be filling in the details of a proposed format for interoperable audiovisual media annotations. As always, if youāve got questions, want to follow development progress, or just want to talk about the future of social annotation on Matrix, come join us at #opentower:matrix.org.
nheko-krunner has finally been released! Version 0.1.0 contains several handy features such as searching your rooms, joining new rooms, and starting and switching to direct chats. Furthermore, if a room has unread notifications, nheko-krunner will let you know by tacking on a notification count to the room name (e.g. This Week in Matrix (TWIM) (1). Currently this feature is not disable-able, but I plan to dive into writing KCMs (KConfig Modules) soon so that I can add a toggle for this.
Hopefully a few people find this handy, and remember that if you donāt use KDE, nheko still has a handy D-Bus API that you can use to write integrations with other software.
We havenāt done any regular posts about it in a while, but the SDK sees almost weekly releases. (We did release version 0.8.20 last week) If you forgot about it, the Matrix Dart SDK is the SDK FluffyChat, the Famedly clients and a few others use. Let me summarize some of the changes for those who havenāt kept up:
One of the killer features is probably WebRTC support š. It handles all the signalling for you, which makes integrating call support into your Flutter or Dart Matrix client fairly simple. Currently it supports version 1 of the call protocol, which is still an MSC and implements a few of the other MSCs. Experiments with group calls are still in progress.
We also switched databases a few times and tuned it more (we posted about FluffyBox last year). The database backend should now be a lot more stable and more performant, while also using less memory.
Continuing with stability, we worked a lot on how the timeline is stored and structured, leading to a much more robust experience. The SDK is also now completely nullsafe š, which gets rid of a lot of annoying error modes. There were some fixes to E2EE here and there, but mostly the experience has been really solid and didnāt need much work.
Some of the more recent developments include widget support as well as improving the file upload experience. The SDK now inserts a dummy event for a pending upload, images are thumbnailed and resided in a different isolate and uploads are automatically retried after a connection failure. We are also working on improving the push support, making it easier to fetch events from a push.
And Iām currently working on bringing fragmented timeline support. Nico told me it would be pretty (not) easy to do⦠and IĀ have to say, he was right. Good first issue š
Iāve created a NixOS module, nix-matrix-appservices, that can simplify the bootstrap and maintenance of matrix appservices on nixos. With it, appservices can be spun up easily with registration and tokens handled by the module. Most mautrix and mx-puppet bridges have been tested to work and they can be setup in a couple lines of nix code. There are plenty of options you can make use of to configure more complex appservices.
You can find the the code, matrix room(gitlab badge), and usage information here: https://gitlab.com/coffeetables/nix-matrix-appservices
PS: You can also help us to design the underlying MSC, especially, we need some opinions on how to name things (the profile rooms) the room !!
Dept of Ping š
We know you missed it, here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank
Hostname
Median MS
1
nognu.de
278
2
cry.is
391
3
rustybever.be
558
4
sspaeth.de
700.5
5
beckmeyer.us
911
6
grin.hu
981
Thatās all I know š
See you next week, and be sure to stop by #twim:matrix.org with your updates!
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.