Matrix Live 🎙
This week my guest is Adam who created the minimalistic Android client your family wants… by accident. And Adam has more ideas for the future.
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://matrix.org/docs/spec/proposals.
- No MSCs were merged this week.
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 mostly been working on our existing projects. Unfortunately this means little to report this week, but if there's something that needs out attention then please mention it in #sct-office:matrix.org 🙂
Dept of P2P 👥
Peer-to-peer overlay routing for the Matrix ecosystem
Things have been relatively quiet on the P2P front recently as we have been working on fixing bugs in Dendrite, but we will be releasing build 94 of the P2P demos for iOS and for Android soon, which feature new fair queuing in Pinecone. This should help to reduce congestion from single nodes. It also includes all of the latest Dendrite updates.
- Android: https://drive.google.com/drive/folders/1uK_BcHGiAYHkN6OAA7P73obAquwShRg5
- iOS: https://testflight.apple.com/join/Tgh2MEk6
The demos are still very rough around the edges — join us in #p2p:matrix.org for discussion!
Dept of Servers 🏢
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Hello everyone. It's been a quieter week for the Synapse team---many of us are away this week.
We released Synapse 1.55.0rc1 yesterday, a little later than usual. A full release is still planned for the coming Tuesday (22nd March). Please note that this release breaks compatibility with Mjolnir 1.3.1 and earlier. Administrators using Mjolnir should ensure it is upgraded before upgrading Synapse to 1.55.0rc1.
Otherwise, the release candidate includes:
- New tools in the module API enabling modules to prevent administrators from deleting rooms and deactivating users. Half-Shot explains the movtivation here.
- Experimental support for using Twisted's asyncio reactor. If this is feasible, it might allow us to leverage tools and libraries for Python's growing asyncio ecosystem.
- A performance fix for logging in on large accounts.
- A variety of other bugfixes and internal tweaks.
Please feel free to try it out and let us know how you get on: either in the #synapse:matrix.org or on GitHub if you encounter any unexplained problems. As ever, many thanks to all contributors involved.
Behind the scenes we've been working on a few longer-term projects:
- Continued support for threading (MSC3440) and the mechanism which supports it, relations (MSC2674).
- Managing Synapse's dependencies using poetry to formally lock requirements across all our debian and docker releases.
- Performance investigations: we're looking at getting better profiling information; and seeing if we can reclaim CPU cycles by cancelling processing when a requester terminates their request early.
Hopefully we'll see these plans come to fruition over the coming weeks.
Dept of Bridges 🌉
A Matrix-KakaoTalk puppeting bridge.
This week brings some bugfixes to DMs, and general improvements to the way channels are synced on startup.
I've also written some setup instructions to assist anyone wanting to try this bridge out for themselves!
As for bugs, I just stumbled upon a big one just now: if a KakaoTalk channel hasn't had activity for a few days, sending a message in its Matrix portal may crash. This happens because of the KakaoTalk API's apparent eagerness in forgetting about inactive channels (IIRC content that's a few weeks old is deleted from their servers, for privacy reasons), and the likely fix is for the bridge to use the right API calls to trigger those channels back into an active state before trying to interact with them.
Once that's fixed, the next thing I'll get out of the way (for the sake of completeness) is the web-based login interface, which all of the other mautrix-python bridges support (and is quite nice for privacy-conscious users that would rather send their KakaoTalk passwords directly to the bridge, instead of through a Matrix homeserver).
After that, I'll work on contact searching & inviting contacts to group chats or DMs.
Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues
Dept of Clients 📱
Desktop client for Matrix using Qt and C++17.
After our release last week, of course all the bugreports came out of the woodworks. As such we fixed issues with device ids being set incorrectly after SSO, screensharing, overlapping in the reply popup and UIA flows without fallback support like https://github.com/devture/matrix-synapse-shared-secret-auth showing up as UIA stages. Key backup is also now enabled by default (if it has the correct signatures and everything), various layouting fixes and more.
We'll probably make a bugfix release in the next few days.
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
I have been working on integrating MSC3575: Sliding Sync into Element-Web. This is a pretty large endeavour but there has been a lot of progress on it already!
There now exists a JS-SDK PR to add the core bits of Sliding Sync (along with E2EE/to-device extensions), and a React-SDK branch which adds the Labs flag,
config.jsonsection for the proxy URL, and sets up room subscriptions when you select a room. The net result?
This is still early days: you cannot scroll the room list yet and there's still many outstanding issues to fix before it can land on mainline, but it's at the stage where it's almost ready for people to try out. Watch this space...
Continuing with the removal of the skinning layer, instead recommending module replacement - please talk to us in #element-dev:matrix.org if this is a surprise.
Continued removal of Groups/Communities - we’re expecting it to land this week (for release on about April 11th).
Continuing development of live location sharing.
We’ve reduced tsc errors by 70% in react-sdk unit tests!
In labs (you can enable labs in settings on develop.element.io or on Nightly)
- We're working on a prototype for voice rooms, which are persistent voice chats similar to Discord's voice channel feature. Expect this to receive more attention and polish over the coming weeks
- Threads are now using the stable prefix m.thread and are currently undergoing acceptance testing. We’re hoping to launch it out of labs in the next few weeks.
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- The release on the App Store is still blocked on the review. We continue to work hard to solve this issue.
- The threads feature received a lot of polish and bug fixes. We are not far from making them out of the LABS setting.
- The timeline got several bug fixes.
- We fixed memory leaks in the share extension.
- The name and avatar customization after account creation is almost done.
- We’re currently at the last mile of testing for space creation & space management on iOS. Thanks to everyone who helped with community testing last week!
- We’re currently on track to merge and ship these changes at the end of this month.
- Once released, Element on all platforms will have parity across the core spaces feature set!
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
1.4.4 has dropped across all channels, we've had some promising early feedback that the storage/RAM usage is starting to decrease, as always thanks for the reports and keep them coming! Full release notes available in the usual place
Threads are levelling up and becoming driven by MSC3440, increasing their reliability and cross device consistency. If you're already using threads we'll automatically migrate them for you in the next release 1.4.6
Live location sharing work has started! Soon you'll be able to share and receive location updates in real time
Cinny is a Matrix client focused on simplicity, elegance and security
v1.8.1 & v1.8.2
- Fix new messages don't appear
- Fix pressing a key with an active highlight jumps in history
- Fix not all emoji-only messages being detected as Jumbo-emoji
- Fix muted room show unread indicator
- Fix view source shows original event for an edited message
- Fix wrong notification count and
⌘ CMD + khotkey not working MacOS
- Fix sending message not mark room as read
Dept of Non Chat Clients 🎛️
A browser-based open metaverse client
Robert Long says
Our metaverse-on-matrix project is progressing quickly!
- Robert and Nate have been working on updating the Third Room demo to use the latest bitECS and threecs work as well as moving rendering and game update loops off the main thread!
- Bruno has been porting Native Group VoIP to Hydrogen SDK which Third Room will use for both spatial voice chat and DataChannels
- Ajay has a working scaffold of the early UI concepts paired with Hydrogen SDK to incorporate the room list and chat views.
More design work is happening as well, here's our latest from Rian
Matrix Wrench (website)
Matrix Wrench is a web client to tweak Matrix rooms.
v0.6.0 & v0.6.1
Want to purge a space recursively? Matrix Wrench now has a button for that. It will try to fetch a list of all sub spaces and rooms and offer you to delete them via the Synapse Admin API.
Also, you can now knock on rooms and the room lists allow to navigate to a room page by clicking on a room ID.
Next up will likely be searchable lists for rooms and users as well as other usability and layout improvements. The goal is to have a nice-looking, stable v1.0 release for its anniversary on 13th June. I'm looking for help with design and documentation.
Dept of SDKs and Frameworks 🧰
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Jonas Platte says
Nothing user-facing changed last week, but this week:
- @timokoesters fixed some bugs in the state resolution code around knocking (room version 7) and restricted rooms (room version 8 / 9)
- @zecakeh added loads of primary extensible event types:
- @ShadowJonathan added support for the server-version endpoints for the server-server API (MSC3723) and the identity-service API (MSC2320)
- [@zecekeh] added support for threads and translatable text messages
- I (@jplatte) moved the
prev_contentstate event field into
unsignedas per Matrix v1.2
- @zecakeh cleaned up the module structure for discovery-related endpoints
Matrix Client-Server SDK for Rust
Jonas Platte reports
In the last few weeks,
- @gnunicorn created separate crates for the different storage backends
- @zecakeh made it easier to initialize those storage backends
- I (@jplatte) created a ClientBuilder to simplify client initialization
- @zecakeh moved some functionality into a new
Encryptiontype to improve the API structure
- I updated the SDK to make use of Ruma's support for the
v3endpoint paths on servers that support it
- I improved the quality of the SDKs logs as part of some profiling experiments
Additionally, these things have been in progress for a while and deserve a mention as well even though they're not finished yet:
- @gnunicorn is working on sliding sync (MSC3575)
- @poljar is working on integrating vodozemac, a libolm reimplementation in Rust
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!