Dept of Spec 📜
Here’s your weekly spec update! The heart of Matrix is the specification – and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/proposals
MSCs in Final Comment Period:
- No MSCs are in FCP.
Spec Core Team
In terms of Spec Core Team MSC focus for this week, we’ve been aiming to get the requirements for MSC3952: Intentional Mentions landed as well as discussing MSC3952 itself, in addition to planning out what the next few spec releases are expected to look like.
Watch this space for progress on the Matrix 2.0 MSCs and other critical path items 🙂
Curated MSC of the week
randomchosen MSC is MSC3575: Sliding Sync! It’s one of the largest (or is the largest?) MSCs we’ve ever had, and dramatically changes how clients actually get updates from the server. It’s worth the read if you’re a client developer, though the team working on it is ironing out some bugs. Let us know what you think on the MSC 🙂
It seemingly was okay with being generated this week again, so here it is:
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Howdy, welcome to another week in Synapse-land. We’ve released v1.78.0rc1
with some cool bugfixes and features. Some notable additions in this version are:
- Fixed a long-standing bug where the room aliases returned could be corrupted.
- Fixed a bug introduced in Synapse 1.76.0 where partially-joined rooms could not be deleted using the purge room API.
- Fixed a long-standing bug where federated joins would fail if the first server in the list of servers to try is not in the room.
- Implement the experimental
exact_event_matchpush rule condition from MSC3758.
- Added account data to the command line user data export tool
and much more! Take a closer look here in the release notes and have a happy Friday.
A performance-oriented homeserver with minimal dependencies.
Jason Volk reports
There’s been progress in several areas for Construct 0.9 this week, cut with 71 new commits. First I’d like to give special thanks for @bgiovanni for continuing to drive the progress this week; they have on several occasions been able to navigate the codebase and the specification to provide concise reports so I can fix anything in mere minutes. I hope we can keep this up.
Construct can now be configured to purge a room from the database after the last local user leaves. This week I also took the plunge on implementing a controversial clause in the specification which requires a server to broadcast a join event on behalf of another server. This is problematic because it’s technically an amplification attack, so I’ve done my best to narrow the conditions for when to actually perform this: only if the counter-party is not already joined, and only if Construct has an alias set for the room being joined.
In other news, I fixed a bug in
boost::asiobut since that won’t land for a while and Construct’s
io_uring(7)might be susceptible on Arch and Gentoo I hacked a workaround just for us, especially since the old
aio(7)makes my desktop much less responsive (I can’t believe I dealt with that for years!).
Next week Yan Minari might have a deeper look at Sytest and Complement integration and maybe mdad, while I plan on implementing local room policies and user management to make Construct safe for public registration.
If you’re looking for an alternative to synapse please check us out at #construct:zemos.net
Conduit is a simple, fast and reliable chat server powered by Matrix
Timo on Conduit ⚡️ reports
Hey all, in the past weeks I have been working on message backfilling over
federation (!), history visibility correctness and a bunch of small bug fixes.
Prepare for a new Conduit release in the near future!
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Some of you might have already seen it, but for the rest I will just spoil the surprise now: We released 0.11.2 (and 0.11.3, don’t ask…) this week! Now you can easily hide spoilers by just enclosing the message with
||, search for users in the user directory and much more. I have included the changelog below so you don’t need to look for it!
- Improved Markdown input 🗒️
- You can now enter strike-through and spoilers using
- Single line-breaks now also create a line-break in the formatted message.
- Code tags now preserve whitespace.
- User search in the invite dialog 🧑🤝🧑 (Malte E)
- Can search either locally or consult the user directory on your server.
- Allow disabling animations before login.
- Set the window role to “imageoverlay” on X11. (Thulinma)
- The Nheko binary should now be slightly smaller.
- You can now build Nheko against a system install of the blurhash and
cpp-httplib libraries. (vitaly)
- You can now enable scrollbars for the room and community lists in the
- Add a generic video icon when there is no thumbnail. (LorenDB)
- Pause video when switching rooms. (LorenDB)
- Add a fancy delegate when encryption is enabled. (LorenDB)
- Standardise command format messages. (phyto)
- Automatically fetch keys for undecrypted messages after verification.
- Remove all notifications on exit on Linux. (ShootingStarDragons)
- Document markdown features and /cmark command in the man page. (tastytea)
- Speedup the user completer.
- Allow closing menus on Wayland by clicking the window. (ShootingStarDragons)
- Merge Debian/Ubuntu Dependencies in the README. (enigma9o7)
- Update zsh completions. (tastytea)
- Skip empty requests for cross-signing keys when user only has one device.
- Hide image overlay when saving a file. (ShootingStarDragons)
- Make it more obvious that the add reaction button is not an emoji.
- Build only the gstreamer qml plugin in flatpak.
- Update Ubuntu dependency list for building from source. (tastytea)
- Estonian (Priit)
- Ukrainian (NullPointerException)
- Indonesian (Linerly)
- Chinese (Poesty Li)
- Esperanto (Tirifto)
- French (MayeulC, CB, Glandos, Rick)
- Dutch (Thulinma)
- Italian (DynamoFox, Elia Tomasi, Joseph Curto, Quanterxotur)
- Russian (Evgeny, SOT-TECH)
- Finnish (Lurkki)
- You can now forward stickers again.
- Edits shouldn’t “jump” out of threads anymore.
- Focus text input when quick switcher is closed. (LorenDB)
- Fix rare freeze with an empty list in a completer.
- Don’t fail the plugins check on GStreamer 1.22 during a video call.
- Allow nested ()/ brackets in URLs. (mauke)
- Make br tags work properly again.
- Don’t double free call devices. (Jason)
- Work around multiple destructor calls on Clang. (Jason)
- Html in sidebar.
You can find most of the downloads either in your favourite distributions repository (even including Arch now!), flathub or on our releases page: https://github.com/Nheko-Reborn/nheko/releases/tag/v0.11.3
Thank you, everyone who contributed!
Matrix messaging app for GNOME written in Rust.
Kévin Commaille says
Hello all! Fractal 4.4.2-beta2 is available on Flathub Beta.
You read correctly, it’s not Fractal 5 yet. This is a maintenance release that fixes the compilation of Fractal 4.4 with recent libraries and allows to build the Flatpak with the latest GNOME runtime. That means no more warning that the GNOME 41 runtime is outdated!
There are no new features, but since we updated a lot of Rust dependencies we preferred to release a beta version before using it to update our stable release to the latest runtime. So please test it and if no major regression is reported, we will release it as stable in two weeks.
To get it, run the following commands:
flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo flatpak install flathub-beta org.gnome.Fractal flatpak run --branch=beta org.gnome.Fractal
Note that if you always want to use this beta version instead of the stable one, and run it from the icon in your launcher, you will need to change its desktop file to use the command in the last line.
See you soon with some news regarding Fractal 5 hopefully!
Matrix client for Emacs
Changes since the last release include:
ement-view-spaceto view a space’s rooms in a directory buffer.
- Improve -ement-describe-room- command (formatting, bindings).
- Retry sync for HTTP 502 “Bad Gateway” errors.
- Formatting of unban events.
- Update password authentication according to newer Matrix spec. (Fixes compatibility with Conduit servers.)
- Image scaling issues.
Feel free to join us in
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Johannes Marbach reports
- This week we got closer to getting our cloud packaging working, a step towards drastically reducing the time we spend on releases and allowing us to do more.
- We also continued to work on stuck notification issues with one bug fix and another close to being resolved, too.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
This week we were very busy squashing bugs in Element X and we’re happy to announce that we are ready to make it available to the general public as a TestFlight app available for iOS, iPadOS and macOS (on Apple Silicon) soon (pending Apple’s review). This is a pre-alpha version of the app which features the new faster sync and basic functionality. There are lots more features coming over the next few weeks! We will share the public link in our new Element X iOS public room over at https://matrix.to/#/#element-x-ios:matrix.org
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
Jorge Martín says
This week our efforts have been split between Element X and Element Android:
- On Element X, we’re focused on laying the foundations for the app, improving our tools and processes for distributing the updated Rust SDK as an Android module and refining the initial screens of the app, matching the new designs and UX flows.
- On Element Android, we’ve released a new version 1.5.26 with more fixes and improvements for the Rich Text Editor, Polls and Location Sharing features, to name a few of them.
Dept of Non Chat Clients 🎛️
Happy to announce a neat little CLI tool (built with rust, of course) to migrate your matrix rooms from one account to another: matrix-migrate is inspired by the the EMS migrator, but
- is a nice little CLI tool, based on
- allows for restarts (refreshes at the beginning)
- it runs the operations async in parallel and is thus quite a bit faster
Matrix Wrench (website)
Matrix Wrench is a web client to tweak Matrix rooms.
Christian Paul (jaller94) reports
Matrix Wrench 0.11.0
I’ve continued to develop Matrix Wrench, a webapp for techy Matrix admins to manage rooms and room state. It can be hosted on any static web space, supports multiple logins and has just one direct dependency (htm/preact).
Lots of great new features got released in the last two weeks. Here are the highlights:
- Added: Tables of joined rooms and direct contacts
- Added: New input for identities: Masquerade As Matrix ID (for AppService tokens)
- Fixed: Knocking button didn’t work (“Error: Content not JSON.”)
Check out the changelog of Matrix Wrench.
Dept of Widgets 🧩
Oliver Sand reports
After we had some great time at FOSDEM and where we were able to test our Barcamp widget with a broader group, we are thrilled to announce that we finally made the next widget public:
Entering the matrix-meetings-widget!
The widget allows to plan meetings, invite other users, configure meetings rooms, view your calendar, and perform video conferences.
All data is stored in Matrix, no external service required. As the Widget API is a bit limited for this use-cases, it’s a combination of a widget and a bot.
As a small teaser: We are in the progress of building a whiteboard widget that is fully based on Matrix without an external storage.
If you have any questions, reach out to us at #nordeck:matrix.org.
Dept of SDKs and Frameworks 🧰
Multiplatform Kotlin SDK for Matrix
A new release of Trixnity is out. Among other things, there are some performance improvements regarding reading/saving files and reply fallback support has been added.
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte reports
- Yet again, lots of work is happening to increase the robustness of sliding sync and the timeline API
- Support for audio messages in matrix-sdk-ffi was added by an external contributor
- Read receipts are close to landing in the timeline API (contributed by Kévin Commaille, one of the main Fractal developers)
- Some convenience functionality around powerlevels was added by our former colleague Ben
Dept of Bots 🤖
Since there are people out there who actually use my tool for writing bots, I revived mnotify and started rewriting it in Rust using the
matrix-rust-sdk. As a consequence, E2EE now works out of the box! Thanks to vadozemac builds without external C libraries are possible! If you are familiar with Rust and the matrix-rust-sdk, help is appreciated! 🙂
A new pingbot (echobot) has been implemented as an application service.
There is an instance of it operating in #ping-no-synapse:maunium.net currently; and there is some discussion of it there.
Source: https://codeberg.org/cel2/pingbot-appservice-rs https://git.scuttlebot.io/%2531GZTczroR1ldeWb0BbZH10MCWh9dd5HQM9qiN734YY%3D.sha256/
A Matrix bot for the Friendly Linux Players community.
We now have a nice web page for each event! These provide a convenient way to share event details with others, and are already used in the iCalendar feed. If/when updates to Mastodon and Steam are live, they will also use these pages. For an example web page, this corresponds to the event coming up this weekend:
In addition, there was some refactoring merged, thanks to a community member.
Dept of Events and Talks 🗣️
Matrix Salon Podcast (German)
Christian Paul (jaller94) reports
Meet Nico who many might know as the maintainer of the nheko client and a passionate critic. We talked about how he hopes to improve Matrix by voicing concerns on various change proposals and how the similarity of the names Nico and nheko is just a coincidence.
Episode link: https://anchor.fm/matrix-podcast0/episodes/Nico—FOSDEM-2023-e1vf7g1
Mastodon post: https://mastodontech.de/@jaller94/109920366857895607
Matrix User Meetup Berlin
Next Matrix user meetup 1.3.2023, 8 pm @ c-base
Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
Every first Wednesday of the month in the c-base at 8pm (’til the next pandemic).
Matrix room: #mumb:c-base.org
Dept of Guides 🧭
I wrote two blog posts (one, two) about decentralization and its advantages over centralized networks (with some Matrix examples). It’s in Swedish, but I hope some find it useful.
Room of the Week 📆
Tech News in Matrix
Would you like to get your tech news inside of your Matrix client of choice? I’ve set up a simple room that pulls articles from dozens of quality RSS feeds (including This Week In Matrix) and posts them in the room.
You can join the read-only room at: https://matrix.to/#/#tech:uxn.one
Dept of Ping
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
That’s all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!