Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
I managed to find some time to commit
lnavconfiguration files for Synapse this week.
lnavis a log-viewing tool with too many bells and whistles for its own good. I particularly like it because it can interleave multiple log files by timestamp, and highlight log lines based on their severity. If you spend a lot of time looking at logs, these things can lower your blood pressure. Take a look if you think you'd find it useful.
Hello TWIM! It's another week and here at Synapse we released v1.76.0. The big news for this release is that faster joins are now enabled by default. It has arrived 🚀! In addition, some other notable features are:
- Updated the default room version to v10
- Added a
set_displayname()method to the module API for setting a user's display name
- Implemented support for MSC3890: Remotely silence local notifications
- Implemented experimental support for MSC3930: Push rules for (MSC3381) Polls
- Add index to improve performance of the
/timestamp_to_eventendpoint used for jumping to a specific date in the timeline of a room
and much more! You can read all about it here. Also, please note that the upgrade from 1.75 to 1.76 changes the account data replication streams in a backwards-incompatible manner. Server operators running a multi-worker deployment should consult the upgrade notes.
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
We did a lot of work on our markdown input this week. mauke finally fixed those pesky links with a closing parenthesis at the end from dropping that when linkified, without breaking links inside parentheses. Yes, it is still a regex and possibly outlawed in many civilized countries for having detrimental side-effects on society, but it works, so who am I to argue! Additionally we changed the newline behaviour (and fixed a bug related to line-breaks as well). A single line-break now corresponds to a line-break. You can find more about that decision here and here. You can opt out of that behaviour and other changes we do to the default cmark/commonmark behaviour using the new
/cmarkcommand. Speaking of other changes, we now support
||warning|spoiler||as a way to enter spoilers, with the warning being optional as well as
There is also now a workaround for Wayland users, who were bothered by stuck menus. This still needs to be fixed in Qt eventually, but in the meantime you can now close menus by clicking somewhere inside of Nheko thanks to a contribution by enigma9o7. Decodetalkers also made Nheko clean up notifications on exit and the fullscreen image overlay hide, when the save dialog is open. You can create DMs by pasting an mxid again now. Previously you needed to delete and re-enter the last character... The username completer should also now open around twice as fast and clicking notifications now once again restores Nheko from the tray. The last goodie was contributed by Malte. The invite dialog inside a room can now search for users you have a DM open or the server side userdirectory for suggestions.
Also, I am attending FOSDEM, so let's see if you can find me!
#fluffychat 1.9.0 has been released with some bugfixes, performance improvements and more Material You design. It now even uses the accent color on Ubuntu.
FluffyChat now is built with Flutter 3.7
- Translated using Weblate (Czech) (Michal Bedáň)
- Translated using Weblate (Czech) (grreby)
- Translated using Weblate (Dutch) (Jelv)
- Translated using Weblate (Estonian) (Priit Jõerüüt)
- Translated using Weblate (Galician) (josé m)
- Translated using Weblate (German) (Christian)
- Translated using Weblate (German) (Vri 🌈)
- Translated using Weblate (Indonesian) (Linerly)
- Translated using Weblate (Korean) (Youngbin Han)
- Translated using Weblate (Polish) (Wiktor)
- Translated using Weblate (Turkish) (Oğuz Ersen)
- Translated using Weblate (Ukrainian) (Ihor Hordiichuk)
- chore: Change invite link textfield label (Krille)
- chore: Remove unused dependency (Krille)
- chore: Remove unused translations (Krille)
- chore: Update Matrix SDK and refactor (Krille)
- chore: Update dependencies (Krille)
- chore: Update flutter_map (Krille)
- chore: add integration tests (TheOneWithTheBraid)
- chore: add integration tests for spaces (TheOneWithTheBraid)
- design: More clear chat background and rounded popup menu (Krille)
- design: Nicer navigationrail (Krille)
- design: Upgrade to Flutter 3.7
- feat: Bring back disabling the header bar on Linux desktop (q234rty)
- feat: Nicer design for abandoned DM rooms (Christian Pauly)
- fix: Archive (Krille)
- fix: Shared preferences package for flutter 3.7 (Christian Pauly)
- fix: permission of web builds (TheOneWithTheBraid)
- fix: Notification Settings (Krille)
- refactor: Migrate to Flutter 3.7.0 (Christian Pauly)
- refactor: Same animations everywhere in app (Krille)
- refactor: Stories header with futurebuilder (Krille)
- refactor: disable some redundant tests (TheOneWithTheBraid)
- style: Animate in out search results (Krille)
- style: New modal bottom sheets (Krille)
- style: Redesign public room bottomsheets (Krille)
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Johannes Marbach says
- Further progress on MSC3946 (Dynamic Room Predecessors), expecting to wrap the majority of work up next week
- Continued progress on improving our packaging progress across macOS, Windows and Linux to simplify future releases
- Stuck notifications increasingly turn into a problem. So we've adapted our roadmap to prioritize fixing them, starting with adding tools for easier debugging of the issue.
- Even more news on notifications: We started implementing MSC3952 (intentional mentions) and continue to iterate on the design for a new settings page and defaults
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- This week the team has been preparing for FOSDEM. It’s on this weekend and there will be lots of exciting things happening so don’t miss out!
- In Element X our focus has been on speed. We want the new app to be so fast you’ll blink and miss any loading. That’s being baked in right from the start and we’re really pleased with where we are today.
- We’ve also been working on improving the polls and rich text editor features.
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Our Android team has been preparing an Element X: Android demo for this week’s FOSDEM conference. There will be developer access available too so come along to the talk and check it out!
- Polls and the rich text editor (labs) features have also been getting some love this week so keep a look out for those improvements.
Dept of Non Chat Clients 🎛️
matrix-social is a social media client powered by Matrix.
- Posts can now be viewed per-room
- Commenting (replying) from matrix-social is now possible
- Optimizations to binary size
- We are now working on joining rooms
Preview matrix-social at https://imbev.codeberg.page/matrix-social/
All are welcome to join us at #matrix-social:matrix.org!
Cactus Comments (website)
Cactus Comments is a federated comment system for the web, based on the Matrix protocol.
Today I set up Cactus Comments on my WriteFreely blog, and posted a detailed article about it: https://wrily.foad.me.uk/cactus-comments-in-writefreely. Thanks to the creators of the Cactus Comments integration in matrix-docker-ansible-deploy and the kind help of folks in the #cactus:cactus.chat room.
Dept of VoIP 🤙
Element Call (website)
Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app
Matrix Call Multitrack recorder
Resulting from some past discussion of how matrix live may be improved, I did open https://github.com/vector-im/element-call/issues/789 to support multitrack recordings of participants. However, it turns out this can quite easily be solved using a bot:
Therefor https://git.nordgedanken.dev/mtrnord/matrix-call-multitrack-recorder has been created. This is an early alpha bot using matrix-nio which can participate in both legacy WebRTC matrix native calls and Element-Call style calls. Its purpose is to record each stream of a user to either a WAV or mp4 file.
However, since this is very early, it should be noted there currently exist some UX issues and some features are missing.
Feel free to give it a try or just join the Room: #matrix-call-multitrack-recorder:midnightthoughts.space
Many thanks to tulir for https://github.com/maubot/echortc which helped to get a basic MVP rather quickly.
Dept of SDKs and Frameworks 🧰
td [m] reports
This week the team released v0.16.0
This could sound more like a changelog, but we fixed a couple of voip issues last week and have been working actively on calls in general.
- upgrading 1:1 audio calls to video calls is in review stage.
- active speaker for group calls based on audioLevel is a thing in the sdk now.
- we finally merged the expires_ts move to devices part in the event which fixes group calls with element.
- attempt at fixing some glare cases
- rejecting own call when needed, sending all ice server urls, tweaks in group call code to all on onboarding pages (turn off cam/mic before joining calls), etc.
Multiplatform Kotlin SDK for Matrix
Just again a new version of Trixnity (v3.3.0):
- Support room upgrades. They are "invisible" so you don't need to do anything to support them, the timelines are just merged.
- add return value to
RoomService::sendMessageto abort or retry sending messages easier.
- Revert logging upgrade to stay compatible with logback-android
- Remove experimental
measureTimebecause it causes issues with other kotlin version than 1.7.22
- fix missing usage of syncResponseBufferSize in
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
The last two weeks have all been under the rising star of FOSDEM this weekend and presenting the latest cool sh… stuff on Element-X. As such, the team has been busy—like really busy—improving the existing API for Sliding Sync and Timeline, adding fixes, like duplicate message prevention, various sliding sync internal fixes, timeline reset, fixes in the
VecDiffgeneration or proper retries on decryption errors, and performance improvements, like defer loading tracked users or reducing the cold cache size and time and not the least adding support for tracing via OpenTelemetry.
Most profoundly sliding sync has been upgraded to the latest JSON schema with named views giving the team time to test that before shipping it to a wider audience post FOSDEM. In spirit of that, a first version of the sqlite-based crypto-store has also been merged.
👉 Wanna hack on matrix rust? Go check out our
help wantedtagged issues and join our matrix channel at Matrix Rust SDK.
Dept of Bots 🤖
The bot now publishes a iCalendar feed with all of the scheduled gaming events for the Friendly Linux Players community. Subscribe to events with your favorite calendar application here:
A few years ago, I've written a small bot-api in Rust that used (and still uses) Fractals Matrix-implementation. Since that has been abandoned quite a while ago, I wanted to look into porting my crate to the matrix-rust-sdk. As it turns out, there wouldn't really be any point in doing so. The SDK can be used more or less directly. Which I've learned, by writing a small demo-bot.
This rather simple bot parses the exif-data of pictures that are posted, extracts the GPS-data (if available) and replies with a Matrix location-event for the image location. The plan was to do this with threads, but the SDK sadly doesn't support those. So good old replies it is. As a bonus, which turned out to be uglier than I thought, it'll also remove it's location-posts automatically, if the corresponding image gets removed. Configurable autojoin on invite and a command to leave are implemented as well.
Dept of Events and Talks 🗣️
A heads up that our FOSDEM devroom schedule was updated.
Dept of Ping
Dept of Ping will return next week
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.Support us