17 KiB
+++ title = "This Week in Matrix 2022-05-27" path = "/blog/2022/05/27/this-week-in-matrix-2022-05-27"
[taxonomies] author = ["Brendan Abolivier"] category = ["This Week in Matrix"] +++
Hey everyone! Thib is out today, so I'll be exceptionally hosting TWIM in his stead this week. Let's have a look at what's been going on in Matrix-land!
Open Tech Will Save Us #16 🎙
{{ youtube_player(video_id="H5atH-tbeRo") }}
The 16th edition of our virtual meetup Open Tech Will Save Us happened this week! This edition featured a few very interesting projects:
- Quentin and Maximilien from Deuxfleurs are creating Garage, a robust and distributed storage backend that can run on old computers. Who can use it? Why? And when should I not use it? Let's find out!
- Nathan from the Guardian Project is working with wind, butter, and rasperries to provide applications and messaging to people in low-connectivity areas. A fascinating dive off the grid.
Dept of Status of Matrix 🌡️
andybalaam says
Matrix's Outreachy intern for this summer has been chosen! Usman is starting in early June, and will be working on experiments with Starring Messages! He will be blogging every two weeks, so look out for more updates.
Dept of Spec 📜
Andrew Morgan (anoa) reports
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:
- MSC3825: Obvious relation fallback location
- MSC3824: Login/register indication on SSO redirect
- MSC3823: A code for account suspension
MSCs in Final Comment Period:
- MSC3604: Room Version 10 (merge)
Merged MSCs:
- No MSCs were merged this week.
Spec Updates
The upcoming release of Matrix v1.3 is still in the works, but near! Expect a solid release date to be announced next week.
Random MSC of the Week
The random MSC of the week is... MSC2872: Move the widget title to the top level of the definition!
A bite-size MSC which aims to clean up the definition of a widget state event... by moving the "title" field to the root of the state event, alongside the existing "name" field.
This MSC needs someone to write an implementation in at least one homeserver and client to move forwards. Perhaps that someone could be you?
Dept of Servers 🏢
Synapse (website)
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
squah reports
This week we cut two release candidates for Synapse v1.60, which include:
- New config options to limit the total memory usage of Synapse.
- The ability to reload cache factors of a running Synapse instance using SIGHUP.
- A new module callback to handle federation spam.
- Experimental support for MSC3787: Allowing knocks to restricted rooms and MSC3818: Copy room type on upgrade.
- Many bug fixes and internal improvements!
Meanwhile work continues on fast room joins and testing Synapse with workers on Complement. We'd like to remind readers that the fast room joins feature is highly experimental right now and we do not recommend enabling it on production homeservers just yet.
Synapse admin scripts (website)
Pierre announces
Morning, maybe it's useful for someone else, I just published my admin scripts for synapse. It's still WiP but it make some basic stuff that I needed in my organisation :
- System notify users (all users/users from a list, specific user)
- delete sessions/devices not seen for X days
- purge the remote media cache
- select rooms with various criteria (external/local/empty/created by/encrypted/cleartext)
- purge history of theses rooms
- shutdown rooms
https://git.fout.re/pi/matrixadminhelpers
It's my first python project, so the code may not structured as it should, I'm still learning, and it's early alpha :)
Dendrite (website)
Second generation Matrix homeserver
neilalexander says
This week we released Dendrite 0.8.6 which contains a number of fixes and tweaks:
- Room versions 8 and 9 are now marked as stable
- Dendrite can now assist remote users to join restricted rooms via
/make_join
and/send_join
- The sync API no longer returns immediately on
/sync
requests unnecessarily if it can be avoided- A race condition has been fixed in the sync API when updating presence via
/sync
- A race condition has been fixed sending E2EE keys to remote servers over federation when joining rooms
- The
trusted_private_chat
preset should now grant power level 100 to all participant users, which should improve the user experience of direct messages- Invited users are now authed correctly in restricted rooms
- The
join_authorised_by_users_server
key is now correctly stripped in restricted rooms when updating the membership event- Appservices should now receive invite events correctly
- Device list updates should no longer contain optional fields with
null
values- The
/deactivate
endpoint has been fixed to no longer confuse Element with incorrect completed flowsAs always, please feel free to join us in the #dendrite:matrix.org room for more discussion!
Dept of Clients 📱
Nheko (website)
Desktop client for Matrix using Qt and C++17.
Nico announces
We added a way to edit permissions in Nheko now. It is an unconventional drag and drop dialog, where you drag users and permissions between different roles. We are hoping that this will make powerlevels easier to understand. Be careful when trying it, the wrong powerlevels might make your room unusable. Now... the bad part about that is, that powerlevels add around 50-100 new strings to translate... Help is appreciated! <3
Nheko now also supports fallback keys, which should make E2EE more reliable after long periods of being offline and you can send images by pressing enter again. The privacy screen is also now fixed for separate room windows and our flatpak supports more image formats.
Element Web/Desktop (website)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Danielle announces
- On Element Web this week we’ve smashed some bugs including those around Threads.
- Threads work continues as we’re aiming to improve the notifications and read receipts to improve the experience.
- Continuing to make improvements to our automated tests.
- The team is driving to complete the work needed to move our new search experience out of Beta. We think this new search is easier to use and helps folks to find what they’re looking for faster.
- We’re also making improvements specifically for new users, this will include a new home screen, watch out for those!
In labs (you can enable labs features in settings on develop.element.io or on Nightly):
- Video rooms; We’re ironing out some of the details to polish the experience
Element iOS (website)
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
Ștefan reports
- This week we’ve fixed a crash, and a few bugs; specifically the bug where some rooms were missing from the room list.
- On the iOS team generally we’re working towards a Sentry.io integration for better crash reporting to help us with this in the future.
- Live location sharing and other features are making great progress.
- Our new first time user experience will be ready for feedback soon!
- ElementX has been refactored to adopt Swift’s new structured concurrency.
Element Android (website)
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
adam says
- This week we added emoji14 support so if you want to hide 🫣 , salute 🫡 , or melt 🫠 for your friends, you’ll soon be able to! 🫶 (for Android 12 and above, or devices that support emoji14)
- We’re getting ever nearer to a new sign up flow for new users. Our flow today can be confusing and complex, especially when all you want to do is chat with friends. We’ve been working on simplifying the flow and we’ll announce a community testing session very soon!
- Also new this week, we’ve opened up a new layout of the app to a small selection of folks. These 15 people will trial the new layout for us, providing feedback along the way. We’ll be opening it up to more feedback soon.
Element (website)
Everything related to Element but not strictly bound to a client
Danielle reports
Hello and happy Friday!
Threads
- Threads are still in progress as we continue to make progress on the notifications and sort/ordering work that remains.
- In order for notifications to work better, we need read receipts to be updated. We’ve got several MSCs ongoing, along with a few Proof of Concepts (PoCs) to move us forward.
- MSC3771: Read receipts for threads
- MSC3772: Push rule for mutually related events
- MSC3773: Notifications for threads
- With that we’ve also updated some layouts and completed some bug fixes, on all platforms.
Community testing
- Keep your eyes peeled on #element-community-testing:matrix.org for more info on our next testing sessions.
Dept of SDKs and Frameworks 🧰
Trixnity (website)
Multiplatform Kotlin SDK for Matrix
Benedict says
Trixnity 2.1.0 has been released. It includes support for Server-Server-API endpoints (client and server) and fetching missing
TimelineEvents
in client. The latter is used for fragmented timelines: If you want to show a timeline starting from anyEventId
andRoomId
(e. g. from unread marker), Trixnity will try to fetch missingTimelineEvent
s from server. If you reachTimelineEvent
s, that are already saved in the local database, the timeline fragments are merged magically 🧙
Ruma (website)
A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.
Kévin Commaille announces
Since our last update from about a month ago, we had two bugfix releases:
- Ruma 0.6.2 added methods to get the current room powerlevels from a
StrippedPowerLevelsEvent
and to get a user's membership whether the state event is redacted or not, and added a missing export to track member changes.- Ruma 0.6.3 fixed the serialization and deserialization of events with a dynamic
event_type
and added convenience constructors for logging in with aUserIdentifier
.We have also landed a bunch of internal work:
- Improvement in our macros, notably to support unstable prefixes for event types.
- Some cleanup like removing some dead code, removing unnecessary
PartialEq
implementations, and fixing missing feature flags.- The minimum supported rust version is now 1.59 and we use the Rust 2021 Edition.
- We started to refactor our tests to have more helpful failure messages.
And there are of course new fixes and features for our next release:
- Make sure that push rules don't apply to the user's own events
- Add support for MSC3700: Ignore
content.sender_key
- Implement MSC3381: Polls
matrix-rust-sdk (website)
Matrix Client-Server SDK for Rust
ben reports
The majority of changes we've seen over the last week, where minor fixes in style, squashing of bugs and CI improvements as most work is currently happening in the background on Sliding Sync, mobile and UniFFI support. But there have been two additions worth mentioning: first, we've improved on the autojoin example for appservices, and secondly we've merged a community contribution to make resolving of room-alias more handy.
👉️ Wanna hack on matrix rust? Go check out our
help wanted
tagged issues and join our matrix channel at #matrix-rust-sdk:matrix.org.
Matrix Dart SDK (website)
Matrix SDK written in pure Dart.
Henri Carnot announces
This week, the team released version 0.9.7.
This week, we migrated to Matrix Api Lite 1.0.0, our simple wrapper around the matrix API endpoints and data models. This means we are now using the v1.2 Matrix spec 🎉.
Also, support for HiveCollections as Database provider was added now that our patches to hive were accepted upstream. And we now provide a way to dump and restore the client local database.
Finally, we fixed a bug with where reactions were not properly discarded from the cache and some bugs in our e2e tests.
See you next time ;)
Dept of Events and Talks 🗣️
saces reports
Matrix User Meetup Berlin
Next Matrix user meetup 1.6.2022, 8 pm @ c-base
Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
Also when the bbq is lit you may wish you brougth your favorite item :)
Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).
Matrix room: #mumb:c-base.org
Dept of Rockets 🚀
uhoreg shared with us a press release from Rocket.Chat announcing their work on interoperability with Matrix. It is super exciting to see another big player join the ecosystem. Watch this space next week for more announcements!
Dept of Ping 🏓
Thib is out this week, therefore so are the ping stats in TWIM (don't worry, they'll be back next week!).
You can still go check them out yourself in #ping:maunium.net and #ping-no-synapse:maunium.net!
That's all I know 🏁
See you next week, and be sure to stop by #twim:matrix.org with your updates!