uhoreg announces
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/proposals.
MSC Status
New MSCs:
- MSC4020: Room model configuration
- MSC4019: Encrypted event relationships
- MSC4018: Reliable call membership
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
Spec Updates
We released version 1.7 of the Matrix Spec on Thursday. This release features media repository improvements and reactions. Thank you to all who contributed to this release, whether through writing or reviewing MSCs, writing spec PRs, or finding spec bugs. And congratulations to those who had their first MSC make it to the release. Read the blog post for the full details.
We're in the process of working out what Matrix 1.8 looks like and need to hear what people are working on. If you have an MSC or idea you're planning on looking at in the next 2 months, let us know in #sct-office:matrix.org so we can prioritize it accordingly.
Random MSC of the Week
The random MSC of the week is... MSC3184: Challenges Messages! This feature allows participants in a room to make decisions randomly by playing rock, paper, scissors; flipping a coin; or drawing straws.
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
dmr announces
Happy Friday, everyone. This week we disclosed three security advisories for Synapse. The TL;DR is that you should upgrade to at least Synapse 1.74.0 or newer. Please see the Matrix.org blogpost for links to the advisories.
Also of note is the release of Synapse 1.84.0 this Tuesday. New in this release is
- an option to prevent downloading media from specified domains;
- a new set of redis TLS configuration options (Roel ter Maat); and
- addition support for new and stabilised MSCs.
Alongside this are a batch of bugfixes and internal improvements. We are aware of one regression in v1.84.0—expect a minor release with a fix to that sooner rather than later.
We've also begun an effort to profile and improve the performance of the
/messages
endpoint. That should benefit everyone, but in particular we hope to improve the UX of the Matrix Public Archive.Thank you as ever to our contributors, testers, and community of server operators.
Desktop client for Matrix using Qt and C++17.
Nico announces
Hey, it's been a while. Which means we were busy, just not with developing Nheko! However, we did do some stuff now:
- The sticker and emoji pickers now have sections and include both normal emojis and custom emojis in the emoji picker. This means your search results are also sectioned and you don't need to use ~ for custom emoji anymore. You can also now edit your custom emoji right from the picker (or rather open the settings menu from there). This should make going crazy with custom emoji much easier and I hope you have fun with it!
- LorenDB also finally fixed that pressing a key would focus the input bar but eat the first key. This was pretty annoying, but it should now behave much nicer!
- Sateallia meanwhile fixed a similar bug with the focus in the search menu on some platforms, implemented selecting multiple files to upload in the filepicker (before you only could drop a group of files into Nheko at once).
- You can now copy images from the image viewer to the clipboard.
- And lastly your rooms in the search are now ordered by recency of the last message. This should make rooms with the same name have always the right room appear on top. Additionally upgraded rooms are now in italics, which should make it still possible to jump to them, but also distinguish them in the search.
Have a nice day and try custom stickers and emojis some time!
A client for matrix, the decentralized communication protocol
Tobias Fella announces
Here's what's happened in NeoChat in the last weeks:
- I (Tobias) implemented support for sending stickers, based on MSC2545. You can now send them from the emoji picker, which has also been improved visually.
- I also implemented support for editing your account's stickers in NeoChat's settings. Other parts of the MSC (room stickers, etc.) are coming soon.
- James improved read markers and state changed, limiting the number of the that are shown at the same time.
- Aleix and I improved the notifications by grouping multiple messages from the same room into a single notification.
- James added caching for the last event in a room, meaning that on startup, NeoChat will now sort all rooms in a correct order.
- We fixed a bug where the user/room/emoji completion menu randomly did not open.
- James finished documenting all of NeoChat's codebase.
- I improved NeoChat's space support by replacing the existing space view with a new sidebar in style similar to many other clients.
- I also improved logging, which will hopefully help us debug many problems, especially around encryption issues. In the future, if you notice such problems, make a copy of
~/.local/share/KDE/neochat.log
(on Linux; for other platforms, talk to us to figure out where the log file is) and possible alsoneochat.log.old
immediately, to help with debugging.- Rooms with only two users (i.e., DMs) will now show a more useful sidebar, omitting irrelevant details like the normal room member list.
- James also improved NeoChat's developer tools, now showing more useful information.
Krille-chan reports
📢 This Week in FluffyChat 🐾
Fixed memory leak and addressed minor bugs. Made progress on new HTML rendering logic for upcoming release. Translated FluffyChat into Chinese (Simplified), Croatian, Estonian, Galician, Indonesian, Romanian, Spanish, and Ukrainian. Updated dependencies and improved features: Updated file_picker to 5.3.0. Added storage persistence request on web. Optimized member retrieval in public rooms. Stay tuned for the new and improved FluffyChat! 🐱💬
Matrix client for Emacs
alphapapa announces
Ement.el, a Matrix client for the GNU Emacs Lisp machine and text editor, was graciously feature by David Wilson in his weekly System Crafters stream. He thoroughly demo'ed Ement's powerful, unique features, giving a great introduction to new users, and showing the power of Emacs in general. Check it out!
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Danielle announces
Here at Element web our week has been focused on notifications!
- In our journey to rid the ele-web-world of stuck notifications we’ve fixed several bugs. Unfortunately fixing these bugs has surfaced other existing bugs that make the experience worse :sob:
- We’re hard at work on all these items, keeping the original fixes and introducing new fixes.
- While that means we’re skipping the public release this week, it does also mean that we’ll have made some significant improvement in our next version!
- Also on the topic of notifications we’re adding the final touches to our new notifications settings screens, ensuring that the push rules and toggles match up as you’d expect.
- Next week we’re hosting a community testing session for our Intentional Mentions MSC. The MSC aims to remove the unnecessary pings when people use your username in the timeline but do not tag you explicitly.
- Join us next Wednesday, 31 may 2023 from 7:00am PST to 8:30am PST (3:00pm - 4:30pm BST)
- Before joining the call, please complete the consent form
- For questions use the matrix room: #element-community-testing:matrix.org
The next generation of Element on iOS.
Ștefan says
We’re waving bye bye to another fun week in ElementX land. We kept ourselves entertained by:
- Redesigning the delivery status
- Fixing bugs here and there and everywhere
- Adding the longed for bubble timestamps
- and chasing down bugs, crashes and other cool maintenance task that have been on the burner for some time
E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.
cvwright reports
Circles is an E2E encrypted social network app built on Matrix.
This week we are happy to announce a new beta build of Circles for Android. New in v1.0.11:
- Major compatibility fixes for cross-signing
- Improved support for UnifiedPush
- Use of Matrix threads for replies to top-level posts
- Bug fixes to enable switching accounts without logging out
The latest build is available in our F-Droid beta repo and in the Google Play Store. And for those who like to DIY, you can always grab the APK directly and install it yourself.
Also new for this release is a GitHub mirror of the Circles Android source repo, for easier bug reporting.
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Ivan 🦀 reports
This week, new projects have started!
- A new crate has been created,
matrix-sdk-ui
, which is the new home for the UI API the Matrix SDK provides, likeTimeline
, andRoomList
. Developing this kind of UI API inside the Matrix SDK instead of the client side (e.g. ElementX iOS or Android or even Gnome Fractal) means it improves testability and quality greatly, as we can tweak the network layer more easily, and in depth. It also means that it boosts the productivity of developers that create new Matrix clients: no need to deal with synchronisation, room presentation, timeline, pagination etc., everything is managed automatically.
RoomList
is a layer on top ofSlidingSync
. The work has started, and the progress can be tracked in this meta issue. To make it real, some improvements were necessary on theSlidingSync
side, esp. being able to change the sync-mode of an existingSlidingSyncList
, which led to a nice revamping of the ranges API. We are not mentioning many small clean ups (1, 2, 3, 4 and so on).- Work has started to support Sliding Sync sticky parameters properly,
- Ruma has been upgraded, notably to support the latest Matrix 1.7 features.
- In the Crypto land:
- User/device pairs who have invalid one-time keys are now timed out,
VerificationRequest
has a new state when a request transitions.VerificationRequest
is used to control the flow of the verification but only up to a certain point. Once different specific verification flows are handled (i.e. SAS or QR Code), theVerificationRequest
object creates a child object of theVerification
type. The idea behind this patch is to add a newVerificationRequestState
variant calledTransitioned
which holds the child verification object as associated data. This makes it much simpler to go through the whole verification flow by allowing users to just listen to theVerificationRequest::changes()
method,- The return of OTK fetching failures,
- Replace the
libolm
backup encryption code with a native Rust version, which allow Wasm targets to use thebackups_v1
feature ofmatrix-sdk-crypto
,- Disable automatic-key-forwarding for the
matrix-sdk-ffi
bindings,- Better logs.
- In the Notification land, we need two sync loops instead of one (that controls them all), everything is described in The Two Sync Loops, with sub-issues 1 and 2,
- In the Media land, we are starting to support media uploading progress,
- In the Bindings land:
- We are starting to deploy UniFFI async support, which was partly reverted for particular cases, but it works in general,
- Stop unconditionally enabling
native-tls
frommatrix-sdk-ffi
, which led to compilation issue on Android architectures.
See you next week, and be sure to stop by #twim:matrix.org with your updates!
No Matrix Live this week as Thib's away. Tune in next week though - maybe he'll do two!
Andrew Morgan (anoa) announces
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/proposals.
MSC Status
New MSCs:
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
Matrix v1.7 has been given a release date of May 25th, right before the next TWIM! Expect a matrix.org blog post with all the details on the day.
Leading up to the release we've seen a number of great spec PRs appearing and being merged! Thank you to everyone for writing them (saving the SCT some time!) and to other reviewing on commenting. It's a huge help and the spec feels like it's chugging along at a blistering pace!
Random MSC of the Week
The random MSC of the week is... MSC2213: Rejoinability of private/invite-only rooms!
This MSC adds the ability for users who have previously joined a room to rejoin again. Typically this isn't desired in a public room setting, but it does specifically make sense in the case of a DM that you've left and want to return to without the other user needing to invite you. This case has specific implications for cases where there could be only ever one room between two users. Being able to rejoin it if the other user has disappeared is key!
Outside of the DM use case, this functionality can mostly already be achieved by using restricted rooms, where users of a given space/another room can always join your room. However, it would be nice to have the flexibility of allowing certain users to rejoin a room without needing another room to serve as proof of membership.
Is this something you're interested in? Do you have additional use cases? Feel free to check out the MSC and comment with your thoughts!
Matrix messaging app for GNOME written in Rust.
Kévin Commaille says
Fractal 5.beta1 is out!
Fractal 5.beta1 is the first beta release since the rewrite of Fractal to take advantage of GTK 4 and the Matrix Rust SDK. It is the result of over two years of work.
New features since Fractal 5.alpha1:
- Joining room by ID, by alias or with a Matrix URI
- Creation of direct chats
- Sending and displaying read receipts, read markers and typing notifications
- Notifications on new messages
- Highlight messages with mentions
- Added media file history viewers in the room details, thanks to our GSoC intern Marco Melorio
- Displaying the other user's avatar as a room avatar for direct chats
Of course, there are a also a lot of less visible changes, fixes and translations thanks to all our contributors, and our upstream projects.
As the version implies, this is still considered beta stage and might trigger crashes or other bugs but overall should be pretty stable. It is available to install via Flathub Beta, see the instructions in our README.
The GNOME 44 runtime used by the beta version Flatpak was shipped with a GTK version that has a regression which messes with room order in the sidebar: some rooms can appear twice and some rooms are missing. This is a known issue so there is no need to report it, there is nothing for us to do but wait until the fix is backported and shipped in an update of the GNOME runtime. In the meantime, the nightly version is unaffected by that.
A list of blocking issues for the release of version 5 can be found in the Fractal 5 milestone on GitLab. All contributions are welcome !
![]()
Krille announces
Here's a quick rundown of what's been happening in the Fluffy world over the past week:
📱 Android:
- Updated minimum SDK version from 16 to 19. With the latest Flutter upgrade this was necessary. So FluffyChat will no longer be installable on Android 4.3 and below.
🔧 Miscellaneous:
- Added missing blockquote style.
- Cleaned up unused translations.
- Various code clean-ups and maintenance tasks.
🔄 Refactoring and Updates:
- Refactored Flutter Matrix HTML
- Updated fonts for improved visuals.
- Leveraged DateTime for accurate weekday localization.
🐞 Bug Fixes:
- Fixed render overflow caused by long file names.- Improved error reporting for critical issues.
💡 Exciting New Features:
- Mute notifications from chat groups with a simple toggle.
🔧 Maintenance and Dependency Updates:
- Streamlined codebase by removing unnecessary dependencies.
- Updated dependencies for enhanced performance and security.
- Enhanced release curl calls for better error handling.
- Updated translations (thanks to all translators)
We are working hard to make the next release possible to bring these changes to all users soon. Stay tuned <3
Matrix client for Emacs
alphapapa says
https://github.com/alphapapa/ement.el, a Matrix client for the [https://www.gnu.org/software/emacs/](GNU Emacs) Lisp machine and text editor, has been released at [https://github.com/alphapapa/ement.el/releases/tag/v0.9](version 0.9). Changes since the last release include:
Additions
- Option ~ement-room-timestamp-header-align~ controls how timestamp headers are aligned in room buffers.
- Option ~ement-room-view-hook~ runs functions when ~ement-room-view~ is called. (By default, it refreshes the room list buffer.)
- In the room list, middle-clicking a room which has a buffer closes its buffer.
- Basic support for video events. (Thanks to [https://github.com/viiru-](Arto Jantunen).)
Changes
- Using new option ~ement-room-timestamp-header-align~, timestamp headers default to right-aligned. (With default settings, this keeps them near message timestamps and makes for a cleaner appearance.)
Fixes
- Recognition of certain MXID or displayname forms in outgoing messages when linkifying (aka "pilling") them.
- Unreadable room avatar images no longer cause errors. (Fixes https://github.com/alphapapa/ement.el/issues/147. Thanks to https://github.com/jgarte for reporting.)
- Don't error in ~ement-room-list~ when no rooms are joined. (Fixes https://github.com/alphapapa/ement.el/issues/123. Thanks to https://github.com/Kabouik and [https://github.com/oantolin](Omar Antolín Camarena) for reporting.)
- Enable member/room completion in compose buffers. (Fixes https://github.com/alphapapa/ement.el/issues/115. Thanks to Thanks to [https://github.com/piater](Justus Piater) and [https://github.com/chasecaleb](Caleb Chase) for reporting.)
Feel free to join us in the chat room: https://matrix.to/#/#ement.el:matrix.org.
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
kittykat reports
- Element Android 1.6.0 has been released in the beta channel, it is now using the Crypto Rust SDK. It will be rolled out slowly (currently 5%). We are monitoring the deployment and gathering feedback. The production release will only happen after the rollout and might contain any needed fixes
- We’ve also had some improvements to the Rich Text Editor, especially to mention slash commands.
The next generation of Element on Android! Come talk with us in #element-android:matrix.org!
kittykat reports
- The team is working on:
- Adding invite users to room
- Roomlist context menu (which will include settings and leaving the room)
Ștefan says
This has been a very exciting week for Element X iOS with our second ever public release seeing the light of day. The change log is huge and the app is better than ever so do please join our public testflight if you haven't already. We now have room and member details, media uploading, animated gif support, user blocking, system notifications, room leaving and many many more. Feel free to also join our public room
Otherwise this week we have been focusing on:
- custom rendering for different reply room message types in the timeline
- background app refresh support
- read receipts
- inviting people to rooms
- creating new rooms
- and last but not least: bug fixes, general stack cleanup and architectural improvements
Bram reports
Sometimes, development isn't about writing code, it's about looking ahead and planning! In the past three weeks, I've tried to figure out how filters work combined with endpoints like
/sync
,/messages
and/context
- and it turns out I couldn't find any straight answers!So I wrote a whitepaper in the Elm SDK repository on the inconsistencies and where the spec is unclear (to me, at least). I hope you're willing to look into it as I might open up an MSC soon where I request to be more specific about filters and the endpoints.
Read the whitepaper here, and please give me your feedback and/or corrections!
cheb reports
I've developed a rudimentary Matrix-Library for Scala for akka, for distributed async systems. The underlying code is actually automatically generated from the specification, with strong typing, automatic JSON (de-) serializiation and a rudimentary client provided. It features the entirety of the client-server API. This is achieved via a custom code-generator. This library provides just enough stuff to easily build a fully fletched client. A more high-level client is in development right now. Encryption will be hard, but will hopefully be implemented via JNI in the foreseeable future.
This is part of Germany's effort to move hospitals messaging systems to the Matrix protocol.
In case you want to check it out: A prebuilt is also provided https://github.com/UMEssen/matrix-scala/tree/main
Multiplatform Kotlin SDK for Matrix
Benedict announces
Trixnity got its first big external contribution in version v3.6.2!
features:
- added support for Android room database. Thanks to Jon Poulton!
bugfixes:
- allow parallel use of Okio media store
bnjbvr reports
@twim:cadair.com:
Matrix bots in Rust and WebAssembly. If you're interested to follow the project, feel free to join #trinity:delire.party or get the code on Github.
Since last time, we've upgraded to the latest version of wasmtime, wit-bindgen and cargo-component, and even found a bug in the toolchain! Thanks to the Bytecode Alliance folks for helping with a workaround.
We've also converted all the bot commands so they make use of the simpler
libcommand
API, and thanks to that, we could add support for emoji reactions easily. Now the bot will report success by adding 👌 annotation to the (human) request.The bot will also report its presence as disconnected as soon as the program exits (and automatically mark itself connected when it gets back, but that part is thanks to the Rust SDK 💜).
Christian Paul (jaller94) reports
To follow up on the overwhelmingly successful conference last year, we're planning a second Matrix Community Summit in Berlin. We expect this to have 3 days of activities.
- Thu, 21st Sep: BarCamp day (attendees pitch topics and vote for which to discuss)
- Fri, 22nd Sep: Conference day
- Sat, 23rd Sep: Conference day
The website and Call for Presentations is being worked on. Expect both to be announced here in the following weeks.
This event will take place in Berlin, with the most likely location being the one from last year: The famous hacker space c-base. If you know any place more suited for a conference, please contact us. https://matrix.to/#/#matrix-community-summit:c-base.org
Your Matrix Salon Berlin
Eric Migicovsky announces
I announced a little side project yesterday: Beepberry - a portable e-paper computer for hackers, designed for chatting on Beeper (universal messaging app built on top of Matrix). My day job is running Beeper, but I will always have a soft spot for building hardware (I was the founder of Pebble).
I wanted to create a ‘weekend’ device that would let me stay in touch with friends and family, without the distractions of a full smartphone. I imagined a tiny, hackable e-paper screen with a physical keyboard, powered by a Raspberry Pi, that I could use to chat around my home…and do pretty much nothing else.
Before Matrix, the idea probably would not have gone anywhere. Most chat apps do not have an API, making it practically impossible to hack something like this together.
I partnered with sqmfi and they’re starting to take pre-orders at https://beepberry.sqfmi.com for the first batch. It’s $79 (or $99 including a Pi Zero). Specs: Sharp Memory LCD (same display tech as in Pebble!), Pi Zero (BT/WIFI), physical keyboard, 2000mAh lipo.
On top of being an amazing chat device, it’s basically an e-paper Cyberdeck that fits in your pocket. It’s a ton of fun to hack on. Keep in mind - THIS IS NOT A REAL FINISHED PRODUCT. It’s basically a devkit.
More info in the blog post: https://blog.beeper.com/p/beeper-x-sqmfi-beepberry, or join
#beeper-general:beeper.com
Here's what it looks like running a slightly customized version of gomuks: https://www.youtube.com/watch?v=fIgzybDcvYk
If you are a hacker and want to apply to get one early, fill in this form after ordering.
Dominik Henneke reports
We are pleased to announce the NeoBoard — an open-source collaborative whiteboard widget for Matrix! The NeoBoard is an ideal tool for creating and sharing content, conducting presentations, and collaborating with colleagues or friends. All data is stored as Matrix events within the Matrix room, leveraging Matrix's native end-to-end encryption, decentralization, and data privacy features.
The widget uses CRDT documents (conflict-free replicated data type) and WebRTC to provide a seamless and fast editing experience. It is used in the German public sector and is now available to anyone looking for a powerful and secure way to collaborate.
The NeoBoard is the latest widget from Nordeck, which we have been developing behind the scenes in the past months, and we're excited to finally share it with the Matrix community. If you have any questions, reach out to us at #nordeck:matrix.org.
See you next week, and be sure to stop by #twim:matrix.org with your updates!
Andrew Morgan (anoa) announces
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/proposals.
MSC Status
New MSCs:
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- MSC3882: Allow an existing session to sign in a new session
- MSC3860: Media Download Redirects
- MSC2659: Application service ping endpoint
- MSC2249: Require users to have visibility on an event when submitting reports
Closed MSCs:
- MSC2463: Exclusion of MXIDs in push rules content matching
- Mechanism to communicate 3PID binding updates or deletions to homeservers
Spec Updates
A regular reminder that every Tuesday, the Spec Core Team (SCT) publishes their approximate priorities in the public Office of the Spec Core Team room - check it out to see what the SCT is working on. Similarly, if you’d like the SCT to engage with your MSC, mention so in that room.
The release of Matrix 1.7 is expected in the next 1-2 weeks! Keep an eye out for announcement blog post specifically for it. We'll call it out in the following TWIM as well of course :)
Matrix 1.8 is currently scheduled for around August 2023.
Random MSC of the Week
The random MSC of the week is... MSC3914: Matrix native group call push rule!
This MSC adds a new push rule that causes your Matrix client to emit a notification if a group call (as defined by MSC3401 is started in a Matrix room. This MSC (obviously) depends on MSC3041, so that MSC will need to be accepted before this one can be.
There is currently a client-side implementation for this MSC, but it is missing a homeserver side one (for adding the push rule).
Check out the MSC if you're interested, or perhaps take a look at adding that server-side implementation?
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Shay says
Synapse
It's Friday Friday Friday which means it's time for another TWIM. This week the backend team released Synapse v1.83.0. Notable highlights include:
- Update support for MSC3983 to allow always returning fallback-keys in a
/keys/claim
request.- Fix a long-standing bug where cached server key results which were directly fetched would not be properly re-used.
- Fix a bug introduced in Synapse 1.73.0 where some experimental push rules were returned by default.
- Add experimental support to recursively provide relations per MSC3981
And so much more! To read about everything in the release, take a look at the release notes here and otherwise have a great week.
A Matrix Client written for MTRNord
MTRNord says
Hi everyone :)
I recently started to work on my own personal Matrix client. It's still early in the progress, but I wanted to share it.
It mostly is based around some core concepts of element-web UI, however deviates from it quite quickly. Notable changes are that it merges the space and roomviews into a single list, it has a richtext editor, and it renders things slightly different but close to element-web.
Additionally, the client is using the matrix-rust-sdk-crypto-js bindings as underlying e2ee and sliding-sync as it's /sync implementation.
This week it's just a preview, but I hope to improve upon it and make it more usable for people. You will find plenty of bugs like e2ee not decrypting past messages, no upscroll, no verification. But for very basic chatting it should work already.
Feel free to peek into #cetirizine:midnightthoughts.space or have a look at the repo https://github.com/MTRNord/cetirizine or try it for yourself at https://mtrnord.github.io/cetirizine (Or just view the storyboard at https://mtrnord.github.io/cetirizine/storybook )
Note that since this is meant to be a personal client there is no support given, and it's purely "free and source available" but neither includes community support nor any form of professional support. This is to prevent mental exhaustion for myself. Also note that this is still very early into the process. So many things are missing or buggy. If you try it, be careful.
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
Danielle announces
Our work on notifications continues with a big improvement to the stuck notifications bug hitting production this week!
- The MSC 3981 is in review and other bug fixes are also continuing to land
- The enhancements to Settings are underway, this week we’ve looked at mapping users current selections to the new design to ensure that a migration is as smooth as possible
Our Accessibility work continues with more than 20 issues closed in the last few weeks. This will continue to be a priority for us over the coming few weeks so please continue to raise any issues or areas that we could be improving.
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
Manu announces
- The 1.6.0 release candidate for Element-Android is still being tested before it lands on the Play Store. It contains a major change where we switch the crypto module to use the rust crate from the matrix-rust-sdk.
- Still on Element-Android, we are improving accessibility on several screens
- Meanwhile on ElementX-Android, we added the upload of image, video and files. Room creation, invite and join is almost complete
Everything related to Element but not strictly bound to a client
Ștefan says
Hello Friday and goodbye to another productive Element X week. We’re working very hard on stabilizing the application and getting it ready for a new public release but meanwhile:
- Progress on the new rich reply rendering. Other message types coming next.
- Improved media uploading
- Notification improvements
- A brand new initial sync loading indicator
- plus a slew of tweaks, bug fixes and improvements
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte says
Over the last two weeks,
- SQlite replaced sled as the default on-disk state store backend!
- We added more convenient power level action checks and exposed them in matrix-sdk-ffi
- The FFI crate also gained support for sending image attachments through the timeline
- We made the timeline strip reply fallbacks (so replies don't get rendered twice)
- We've steadily been improving our logging
- And of course there were lots of bug fixes, CI improvements and refactorings as well
- Notably, we optimized the size of some futures, which could be the solution for a stack overflow Windows users have been reporting from time to time (we're waiting for somebody who previously saw the bug to try out the latest version)
Aine says
Radicale is dead simple CalDAV/CardDAV server, it's not fancy, but does the job. The only caveat with Radicale we had at etke.cc is manual htpasswd-based user management which is painful both for us and our customers.
So, we did that thing, called
radicale-auth-matrix
and you can use it authenticate from radicale against your matrix server, delegating user management on matrix side, where you have proper API and even UI for that.How it works? You enter your matrix account's credentials when login to your Radicale server, that's it! It even has simple hash-based cache to avoid unnecessary requests to matrix API once you logged in.
Pretty niche thing, but it pain caused by manual user management is gone 😄
Source code. We even have ready-to-use Radicale docker image with that plugin installed
Nik | Klampfradler 🎸🚴🏻 announces
The deadline for registrations for the two Matrix courses at the German Open Source training center Linuxhotel is fast approaching, and the courses, sadly, are at risk to be cancelled due to lack of interest:
If you know someone who might be interested in 3 to 5 days of hands-on Matrix experience for their company, team, or as a hobbyist, please share the invitation ☺!
HarHarLinks reports
[m][email protected]
Hi TWIM! It's been 3 months since a good chunk of the Matrix community gathered at FOSDEM. We had lots of fun meeting people at FOSDEM itself and on top an overwhelming response to the #fosdem23-community-meetup:matrix.org we hosted on Friday in advance.
One of the next hacker events has now appeared on the horizon, namely Chaos Communication Camp 2023 happening August 15-19. Find all the info about it in several posts on https://events.ccc.de/category/camp-2023/ and in the rooms contained within the #camp2023:events.ccc.de space. Note that this event, while happening close to Berlin, Germany, and some of the presented content might be in German, the Camp still targets an international audience.
Some of us have already gotten together to organize a Matrix village at the CCCamp. If you are interested in attending or - even better - have any ideas to share, we invite you to join us in that room. In particular, we will meet next Monday (May 15) in a video conference in #chaosevents:matrix.org for planning, exchanging info, etc.
Nightshade reports
A rather known tech related German journal talked about interoperability hurdles, MIMI, and also Matrix. The german article can be found on their website.
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.
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 | test.zemos.net | 339 |
2 | matrix.lukeog.com | 442 |
3 | coolegrane.farm | 550 |
4 | envs.net | 620 |
5 | kittenface.studio | 1090 |
6 | zemos.net | 1692 |
7 | rom4nik.pl | 2282.5 |
8 | wcore.org | 2489 |
9 | herkulessi.de | 4554.5 |
10 | mailstation.de | 4803 |
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 | test.zemos.net | 108 |
2 | l1qu1d.net | 194.5 |
3 | feline.support | 286 |
4 | 777.tf | 416.5 |
5 | herkulessi.de | 422 |
6 | zemos.net | 729.5 |
7 | shiftsystems.net | 961 |
See you next week, and be sure to stop by #twim:matrix.org with your updates!
Denise announces
we know there have been some questions about the recent ban on Element by the Indian Central Government. We are still trying to get answers ourselves and have put out a public statement on our understanding of the situation so far: https://element.io/blog/india-bans-flagship-client-for-the-matrix-network/
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://spec.matrix.org/proposals.
MSC Status
New MSCs:
- MSC4011: Thumbnail media negotiation
- MSC4010: Push rules and account data
- MSC4009: E.164 Matrix IDs
- MSC4006: "completed elsewhere" hangup reason.
- MSC4005: Explicit read receipts for sent events
MSCs in Final Comment Period:
- MSC3882: Allow an existing session to sign in a new session (merge)
- MSC3860: Media Download Redirects (merge)
- MSC2659: Application service ping endpoint (merge)
- MSC2463: Exclusion of MXIDs in push rules content matching (close)
- MSC2249: Require users to have visibility on an event when submitting reports (merge)
Accepted MSCs:
- No MSCs were accepted this week.
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
Lots of MSCs moving through the pipeline this week! Plus a myriad of spec changes too! The spec seems to be gently humming along.
In other news, the next release of the spec, v1.7, is coming up in the not-too-distant future. In keeping with our roughly quarterly release schedule - the release of v1.6 was on February 14th, 2023 - a new release of the spec should come some time in next few weeks.
We haven't set a date yet, but expect to do so soon. So watch this space!
Random MSC of the Week
The random MSC of the week is... MSC3741: Revealing the useful login flows to clients after a soft logout!
This MSC fixes an edge case in the spec. Imagine the following scenario. You're logged into your homeserver via an SSO flow (let's say by signing into GitLab), and then you try to change your password on GitLab. Doing so may cause a "soft logout" to occur for your Matrix client. A soft logout, by the way, happens when your access token is invalidated, but your client is told explicitly not to wipe its local state (including encryption keys).
Your Matrix client is telling you to log back in again, and in doing so calls out to the
GET /_matrix/client/v3/login
endpoint to see what login methods are available. Your homeserver supports both password-based and SSO-based login, so that's what you get back. Your client happily presents you both options. You try to type your GitLab password, but it's incorrect. And you've just given your GitLab password to this Matrix homeserver in plaintext - oh no!The problem here stems from the fact that
GET /login
is unauthenticated. The homeserver doesn't know who you are when you attempt to log in again, and thus can't tailor the available login methods to those that make sense for you. This MSC aims to fix this by having your Matrix client, upon trying to learn how to log in again after a soft logout, provide your expired access token in anAuthorization
request header. The homeserver can then check and see that 1) you were just soft logout'd and 2) you are an account that is authorised via SSO - so it doesn't make sense to suggest you log in again via a password specific to your Matrix homeserver!While this MSC discusses a valuable solution, it is worth considering that the User-Interactive Authentication system as a whole is going to be completely replaced by OpenID Connect instead, which will make this problem (and solution) moot. Still, that day is not here yet, so if you suffer from this problem today, this may be one method to deal with it.
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Shay reports
It's yet another Friday which means TWIM day. This week the backend team released Synapse v1.83.0rc1. Notable highlights include:
- Add an admin API endpoint to query the largest rooms by disk space used in the database.
- Add Nginx loadbalancing example with sticky mxid for workers
- Disable push rule evaluation for rooms excluded from sync.
- Add experimental support for MSC3970: Scope transaction IDs to devices.
And so much more! To read about everything in the release, take a look at the release notes here and otherwise have a great week.
A Minimal, simple, multi-platform chat client for the Matrix protocol.
JFA says
Version 1.6.5 of Quadrix (Matrix client for mobiles and desktops) has been released and is available in the respective app stores.
The latest changes include the replacement of the Jitsi Meet videoconferencing functionality with an embedded version of Element Call, using matrix-widget-api. Quadrix loads the Element Call web app located at https://element-call.netlify.app, which is the continually updated dev version. The Quadrix implementation is not quite compatible with Element Web, since it uses non-encrypted WebRTC signalling, but that's something I'll be working on in the next weeks.
Please go test-drive Element Call in Quadrix and leave feedback/comments at #quadrix:matrix.org or in the issues at https://github.com/alariej/quadrix (stars welcome :-)
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
andybalaam reports
We’re still on our stability drive!
- Lots of bug fixing, including some progress on stuck unread messages. When we’re done, we’ll ask people to check for incorrect unreads. We’re not there yet, but we’re getting closer
- We’ve been improving the correctness of our Typescript code by updating it to conform to strict checking
- Our accessibility work continues, with more small fixes
- We’re working on making our automated tests work better by fixing unreliable tests
- We tightened our Content Security Policy to protect against the kinds of vulnerabilities we fixed in the last release
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
benoit reports
- We are getting ready to release Element Android 1.6.0 with the new Crypto Rust SDK (aka ElementR). This will delay the regular release. Also we will do a progressive roll out, as a safety measure.
- This week we welcome Marco, who has started to work on the display of invitations in the list of members of a room in ElementX
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
benoit says
On ElementX, we are working on media and file attachments. We are adding the picker and we are adding support for rendering attachment in the timeline.
- On ElementX, we are working on media and file attachments. We are adding the picker and we are adding support for rendering attachment in the timeline.
Everything related to Element but not strictly bound to a client
Ștefan announces
Happy Friday and happy Element X update day. This week we:
- Added support for uploading media
- Introduced a brand new room list contextual menu
- Got our first look at decrypting remote background notifications
- Continued to make very good progress on OIDC support
- And started working on rendering rich replies in the timeline
uhoreg says
libolm is an implementation of the Olm and Megolm cryptographic ratchets used for end-to-end encryption in Matrix. libolm 3.2.15 has been released. This is mainly a maintenance release that improves the Python packaging and fixes a TypeScript issue. The biggest change is that the Python package can now be installed from pypi.org, the default repository for Python packages. The source package includes the libolm sources, so you do not need libolm to be installed separately any more. All you need is cmake (or possibly GNU make) and a C/C++ compiler, and run
pip install python-olm
. It unfortunately does not yet work on Windows, but should work on UNIX-like operating systems such as Linux and *BSD, and even macOS.In other news: with Element iOS and Element Android switching to the rust crypto SDK, and hence using vodozemac, I'm considering deprecating the iOS and Android bindings for libolm. If you still need those bindings, please let me know.
mgoerens says
The Synapse operator provides a way to deploy Synapse, the Heisenbridge, and the Mautrix-Signal bridge on Kubernetes.
Release v0.5.0 & v0.5.1
It was time to cut a new release, though most of the changes are related to various internal improvements and experiments.
Release v0.5.0 & v0.5.1 come with only a few user-facing changes:
Secrets in homeserver.yaml are now randomly generated.
When a bridge is deleted, it is now unregistered from Synapse.
Update container images to their latest available version to date, now deploying:
- Synapse v1.82.0
- Mautrix-signal v0.4.2
- Signald 0.32.2
- Heisenbridge 1.14 (no update since v0.4.0)
If you want to learn more about internal changes, check the release notes
And join the matrix room to chat about the project: https://matrix.to/#/#synapse-operator:matrix.org
FOSDEM Video
The replay of the presentation of this Kubernetes operator at FOSDEM, in the Matrix online devroom, is now available on Youtube: https://www.youtube.com/watch?v=Vsb18jr\_VDc
A developers-managed instance of the standalone search engine built for matrix rooms discovery.
Aine reports
During this week at etke.cc we polished the Matrix Rooms Search service and implemented the following improvements:
- Enabled language detection for all (75) supported languages and language analysis for all (29) supported languages by search engine
- Added ability to report illegal rooms (please, keep in mind that we know nothing about the contents of the indexed rooms, so if you think something is illegal - describe it like ELI5, so anyone can read the reason and know for sure if that room should be removed or not)
- Optimized avatars processing on UI
Current index status: 233513 indexed rooms from 19919 matrix servers
One more thing - we've created Liberapay team to crowdfund the project's existence and we welcome everyone to donate and fund the future development and infrastructure costs 🙂
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.
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 | test.zemos.net | 418 |
2 | norrland.xyz | 426 |
3 | matrix.weebl.me | 652 |
4 | matrix.lukeog.com | 758 |
5 | envs.net | 845 |
6 | willy.club | 915 |
7 | wcore.org | 971 |
8 | plocki.org | 1191 |
9 | poldrack.dev | 1315.5 |
10 | zemos.net | 1665 |
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 | test.zemos.net | 118 |
2 | l1qu1d.net | 160.5 |
3 | pyrox.dev | 388.5 |
4 | 777.tf | 467 |
5 | rustybever.be | 513 |
6 | zemos.net | 514.5 |
7 | matrix.org | 583.5 |
8 | herkulessi.de | 816.5 |
9 | chat.eutampieri.eu | 1389.5 |
See you next week, and be sure to stop by #twim:matrix.org with your updates!
Michael Downey announces
Don't miss this week's Matrix Live, where Amandine & Matthew talk about the growth of the Foundation and how it will help all of us working in the Matrix ecosystem be more successful. And in case you missed it, a job description for the Foundation's first Managing Director has now been posted. If you think you have what it takes, or if you want to share it with others who might, don't delay!
Thib says
Some of you might have heard of it, but we're about to launch a (long overdue) update of the matrix.org website! The current one has served us well, but it grew organically as exciting projects and features were added to it. It became a little impractical to navigate and sometimes confusing.
The new matrix.org website, nicknamed "Zola" after the static site generator it uses, is not just a fresh coat of paint on the website: it's a complete rewrite to address three kind of people who would browse the website. Sorted by time they're willing to spend on a web page:
- The general public, who is not tech savvy and doesn't want to understand how things work, but who wants to get an easy onboarding
- Community managers, who are not too tech savvy but are willing to spend a bit of time to understand more advanced use cases
- Developers who want to understand how matrix works, and who want to build & break things!
We're in the final stages of developing the website, and we need you to help us making it ready! Head to the preview of the website, use the website, and give is feedback by opening an issue on the website tracker. Please make sure the issue doesn't already exist before opening it.
Reporting the following is particularly helpful:
- Something looks off, misplaced, is not aligned well or behaves oddly
- Something is missing (the doc is incomplete? Some informationg is missing somewhere?)
- There's an accessibility issue
- Something doesn't work on your browser
- It's not clear how to get to a particular information (you're looking for a client or a SDK, and after visiting the website you still don't know which one to use or how to get it?)
We still need to:
- Finish up the Bots page (which will likely be replaced by an Integrations page)
- Flesh out the support page to highlight more of the work of the Matrix.org Foundation
- Import the historical projects that are no longer maintained (clients, servers, bots, bridges, sdks)
If you want to follow along, you can join the #matrix.org-website:matrix.org room.
Help us make the website look as neat as possible for launch!
Matthew reports
The UK's online safety bill is a catastrophe in the making, and as currently written empowers the UK telecoms industry regulator (OFCOM) to obligate end-to-end encrypted messaging apps to embed proprietary 3rd party scanning software which attempts to identify and flag abusive content and report it to the authorities. If you are in the UK, please sign this petition https://petition.parliament.uk/petitions/634725 to try to force the government to reconsider. Element, for instance, would rather be blocked by the UK govt from the app stores than embed third party scanning technology. For more info: https://element.io/blog/the-uks-online-safety-bill-undermines-everyones-safety/ and https://element.io/blog/the-online-safety-bill-an-attack-on-encryption/
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://spec.matrix.org/proposals.
MSC Status
New MSCs:
MSCs in Final Comment Period:
- No MSCs are in FCP.
Accepted MSCs:
- MSC3987: Push actions clean-up
- MSC3952: Intentional Mentions
- MSC2746: Improved VoIP Signalling
- MSC2246: Asynchronous media uploads
Closed MSCs:
- No MSCs were closed/rejected this week.
Spec Updates
Lots of MSCs moving through the process this week. I'm particularly excited about MSC3952: Intentional Mentions, which modifies the default push rules to only generate a notification if the sender's client has specifically intended to mention you. That's a really impactful, user-facing feature!
The other MSCs on the list, especially MSC2246: Asynchronous media uploads, bring quality-of-life improvements and unlock future functionality in Matrix. Check them out!
Random MSC of the Week
The random MSC of the week is... MSC3189: Per-room/per-space profiles!
MSC3189 proposes a concept of per-room/per-space profiles within Matrix, allowing users to have different display names and avatars across their various rooms and spaces. To do so, an optional query parameter scope is added to all profile-related endpoints. When specified, the scope defines the profile that should be used to complete that action.
That way you can represent yourself in a business context in one space, and a less serious context in another space. Short of profile-rooms, this would get us a fair way towards having multiple public profiles in Matrix!
Check out the MSC if you're interested. Reviews are always welcome!
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Shay says
How is it Friday again?? This week the Synapse team released 1.82.0. Here are a few of the highlights:
- Allow loading the
/capabilities
endpoint on workers.- Improve robustness when handling a perspective key response by deduplicating received server keys.
- Synapse now correctly fails to start if the config option
app_service_config_files
is not a list.- Speed up the user directory background update.
and much more. If you'd like to take a deep dive into the changes, you can find the release notes here and as always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.
A performance-oriented homeserver with minimal dependencies.
Jason Volk reports
Construct (website)
🔒 This week some follow-up work further improving End-to-End Encryption took place. Compatibility between Nheko and Element devices through Construct have been fixed. About two weeks ago my quality assessment of e2ee through Construct was about 30%. Last week saw major progress but we were still maxing out around 70%. This week is closer to 90%; a few UISI's are still happening in some places such as a user's first message to an encrypted room. We'll have that worked out soon enough.
🙋 I'd like to thank Giovanni Bottaro for fixing some compatibility issues with the Dart Matrix SDK (Fluffychat) by replacing some HTTP 201 (Created) codes returned by Construct with HTTP 200's instead.
🚀 Tell us how important reliable e2ee is to you in #test:zemos.net today.
Jeremiah K announces
This handy tool bridges Meshtastic channels and Matrix rooms 1:1, and is built using matrix-nio.
For those unfamiliar with Meshtastic, it's a project enabling encrypted long-distance messaging via decentralized LoRa meshnets, using affordable devices. LoRa is license-free and certification-free in most of the world, making it accessible for everyone. Radios automatically rebroadcast messages, creating a mesh network for group communication—even from the furthest member. The Meshtastic mesh can sustain up to 80 device nodes, depending on settings.
Naturally, we wanted to integrate this incredible tech with Matrix.
M<>M Relay's Features:
- Bidirectional message relay between Meshtastic meshnets and Matrix chat rooms, supporting multiple meshnets
- Serial and network connections to Meshtastic devices
- Truncation of long messages to fit within Meshtastic's payload size
- Extended features via plugins, such as meshnet health plugin analyzing telemetry data and providing network stats
- E2EE support is planned, but not yet implemented (we appreciate any help!)
We're excited about extending our meshnets' range using existing Matrix bridges. Learn more and download the files here.
Join our #meshtastic-relay-1:matrix.org where we currently have 3 meshnets connected. If you have Meshtastic devices, we'd love help with testing, but all users are welcome.
A multi purpose multi platform bridge, formerly known as matrix-github
Andrew F (UTC+9) reports
Hookshot 4.0.0 makes its debut
Greetings all; Hookshot latest release is out, along with some exciting news!
You may recall the TWIM post for 2.6.0 from back in January having announced Encrypted Room Support, though not without warnings of it being experimental & not quite ready for prime time. Well, the latest release changes all that: encrypted room support is much more stable now, as we've collaborated with the fine folks behind the matrix-sdk-crypto Rust library to squash some of the biggest bugs that had been plaguing Hookshot. Encryption support even works for Service Bots!
Other than enabling encryption in your Hookshot's config file, there is no migration necessary to enable these fixes, even if you've already enabled Hookshot's encryption from before this release. Please give it a try and let us know how it goes!
This release also brings some useful features for RSS feeds: the ability to customize the format of feed messages, and the option to toggle posting messages for feed failures. This provides much more control & peace of mind over your feed messages, so give them a try & enjoy!
Finally, to align with the recent release of Node 20, this latest Hookshot release adds support for Node 20, and drops support for Node 16. The latter is due to Hookshot's policy of supporting only LTS & Active releases of Node. So, please ensure to update your Node versions if needed.
The release is available at https://github.com/matrix-org/matrix-hookshot/releases/tag/4.0.0, or by doing
docker pull halfshot/matrix-hookshot:4.0.0
. And as usual, feel free to direct any questions about Hookshot in our Matrix room: #hookshot:half-shot.uk
Node.js IRC bridge for Matrix
Half-Shot announces
Major new 1.0.0-rc1 for the IRC bridge
Friday's greetings TWIM. On June 15th, 2018 I submitted my first pull request to matrix-appservice-irc. Little did I know then, that nearly 5 years later I would now be announcing the 1.0.0 release candidate of the IRC bridge. This release brings a major new component, which is the ability to restart the bridge in place. This allows us to effectively do noise-less restarts of our larger bridges (in nearly all cases). This should also give us quite a bit more headroom on the bridge, so performance should improve.
The feature is currently marked as experimental but has been tested by the bridge crew fairly extensively, so the major wrinkles should have been ironed out by now. We'd really appreciate feedback, so please try it out.
We've also bumped the minimum required version of the bridge to Node 18 to slightly get ahead of the curve, as Node 16 is due to lose support later this year.
Notable changes for this release include:
- IRC connections can now be run via an external process using "connection pooling", allowing the bridge to be restarted without IRC connection loss. (#1669)
- Bridge logging can now be hot-reloaded. (#1704)
- Fix not handling thread fallbacks as replies. (#1697)
- Show a helpful error for !link/!unlink admin failures, rather than "Check the logs for details", in more cases. (#1702)
- Fix documentation not being built and uploaded to GitHub pages on release. (#1703)
- Fix linking rooms from setup widget when a
networkId
is configured. (#1706)Please report any bugs in https://github.com/matrix-org/matrix-appservice-irc/issues.
Thanks for your continued support!
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
andybalaam reports
Recursive relations MSC to improve stuck notifications is moving forwards. Along with some other major steps forward in our investigation into stuck notifications we’re feeling confident that our next few releases will significantly reduce the amount of issues in this area.
- We’re also still working on updating the Settings screen for notifications.
- The Intentional mentions MSC passed its FCP this week so work to stabilize it will begin soon.
We’re smashing through accessibility bugs and working closely with our design team to address larger concerns such as text sizes and color contrasts.
Everything related to Element but not strictly bound to a client
Ștefan reports
- progress is being made on improving the the sliding sync integration and our focus for the upcoming week is to ensure that our integration tests are asserting the right things to support these steps forwards.
- the Room List has also seen an update this week, specifically the sorting functionality ensuring that only rooms with new messages move up the stack.
- push notifications work is ongoing as as we’re implementing local notification handlers
- and we’re also working on OIDC support, media uploading, the design system and generally improving our stack
Native Decentralised End-to-end Encrypted Group Calls in Matrix, as a standalone web app
Florian Heese reports
Hello from the VoIP team,
We have shipped Element Call release 0.3.8 today -- still in beta. In order to get a data driven approach towards getting out of beta we added a bunch of telemetry to Element Call in our previous release using the Open Telemetry framework. And in the meantime we gathered together with submitted rage-shakes (also now backed by Open Telemetry) meaningful insights which enabled us to identify and fix two major split-brain issues. You will find the full list of changes in the release notes.
td says
We released another breaking change this week :p bump to v0.19.0, the main features/changes from last time include:
- Upgrading to matrix api 1.6
- Private read receipts support
- Fixed an issue where loading archive returned a stale version. Since different sync timeouts bust through the cache, we make use of that to be able to load the new archive immediately.
- There's also a way for clients to provide media streams when starting a call, which should make setting up calls with audio/video mute toggles much easier
- Stopping media streams properly for calls and several other fixes!
Until next time :D
bnjbvr says
Long time no see! A few new shiny things have landed recently:
- Trinity now supports reading the wasm commands from multiple, custom directories. Of course, all of these are watched by Trinity so any module in there will be instantaneously hot-loaded as usual.
- Trinity has been dockerized! It's now possible to start Trinity in a Docker environment, provided a few environment variables and configuration options. In particular, thanks to the previous change, it's also possible to hack only on the commands, and not have to compile the host runtime on your machine yourself.
- We've also started experimenting with higher-level Rust traits to simplify even more the implementation of commands. If you have any feedback about this, or opinions about developer ergonomics for implementing Matrix bots in general, come over the #trinity:delire.party channel and let's chat about that!
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte says
This week, there's two highlights:
- We've got basic notification support in the FFI layer
- A lot of plumbing is still necessary before this can be used from a separate notification process as required on mobile platforms though
- SQLite is now supported as a state store backend
- It will soon become the default for both the crypto and state stores
A Qt5 library to write cross-platform clients for Matrix
kitsune says
libQuotient 0.7.2
I'm trying to get to senses and make releases a bit more often than before - so here's libQuotient 0.7.2, with massive internal code cleanup work carried out by Volker (@vkrause:kde.org) and a few functional fixes. The release notes are at the usual place.
This is likely the last 0.7.x release of libQuotient - after discussions within the team we agreed to prioritise a release of libQuotient 0.8 to fix a few API shortcomings in the current codebase (around E2EE but not only). This means that the final Quaternion 0.0.96 is unlikely to be released for another month or so, as it will be done on libQuotient 0.8 as well.
Tobias Fella announces
In addition to the 0.7.2 release, we've been working on improving the documentation for libQuotient. You can now see an up-to-date version of the documentation at https://quotient-im.github.io/libQuotient
f0x announces
I've been working on refactoring one of my older projects, synapse-media-proxy, which separates the media repository from Synapse (similar to matrix-media-repo), but instead only acting as a caching proxy layer. This keeps the media in long-term storage at the homeserver (which is literally at home in my case, behind a slower residential line), but serves requests as fast as possible from a cheap VPS which keeps a minimal in-memory cache.
The refactor includes a lot of general cleanup/rework, but also moves the caching from in-process caches to a separate Redis database, as my previous implementation had some memory leakage. While not quite finished yet (no uploads, url previews), preliminary benchmarks for downloads and thumbnailing are very promising, way faster than both the original implementation and normal synapse. Benchmarks were done with wrk, all against localhost on the same machine for a fair comparison.
You can see the progress by comparing branches here
(some benchmarks detailed omitted for space, see them here) synapse-media-proxy refactor
Running 1m test @ download/pixie.town/Nrp1oyUgHirgm7gDSlDvHutM Requests/sec: 478.23 Transfer/sec: 2.84GB Running 1m test @ thumbnail/pixie.town/OjN4zjsGXzSZBkLBsHh5REJi?height=128&width=128 Requests/sec: 5405.62 Transfer/sec: 23.18MB
synapse-media-proxy original
Running 1m test @ download/pixie.town/Nrp1oyUgHirgm7gDSlDvHutM Requests/sec: 160.01 Transfer/sec: 0.95GB Running 1m test @ thumbnail/pixie.town/OjN4zjsGXzSZBkLBsHh5REJi?height=128&width=128 Socket errors: connect 0, read 0, write 0, timeout 3 Requests/sec: 43.07 Transfer/sec: 141.64KB
Synapse
Running 1m test @ download/pixie.town/Nrp1oyUgHirgm7gDSlDvHutM Requests/sec: 59.71 Transfer/sec: 369.38MB Running 1m test @ thumbnail/pixie.town/OjN4zjsGXzSZBkLBsHh5REJi?height=128&width=128 Non-2xx or 3xx responses: 19278 Requests/sec: 321.01 Transfer/sec: 263.01KB
(note a lot of those requests returned non-2xx/3xx responses, failing to actually thumbnail)
Aine reports
Lack of rooms discovery for new users is one of the issues we noticed while installing and hosting hundreds of Matrix servers on etke.cc Today, we welcome you to MatrixRooms.info, a search engine built for matrix rooms discovery.
The current index contains over 230,000 rooms across 19,000 servers, and we're constantly tweaking it to provide more relevant search results. Even non-English users may find it useful because it does automatic language detection in room names and topics.
We plan the following future improvements:
- Searching by language
- Searching by specific field
- Providing a browsable catalog of rooms by server/language/etc
- Implementing a subset of the Matrix Server-Server API to request (and provide!) a Matrix-native rooms directory
MatrixRooms.info, Source code, #mrs:etke.cc
As with anything else we do at etke.cc, the website, its API backend and all related tools are free software (A/GPL).
uhoreg announces
I've started writing a Matrix client tutorial, explaining how to use the Matrix Client-Server API. It's still in the very early stages, but I've gotten to the point of being able to write a simple echo bot. I'll be tackling end-to-end encryption next. Feedback is welcome. Client authors, if you have any tips and tricks, or potential pitfalls, that you think that every client author should know, feel free to share. The document can be read at https://uhoreg.gitlab.io/matrix-tutorial/ and the sources are at https://gitlab.com/uhoreg/matrix-tutorial.
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.
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 | test.zemos.net | 460.5 |
2 | fs.tum.de | 541.5 |
3 | pandas.social | 548 |
4 | envs.net | 787 |
5 | skladka.net | 842 |
6 | willy.club | 1358.5 |
7 | wcore.org | 1584 |
8 | aguiarvieira.pt | 1695 |
9 | zemos.net | 2610 |
10 | rom4nik.pl | 3704 |
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 | test.zemos.net | 156.5 |
2 | l1qu1d.net | 164 |
3 | skladka.net | 217.5 |
4 | dendrite.s3cr3t.me | 221 |
5 | conduit.rs | 235 |
6 | willian.wang | 294.5 |
7 | 777.tf | 369.5 |
8 | chat.eutampieri.eu | 505 |
9 | zemos.net | 574 |
10 | kumma.juttu.asia | 636 |
See you next week, and be sure to stop by #twim:matrix.org with your updates!
An open source Matrix homeserver implementation written from scratch in ANSI C and designed to be lightweight and simple, yet functional
Jordan Bancino reports
Telodendria, the very-much-a-work-in-progress Matrix homeserver written in C, has undergone some major architecture changes that make it more robust, more maintainable, and more feature-complete. Of note are these new features that came about as a result of the changes, though there are many more:
- TLS: We now have full TLS support for both the client and the server. Take your pick of OpenSSL or LibreSSL, or easily add support for another TLS implementation using our simple I/O API.
- Admin API: Work on the administrator API has begun. This includes implementing user privileges, and moving the program configuration to the database so it can be managed with a simple JSON API.
We have also done a little work on the Matrix specification:
- Account Management: Users can now change their passwords, set display names and avatars, and get information about their account.
- User Interactive Authentication (UIA): UIA is basically complete, I'm just working on wrapping up the web fallback pages. You can now use registration tokens to register for accounts on a Telodendria server as well, though as of the time of my writing this, these tokens can't be created through the Admin API quite yet.
Almost all of Client Authentication is complete and we are almost ready to move on to the core of the Matrix specification—rooms and events.
Visit #telodendria-newsletter:bancino.net for more details, and feel free to join the discussion at #telodendria-general:bancino.net if you're interested in the project.
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
Shay says
Welcome back to the backend section of TWIM. This week we released Synapse v1.82.0rc1 for your consideration. Here are a few of the highlights:
- Allow loading the
/directory/room/{roomAlias}
endpoint on workers- Add some validation to
instance_map
configuration loading- Delete server-side backup keys when deactivating an account
- Fix and document untold assumption that
on_logged_out
module hooks will be called before the deletion of pushers- Remove the broken, unspecced registration fallback. Note that the login fallback is unaffected by this change.
And much more! You can take a look at the release notes here: https://github.com/matrix-org/synapse/releases. As always, if you encounter a bug feel free to report it at https://github.com/matrix-org/synapse/issues/new/choose.
A performance-oriented homeserver with minimal dependencies.
Jason Volk says
🔓 End-to-End Encryption is significantly more reliable in Construct this week. E2EE had always been flaky, but it was never clear before where it was going wrong.
⛏️ The ice broke earlier this week when I noticed in a small corner of an Element dialogue that my
device_id
was being cut off at its:
character. After simplifying thedevice_id
grammar things started to light up green again. I was then able to work through a standard list of bugs, ancient code-rot, and a couple of incomplete endpoints.🔐 All of this results in robust encryption sessions that survive clear-cache and reload, proper key backups without old sessions hanging around, and interactive verification without random cancellations. At the time of this writing, there is still one remaining hold-up with device verification for cross-signing so this week's dockers might not finish building until mid-Saturday.
🙋♂️ I'd like to thank Giovanni Bottaro for tracking down an issue leading one of the patches above. 🙋 I'd like to thank qg for tracking down a rocksdb-related bug late last week right after TWIM. This fix has already been shipped in the latest Construct.
Don't keep your ❤️ for Construct a secret. Join #test:zemos.net to encrypt everything else.
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
kittykat reports
We’re still working hard on stuck notifications:
- The prototype implementation of MSC 3981 is finished and the first round of feedback is positive.
- We’ve extended dev tools - now you can see dev tools from the room list meaning you don’t have to go into a room in order to access it .
Improving notifications in general is also still in progress, next week we’ll be mapping push rules to improve settings pages and make them simpler for all users.
Our improvements to accessibility continue to be delivered also which we’re very excited about.
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
Ștefan says
Element version 1.10.11 is incoming with mention pill support in the rich text editor, bug fixes and performance improvements. We have also made various improvements to the timeline UI, improved our crypto stack and saw the first version of slash commands suggestions
A total rewrite of Element-iOS using the Matrix Rust SDK.
Ștefan says
This week in Element X,
- We have fixed various issues around sliding sync, improved notification handling and various root components
- We are making very good progress on OIDC and invitation support while work continues on media uploading and the room creation, room detail and user detail screens
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
benoit says
- Element Android 1.5.32 has been released and will be available soon for everyone. It includes a fix for the double read receipt observed on the timeline.
- On ElementX, we are making progress on Oidc support, we are improving the room list and the timeline rendering, user will be able to ignore and un-ignore other users, the app can now list invitations and the user can accept or reject them, and lots of other technical features like feature flags have been done.
uhoreg says
Messaging Layer Security (MLS) is an IETF standard for end-to-end encryption in messaging systems. We've been working on adapting it to work with Matrix, and implementing a proof-of-concept in Element web. You can view an demo of some of the early progress at https://scitech.video/w/sfMitVx1Zej4Yvvu3fAK5B, which shows creation of an MLS group and exchange of encrypted messages. But things are progressing, and this demo is already out of date. Keep an eye out for more demos.
Matrix SDK implemented in Elm.
Bram reports
After having received feedback from the Matrix and Elm community on the Chess client, it is now time for the final development phase: making the SDK developer-friendly so that a version
v1.0.0
can be published.The Elm SDK has received a large refactor, which includes the following changes:
- No more
Task
types! Everything is now packaged in aCmd
type from aTask Never VaultUpdate
type, which means that theVault
type handles all potential complaints for you.- When a
Cmd
fails and theVault
thinks it is wise to try again, it will sneak that one along with the nextCmd
you're planning on giving to the API. Feedback on this behaviour is welcome, this might still change before version1.0.0
.- Greatly improved documentation
The current plan is to implement filters so that the SDK will be butter smooth sailing through that endless initial sync. There's still a few ambiguities left in the Matrix spec that are holding the SDK back as a pure and immutable language, but we're slowly getting there.
For demo purposes, here's a demonstration of how to get all named Matrix rooms from your client:
rooms : List String rooms = vault |> Matrix.getRooms |> List.filterMap Matrix.Room.name
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
Jonas Platte says
Since our last update three weeks ago,
- There were new releases of our JS crypto bindings: matrix-sdk-crypto-nodejs-v0.1.0-beta.4, matrix-sdk-crypto-js-0.1.0-alpha.7
- We updated logs and other debug info
- A bunch of functionality was added to the main FFI crate:
- And as usual, a bunch of bugfixes, cleanup and refactoring
imbev reports
activepieces is a No-code Business Automation Tool and a FOSS alternative to Zapier.
Following my pull request, activepieces has added support for sending messages to Matrix.
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.
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 | maescool.be | 488 |
2 | chat.braydmedia.de | 589 |
3 | anontier.nl | 664.5 |
4 | kohlernet.de | 690.5 |
5 | not-a.computer | 713 |
6 | matrix.org | 1654 |
7 | projectsegfau.lt | 2237 |
8 | 35c4p37h3m47r1x.ddns.net | 2441 |
9 | zemos.net | 3380 |
10 | aguiarvieira.pt | 4309 |
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 | 777.tf | 292 |
2 | zemos.net | 520.5 |
3 | dendrite.matrix.org | 624.5 |
4 | herkulessi.de | 682.5 |
5 | dendrite.kootstra.frl | 975.5 |
6 | matrix.org | 1246.5 |
7 | test.zemos.net | 1741 |
8 | midnightthoughts.space | 2755 |
See you next week, and be sure to stop by #twim:matrix.org with your updates!