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.
MSC Status
New MSCs:
MSCs with Proposed Final Comment Period:
- No MSCs had final comment period proposed this week.
MSCs in Final Comment Period:
Merged MSCs:
- No MSCs were closed this week.
Closed MSCs:
Spec Updates
The Spec Core Team has decided to not include MSC3440 (threading via
m.thread
relations) 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
/versions
should stop doing that. Look fororg.matrix.msc3440.stable
as an "unstable" feature flag instead.- Servers which offer MSC3440's behaviour should expose it on stable endpoints and expose
org.matrix.msc3440.stable
for 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 (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
squah says
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.
Dendrite (website)
Second generation Matrix homeserver
neilalexander reports
This week we've actually made two releases โ Dendrite 0.8.4 and Dendrite 0.8.5 โ which are both primarily targeting performance and bug fixes.
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.
Changes include:
- 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
internal_api
andexternal_api
options- 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
/sync
even if the request otherwise timed out, which should reduce the chance that unnecessary one-time keys will be uploaded by clients- The
create-account
tool 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
/sync
performance and reduce database CPU usage- Building Dendrite with the
bimg
thumbnailer 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 ๐
matrix-appservice-kakaotalk (website)
A Matrix-KakaoTalk puppeting bridge.
Fair reports
Most of this week's fixes are in the
testing
branch, 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 leave
bot command)- Nicer output of the
whoami
command, to make it easier to click on your own KakaoTalk puppet to DM itComing soon:
- 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
join
command
- Discussion: #matrix-appservice-kakaotalk:miscworks.net
- Testing room: #kakaotalk-bridge-testing:miscworks.net / https://open.kakao.com/o/gjGQFuae
- Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues
Dept of Clients ๐ฑ
Ement.el (website)
Matrix client for Emacs
alphapapa announces
Ement.el, a Matrix client for [GNU Emacs](https://www.gnu.org/software/emacs], received some more updates this week:
Additions
- 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).
Changes
- When displaying usernames in the margin, names that are wider than the margin are abbreviated, with the full name in the tooltip.
Fixes
- 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.
Element (website)
Everything related to Element but not strictly bound to a client
Danielle announces
Hello and welcome to another Element TWIM!
Threads
- Weโre still hard at work improving the Threads Beta experience for yโall. Starting with Notifications and UI polish.
- Weโve fixed some visual bugs on all of our platforms this week
- Weโre continuing work on MSCs for improvements to read receipts, push rules, and thread notifications in general.
Community testing
Next week, we are planning to test:
- Video rooms
- And the new release candidate
We have a new consent form for testers to fill in! For more info on our next testing sessions (sync or async), you can join us at #element-community-testing:matrix.org!
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Danielle reports
- Weโve improved how messages are deleted, along with other defects. Some of our favourite improvements include:
- Fixed room history visibility when you have keys to decrypt messages
- Improvements to viewing long room topics
- A number of UI tweaks and polishes including improved layout to the settings
- Fix the way pills look
- 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!
ศtefan says
- 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!
Danielle reports
- 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 (website)
Cinny is a Matrix client focused on simplicity, elegance and security
ajbura says
Cinny v2.0.0: Session verification and other e2ee features
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
Bugs
- 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-rust-sdk (website)
Matrix Client-Server SDK for Rust
ben reports
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 theirCargo.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 wanted
issues in our repo.
Dept of Ops ๐
Buscarron (website)
Web forms (HTTP POST) to matrix
Aine announces
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
Check out the source code and say hi in #buscarron:etke.cc
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 ๐ฐ๏ธ
uhoreg reports
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 ๐
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.
#ping:maunium.net
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Rank | Hostname | Median MS |
---|---|---|
1 | envs.net | 451 |
2 | loang.net | 576 |
3 | jameskitt616.one | 842.5 |
4 | aria-net.org | 857 |
5 | jeroenhd.nl | 892 |
6 | mindlesstux.com | 983 |
7 | shortestpath.dev | 1014 |
8 | quyo.de | 1345 |
9 | matrix.nicfab.it | 1571 |
10 | halogen.city | 1599 |
#ping-no-synapse:maunium.net
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 | jameskitt616.one | 171 |
2 | loang.net | 307 |
3 | foxo.me | 540 |
4 | cry.is | 763 |
5 | kszczot.pl | 777.5 |
6 | dendrite.matrix.org | 844.5 |
7 | beckmeyer.us | 851.5 |
8 | dendrite.neilalexander.dev | 1225.5 |
9 | schuwi.science | 1620 |
10 | sspaeth.de | 1978 |
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