Matrix Spec (website)
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.
- MSC4020: Room model configuration
- MSC4019: Encrypted event relationships
- MSC4018: Reliable call membership
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were accepted this week.
We released version 1.7 of the Matrix Spec on Thursday. This release features media repository improvements and reactions. Thank you to all who contributed to this release, whether through writing or reviewing MSCs, writing spec PRs, or finding spec bugs. And congratulations to those who had their first MSC make it to the release. Read the blog post for the full details.
We're in the process of working out what Matrix 1.8 looks like and need to hear what people are working on. If you have an MSC or idea you're planning on looking at in the next 2 months, let us know in #sct-office:matrix.org so we can prioritize it accordingly.
Random MSC of the Week
The random MSC of the week is... MSC3184: Challenges Messages! This feature allows participants in a room to make decisions randomly by playing rock, paper, scissors; flipping a coin; or drawing straws.
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Happy Friday, everyone. This week we disclosed three security advisories for Synapse. The TL;DR is that you should upgrade to at least Synapse 1.74.0 or newer. Please see the Matrix.org blogpost for links to the advisories.
Also of note is the release of Synapse 1.84.0 this Tuesday. New in this release is
- an option to prevent downloading media from specified domains;
- a new set of redis TLS configuration options (Roel ter Maat); and
- addition support for new and stabilised MSCs.
Alongside this are a batch of bugfixes and internal improvements. We are aware of one regression in v1.84.0—expect a minor release with a fix to that sooner rather than later.
We've also begun an effort to profile and improve the performance of the
/messagesendpoint. That should benefit everyone, but in particular we hope to improve the UX of the Matrix Public Archive.
Thank you as ever to our contributors, testers, and community of server operators.
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
Hey, it's been a while. Which means we were busy, just not with developing Nheko! However, we did do some stuff now:
- The sticker and emoji pickers now have sections and include both normal emojis and custom emojis in the emoji picker. This means your search results are also sectioned and you don't need to use ~ for custom emoji anymore. You can also now edit your custom emoji right from the picker (or rather open the settings menu from there). This should make going crazy with custom emoji much easier and I hope you have fun with it!
- LorenDB also finally fixed that pressing a key would focus the input bar but eat the first key. This was pretty annoying, but it should now behave much nicer!
- Sateallia meanwhile fixed a similar bug with the focus in the search menu on some platforms, implemented selecting multiple files to upload in the filepicker (before you only could drop a group of files into Nheko at once).
- You can now copy images from the image viewer to the clipboard.
- And lastly your rooms in the search are now ordered by recency of the last message. This should make rooms with the same name have always the right room appear on top. Additionally upgraded rooms are now in italics, which should make it still possible to jump to them, but also distinguish them in the search.
Have a nice day and try custom stickers and emojis some time!
A client for matrix, the decentralized communication protocol
Tobias Fella announces
Here's what's happened in NeoChat in the last weeks:
- I (Tobias) implemented support for sending stickers, based on MSC2545. You can now send them from the emoji picker, which has also been improved visually.
- I also implemented support for editing your account's stickers in NeoChat's settings. Other parts of the MSC (room stickers, etc.) are coming soon.
- James improved read markers and state changed, limiting the number of the that are shown at the same time.
- Aleix and I improved the notifications by grouping multiple messages from the same room into a single notification.
- James added caching for the last event in a room, meaning that on startup, NeoChat will now sort all rooms in a correct order.
- We fixed a bug where the user/room/emoji completion menu randomly did not open.
- James finished documenting all of NeoChat's codebase.
- I improved NeoChat's space support by replacing the existing space view with a new sidebar in style similar to many other clients.
- I also improved logging, which will hopefully help us debug many problems, especially around encryption issues. In the future, if you notice such problems, make a copy of
~/.local/share/KDE/neochat.log(on Linux; for other platforms, talk to us to figure out where the log file is) and possible also
neochat.log.oldimmediately, to help with debugging.
- Rooms with only two users (i.e., DMs) will now show a more useful sidebar, omitting irrelevant details like the normal room member list.
- James also improved NeoChat's developer tools, now showing more useful information.
📢 This Week in FluffyChat 🐾
Fixed memory leak and addressed minor bugs. Made progress on new HTML rendering logic for upcoming release. Translated FluffyChat into Chinese (Simplified), Croatian, Estonian, Galician, Indonesian, Romanian, Spanish, and Ukrainian. Updated dependencies and improved features: Updated file_picker to 5.3.0. Added storage persistence request on web. Optimized member retrieval in public rooms. Stay tuned for the new and improved FluffyChat! 🐱💬
Matrix client for Emacs
Ement.el, a Matrix client for the GNU Emacs Lisp machine and text editor, was graciously feature by David Wilson in his weekly System Crafters stream. He thoroughly demo'ed Ement's powerful, unique features, giving a great introduction to new users, and showing the power of Emacs in general. Check it out!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Here at Element web our week has been focused on notifications!
- In our journey to rid the ele-web-world of stuck notifications we’ve fixed several bugs. Unfortunately fixing these bugs has surfaced other existing bugs that make the experience worse :sob:
- We’re hard at work on all these items, keeping the original fixes and introducing new fixes.
- While that means we’re skipping the public release this week, it does also mean that we’ll have made some significant improvement in our next version!
- Also on the topic of notifications we’re adding the final touches to our new notifications settings screens, ensuring that the push rules and toggles match up as you’d expect.
- Next week we’re hosting a community testing session for our Intentional Mentions MSC. The MSC aims to remove the unnecessary pings when people use your username in the timeline but do not tag you explicitly.
Element X iOS
The next generation of Element on iOS.
We’re waving bye bye to another fun week in ElementX land. We kept ourselves entertained by:
Dept of Non Chat Clients 🎛️
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
Circles is an E2E encrypted social network app built on Matrix.
This week we are happy to announce a new beta build of Circles for Android. New in v1.0.11:
- Major compatibility fixes for cross-signing
- Improved support for UnifiedPush
- Use of Matrix threads for replies to top-level posts
- Bug fixes to enable switching accounts without logging out
Also new for this release is a GitHub mirror of the Circles Android source repo, for easier bug reporting.
Dept of SDKs and Frameworks 🧰
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Ivan 🦀 reports
This week, new projects have started!
- A new crate has been created,
matrix-sdk-ui, which is the new home for the UI API the Matrix SDK provides, like
RoomList. Developing this kind of UI API inside the Matrix SDK instead of the client side (e.g. ElementX iOS or Android or even Gnome Fractal) means it improves testability and quality greatly, as we can tweak the network layer more easily, and in depth. It also means that it boosts the productivity of developers that create new Matrix clients: no need to deal with synchronisation, room presentation, timeline, pagination etc., everything is managed automatically.
RoomListis a layer on top of
SlidingSync. The work has started, and the progress can be tracked in this meta issue. To make it real, some improvements were necessary on the
SlidingSyncside, esp. being able to change the sync-mode of an existing
SlidingSyncList, which led to a nice revamping of the ranges API. We are not mentioning many small clean ups (1, 2, 3, 4 and so on).
- Work has started to support Sliding Sync sticky parameters properly,
- Ruma has been upgraded, notably to support the latest Matrix 1.7 features.
- In the Crypto land:
- User/device pairs who have invalid one-time keys are now timed out,
VerificationRequesthas a new state when a request transitions.
VerificationRequestis used to control the flow of the verification but only up to a certain point. Once different specific verification flows are handled (i.e. SAS or QR Code), the
VerificationRequestobject creates a child object of the
Verificationtype. The idea behind this patch is to add a new
Transitionedwhich holds the child verification object as associated data. This makes it much simpler to go through the whole verification flow by allowing users to just listen to the
- The return of OTK fetching failures,
- Replace the
libolmbackup encryption code with a native Rust version, which allow Wasm targets to use the
- Disable automatic-key-forwarding for the
- Better logs.
- In the Notification land, we need two sync loops instead of one (that controls them all), everything is described in The Two Sync Loops, with sub-issues 1 and 2,
- In the Media land, we are starting to support media uploading progress,
- In the Bindings land:
- We are starting to deploy UniFFI async support, which was partly reverted for particular cases, but it works in general,
- Stop unconditionally enabling
matrix-sdk-ffi, which led to compilation issue on Android architectures.
That's all I know
See you next week, and be sure to stop by #twim:matrix.org with your updates!