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/unstable/proposals.
Matrix v1.1 was released! Read the blog post here if you missed it; it summarises everything that’s new in v1.1, as well as plans for the future. Now that the new spec build pipeline and release infrastructure is in place, we’re aiming for roughly quarterly releases going forward. Thank you all for being so patient in the meantime!
Extensible events is something that has been a long time coming in Matrix. It unlocks so much potential, and is even currently being built on (see MSC3381 (polls)). Definitely one of the next big ticket items to tackle in the medium term.
Dan (aka callahad) is away this week, so let me report on his behalf.
We cut a release candidate for Synapse (1.47.0rc2, but see the changelog for rc1). It exposes new functionality for pluggable modules and new endpoints to the Admin API. We’ve fixed a bunch of long-standing bugs and continued to drive forward efforts to improve documentation and code quality. Thank you to all of our contributors!
With future releases in mind, we’ve been continuing work to support threading and E2EE application services. We’ve also been prototyping a new Admin API to remove users from all rooms belonging to a certain space.
Elsewhere, we’ve been doubling down on our effort to improve reliability and maintainability of our services as a whole. Sydent and Sygnal have a number of PRs in flight for both, aimed at improving type coverage and driving down error noise in the logs. We’ve drafted a blog post to summarise the process of type annotating mypy (keep your eyes out for that one). We also worked to make the matrix.org database more resilient, and made changes to improve the experience of rolling out upgrades to Synapse en masse.
Vermicularis is a script for forwarding messages from Päikky to Matrix. Päikky is a parent-teacher communication website and mobile app for daycare and pre-school. git clone https://k2c42.dy.fi/git/vermicularis.git and join #paikky:ellipsis.fi to give feedback
Päikky was created by a group of parents who wanted to make communication with daycare staff easier. They started a company and later sold it to Abilita. Päikky is currently used in 40+ municipalities in Finland and also in some private daycare companies too.
Päikky is also used for reserving daycare times for kids.
Sensitive flag for MSG and NICKSERV to hide it from network room (for AUTOCMD)
Improved STATUS for admin room and simple STATUS for network rooms
Small fixes
Not much going on this week. Hopefully the reconnect refactor doesn’t cause any breakage as it fixed multiple issues that have been around since the inception of Heisenbridge.
I guess not. For that reason bug fixing in Nheko for the next release continues. We fixed a super annoying issue, where loading keys from the online backup could make Nheko stuck in a flickering mode with no way to interact with it anymore. You can now also click anywhere on a read receipt to open someones profile instead of just their avaitar, edited messages now also show as redacted, if only the original message got redacted and don’t lose the reply in encrypted rooms, if the edit was sent by a client, that is not Nheko. You also used to get logged out after registration, which should finally be resolved. There were also a bazillion translation updates! Thank you, everyone who contributed to those.
We also finally merged the prettier video player, which also fixes a video playback issue on macOS. Try it out and give us feedback on it!
Message threading is coming to Element! If you haven’t yet, head to develop.element.io and ensure ‘Enable threading’ is turned on in Labs to test on the web.
We’re spinning up development on iOS & Android as we speak.
We’ll also be running the first Threads community testing session next Thursday (18th Nov) at 17:00 GMT. Come join us in #element-community-testing:matrix.org!
As well as the community testing on Threads, we’ll also be hosting our next testing session for Android on Wednesday (17th), with the time to be confirmed. If you’d like to be involved, join us in #element-community-testing:matrix.org.
Element Web
In the background, if you’ve been paying close attention to our issue tracker, you might have noticed lots of changes to our triage & issue workflows over the past couple of months. We’re continuing to iterate on these, extending the best learnings to iOS & Android too.
We recently started a project to improve the info architecture/layout of our apps, starting on the web first. We’re merging our first tweaks and experiments soon, so expect exciting things to be landing on develop!
We’re continuing to implement more Space creation & management support on iOS. We’ve added in Space creation screens (implemented in SwiftUI!) and we’re polishing inviting people to Spaces.
We’ve also been conducting user research to see what parts of the app are tripping users up, and working on fixes to various issues. Expect tweaks to land soon!
Otherwise, we’re also merging & testing release candidates for upcoming releases, merging several branches.
Element Android
We’ve been conducting the same user research on Android, watch this space for more tweaks & improvements coming soon!
Otherwise, we’re also fixing up some smaller issues specific to Android 12.
A time-like command that will send end of an arbitrary command output and some other info (like exit status) to matrix room. Useful when you need to run something in terminal and get a ping when it’s done.
Since the last ttm news in TWIM new options were added:
matrix auth with access token - useful for SSO when you don’t have actual login/password pair
skip time info
skip html formatting (doubles allowed log size in message)
post full log output to matrix (with auto-shrinker to avoid “message is too big” error)
Version 2.2.0 adds support for authentication via access_tokens.
In addition to username/access_token, it is possible to authenticate using username/password and login(SSO) token.
Example usage is shown below:
"""
Example Usage:
random_user
!echo something
echo_bot
something
"""
import simplematrixbotlib as botlib
creds = botlib.Creds(
homeserver="https://example.org",
username="echo_bot",
access_token="syt_c2...DTJ",
)
bot = botlib.Bot(creds)
PREFIX = '!'
@bot.listener.on_message_event
asyncdefecho(room, message):
match = botlib.MessageMatch(room, message, bot, PREFIX)
if match.is_not_from_this_bot() and match.prefix() and match.command(
Hello again! Halcyon is a Matrix bot library created with the intention of being easy to install and use.
This release brings minor non-breaking features and some bug fixes:
Added
change_presence() now allows you to set if you are online, idle, or away. Status message support
Roadmap and documentation updates
Fixed
A fix for retrying on 5xx errors
A better catch for bad server syncs
Windows support, fixing the NotImplementedError reported by @bhuitt (Thanks!)
Heads up for those in Berlin. You’re welcome to join us Tuesday, 16th Nov at 7:00 PM chatting about Matrix development and hosting. We’re going to meet in person at c-base. In compliance with the hackerspace’s house rules this is a strict 2G event.
We’ll talk about everyone’s Matrix projects, test the P2P demo via Bluetooth in person and plan the presence of Matrix at the rC3 event happening in the c-base shortly before New Years.
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
jae.su
284
2
sspaeth.de
296
3
devnullsystem.org
370.5
4
grin.hu
482
5
dendrite.neilalexander.dev
974.5
6
matrix.awesomesheep48.me
1255.5
7
dendrite.s3cr3t.me
1500
8
dendrite.matrix.org
8288
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.