Matrix Live 🎙
Dept of Spec 📜
Andrew Morgan (anoa) says
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.
MSCs with Proposed Final Comment Period:
- No MSCs had final comment period proposed this week.
MSCs in Final Comment Period:
- No MSCs were closed this week.
The Spec Core Team has decided to not include MSC3440 (threading via
m.threadrelations) specifically in the upcoming Matrix v1.3 release. We previously stated that it would be in v1.3, but there's a few unproven MSCs (namely MSC3773 (notifications for threads)) which make it feel improper to put threads into the spec at this stage. We're aiming for a future (very near) spec release to contain threads, assuming we can get enough of the feature landed. This is a very similar approach to what we did with Spaces: while the core feature existed as FCP-concluded for a while, we wanted to give some other MSCs a chance to land before writing it up formally.
As a follow-on from this, any implementations that are currently assuming "v1.3" spec support translates to threading support should note the following:
- Clients which are pre-emptively checking for v1.3 in
/versionsshould stop doing that. Look for
org.matrix.msc3440.stableas an "unstable" feature flag instead.
- Servers which offer MSC3440's behaviour should expose it on stable endpoints and expose
org.matrix.msc3440.stablefor clients to detect.
- Optionally, clients and servers can drop support for the
org.matrix.msc3440(truly unstable) flag, given clients & servers should have already upgraded.
At the spec level, we'll still be writing up MSC3440's dependencies (aggregations and friends), but will notably be missing MSC3440 specifically in v1.3. If folks can update their clients urgently, it would be massively appreciated!
Random MSC of the Week
The random MSC of the week is... MSC2596: Proposal to always allow rescinding invites!
A simple change to the auth rules to help prevent an edge case where one is able to invite a user, but not disinvite them as the latter requires a separate permission. The MSC attempts to solve this by always allowing the cancellation of invitations you've sent.
A small MSC, but one with some open threads still. Perhaps a good opportunity to go in and clean it up!
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Hello everyone. This week the team cut a release candidate for Synapse v1.59, which includes:
- New module API support for editing push rules.
- Experimental support for MSC3266, federated room summary and MSC3786.
- Updates to support for MSC2285, hidden read receipts.
- Many bug fixes and internal improvements!
Meanwhile, the core team has looking at caches and memory usage: Erik has been looking at ways to reduce the memory usage of small servers, Shay's been adding some exciting new config options to limit the total memory usage of Synapse and David's added the ability to reload the cache factors of a running Synapse instance via SIGHUP.
In parallel, Olivier's been doing groundwork to reduce replication traffic for workerised Synapse deployments, Andrew (anoa) has been looking at media retention policies and work continues on faster room joins.
Second generation Matrix homeserver
We've also released our new living documentation, which is available at https://matrix-org.github.io/dendrite/, which features new installation instructions and documents that will be helpful to Dendrite server administrators. We will be writing more documentation and expanding this over time.
- The built-in NATS Server has been updated to version 2.8.2
- Monolith deployments will no longer panic at startup if given a config file that does not include the
- State resolution v2 now correctly identifies other events related to power events, which should fix some event auth issues
- The latest events updater will no longer implicitly trust the new forward extremities when calculating the current room state, which may help to avoid some state resets
- The one-time key count is now correctly returned in
/synceven if the request otherwise timed out, which should reduce the chance that unnecessary one-time keys will be uploaded by clients
create-accounttool should now work properly when the database is configured using the global connection pool
- Fixes a regression introduced in the previous version where appservices, push and phone-home statistics would not work over plain HTTP
- Adds missing indexes to the sync API output events table, which should significantly improve
/syncperformance and reduce database CPU usage
- Building Dendrite with the
bimgthumbnailer should now work again (contributed by database64128)
As always, feel free to join us in #dendrite:matrix.org for more Dendrite-related discussion.
Dept of Bridges 🌉
A Matrix-KakaoTalk puppeting bridge.
Most of this week's fixes are in the
testingbranch, so try it out!
- Ability to DM your own KakaoTalk puppet
- Fix to the problem of needing to DM a puppet twice to start chatting with them
- Fixes to leaving KakaoTalk chats from Matrix (via the
!kt leavebot command)
- Nicer output of the
whoamicommand, to make it easier to click on your own KakaoTalk puppet to DM it
- Proper support for setting an Open Chat title & topic from Matrix
- Support for joining KakaoTalk rooms from Matrix, either by joining an existing portal or providing an Open Chat URL to the bot with a
Dept of Clients 📱
Matrix client for Emacs
Ement.el, a Matrix client for [GNU Emacs](https://www.gnu.org/software/emacs], received some more updates this week:
- New Transient-based command menu for room buffers, bound to
- New command
ement-list-members, which lists all members in a room.
- Member completion now completes from all members in a room (rather than only those whose messages have been seen).
- Power-level events are displayed.
- Grouped membership events have tooltips showing each member's individual event.
- When usernames are colorized, message bodies may optionally be colorized in a less intense shade of the same color, so they are easily distinguished yet easy on the eyes (and, of course, the shading is customizable).
- When displaying usernames in the margin, names that are wider than the margin are abbreviated, with the full name in the tooltip.
- Typing notifications (recently broken--oops!).
- Sending direct messages marks new direct rooms as direct rooms.
- Event notifications for rooms not displayed in a buffer.
As always, feel free to join us in #ement.el:matrix.org.
Everything related to Element but not strictly bound to a client
Hello and welcome to another Element TWIM!
- We’re still hard at work improving the Threads Beta experience for y’all. Starting with Notifications and UI polish.
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
- We’ve improved how messages are deleted, along with other defects. Some of our favourite improvements include:
- The team is actively moving tests to Cypress; You can find the latest test runs here
In labs (you can enable labs features in settings on develop.element.io or on Nightly):
- Video Rooms! Turn them on and try them out, we’re continuing to squash bugs
- We added a “copy link” option to the context menu
- Removed some of the older features from labs
- Improved ordering in the new search dialog
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- The newest version of the app (1.8.14) was released on Monday! In this release we’ve made a bunch of improvements and bug fixes, check it out here
- 💊 We also merged an initial version of mention pills and are working on ironing out edge cases. Exciting!
- There’s good progress on the new authentication flows and live location sharing, both of which we’re looking forward to sharing and testing with you soon.
- On the ElementX front we're nearly done with the DevX setup and are working towards using the latest Rust SDK
- unit and UI test runs on the CI and Codecov.io coverage reports
- swiftlint, danger-swift and sonarcloud.io checks for code quality
- automatic generation of PR builds, published on diawi
- scripts for importing and reusing localizable strings from Android
- towncrier changelogs and more
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- We’ve been working on smashing bugs, improving stability, and reducing crashes.
- Our first time user flow is progressing - we’re starting to test the new authentication flow internally and will be asking for help testing this soon.
Cinny is a Matrix client focused on simplicity, elegance and security
Cinny v2.0.0: Session verification and other e2ee features
- Redesign app/user settings
- Add support to manage cross-signing and key backup
- Add support to manage sessions
- Add Session verification by emojis
- Add recently used section to emoji board
- Add LaTeX / math input and rendering support
- Add notification sounds
- Add sound on incoming invites
- Sort DM's by activity
- Sort search results by activity
- Improve jump to unread button
- Replace confirm and prompt with custom dialogs
- Adapt to different device widths
- Native application using Tauri
- Fix loading on older browsers
- Fix crash on load and room creation on dendrite
- Fix can't open spaces from public room list
- Fix max power level in room permissions
- Fix incorrect custom html crashing app
- Fix crash on unable to getContent of tombstoned room
- Don't enable e2ee for bridged platform
See release at: https://github.com/ajbura/cinny/releases/tag/v2.0.0
Cinny for desktop
Since this release, we are also shipping a desktop app of Cinny for Windows, MacOS and Linux. You can download the app for your platform from https://github.com/cinnyapp/cinny-desktop/releases
Find more about Cinny at https://cinny.in/ Join our channel at: #cinny:matrix.org Github: https://github.com/ajbura/cinny Twitter: https://twitter.com/@cinnyapp
Dept of SDKs and Frameworks 🧰
Matrix Client-Server SDK for Rust
The Rust Matrix team is very excited to announce the next major release Matrix SDK 0.5 "stores and native crypto", now available for everyone by adding
matrix-sdk = "0.5.0"to their dependencies in their
Cargo.toml. This first major release in about 8 months brings significant changes many have been waiting for:
- Better, safer, native-er crypto: matrix-sdk 0.5 ditches libolm in favor of Vodozemac, the completely fresh rust-native re-implementation of the crypto crate. It has also been audited, the report of which is scheduled to be released soon.
- Store revamp: the entire cache storage infrastructure for crypto and state has been restructured to allow for full plug-ability, with even the two default supported backends, sled and indexeddb both being separate crates now. And as a matter of fact, a community-driven sql implementation has already been published as beta (with postgres and sqlite support) by charlotte 🦝.
- WebAssembly; both of these changes also allow us to finally make WASM a Tier 1 supported target for the SDK. Not only does it build and even use the browser native indexeddb for permanent storage, we also have CI tests ensuring nothing will break this support going forward.
- Features, Features and Process: there's plenty more features and bug fixes in this release, e.g. native thumbnail generation support, as well as changes on our processes going forward.
For more details, check out the Release Notes.
Sidenote: If you want to contribute, or just learn Rust by actually doing it, we recommend taking a look team at the
help wantedissues in our repo.
Dept of Ops 🛠
Web forms (HTTP POST) to matrix
Buscarron v1.1.0 is here
Buscarron is the new backoffice of the etke.cc and its main feature is to receive web forms (HTML/HTTP POST) and convert them into (encrypted) matrix messages.
So, what's new?
- Email confirmation after form submissions with Postmark
- Templates support for redirect URLs
- Automatically ban spammers, scanners and bots
Dept of Bots 🤖
Who's In This Room Matrix Bot
Jake C says
If you use Matrix with the Signal bridge (or any bridge) with relay mode enabled, your guests have probably experienced the confusion where they don't know who else (on Matrix) is in the chat as only Matrix can double-puppet.
When this bot is added to a Matrix room, it will announce:
- Who the room members are when a new Signal user joins;
- When a Matrix user joins or leaves, who that Matrix user was.
I built it just this afternoon using the excellent
matrix-bot-sdk, but it's in Typescript and has plentyful unit tests!
I don't currently have a public bot, but if anyone is interested please join #whos-in-this-room-bot-discussion:jakecopp.chat and say hello!
PRs for adding support for other chat apps (basically identifying which bridge from the puppeted username) are very welcome! https://github.com/jakecoppinger/whos-in-this-room-matrix-bot
Dept of Events and Talks 🗣️
J. Ryan Stinnett says
The videos from the HYTRADBOI conference a few weeks back are now publicly available, in case anyone was curious but couldn't make the conference. I gave a talk about building collaborative, open software on Matrix. The whole conference was great, so I recommend browsing the schedule for videos that may interest you. 😄
Dept of Interesting Projects 🛰️
Loomio, an open source collaborative decision making tool, now supports integrating with Matrix rooms using their chatbot. They previously supported other (lesser) chat systems, but have recently added support for Matrix.
Dept of Ping 🏓
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!