Registration tokens is a feature introduced in Synapse 1.42.0, which allows homeserver administrators to force their users to use specific tokens when registering. This is similar to Synapse's registration shared secret support, but with added features, such as the possibility to limit how users can be registered with the same token, or to make a token expire. See the admin API documentation for more information on how to manage registration tokens on your homeserver.
Registration tokens were initially proposed to the Matrix specification in MSC3231 by Callum Brown during their Google Summer of Code internship last summer. The MSC has since been accepted, and released in the stable Matrix specification as of Matrix v1.2. As a result, its Synapse implementation has been updated to remove support for unstable identifiers. Administrators of homeservers on which the reverse proxy rules explicitly allow the unstable route for this feature need to update their configuration. Same goes for developers of Matrix clients that support this feature. See the upgrade notes for more information.
πTime-based cache expiry now enabled by default
To avoid being overly intensive on resources by making too many queries to the database, Synapse maintains several in-memory caches to store data it needs to use frequently. However, this comes with the inconvenience that, if Synapse needs to store too much data, these caches can become fairly big and occupy too much space in the host's memory.
Historically, Synapse has dealt with this issue by having set sizes for each cache, either hardcoded or set in the configuration, and evicting the oldest items when exceeding this size. Synapse 1.38 introduced the possibility for homeserver administrators to configure Synapse to evict cache entries based on the time they were last accessed on. This mechanism acts on top of the aforementioned eviction policy, and allows automatically evicting entries that haven't been accessed for some time, leaving more room in the caches to store data that needs to be accessed more often.
Synapse 1.53 enables this behaviour by default. Without specific configuration, Synapse will automatically evict cache entries that haven't been accessed for more than 30 minutes. Server administrators that were already using this feature might need to update their configuration, as this change deprecates the expiry_time configuration setting, which will be removed in a future version of Synapse. See the upgrade notes for more information.
You might have heard that we're working on improving the time it takes to join big Matrix rooms with Synapse. If not, then you definitely want to have a look at the demos Matrix live that was published earlier this month and includes more details and a demo of the work we've been doing in this area.
This release of Synapse includes an implementation of MSC3706, which is part of this work. It's still very experimental and definitely not production-ready, but it's a huge stepping stone towards making room joins snappier than ever.
We've also been continuing our work towards enabling end-to-end encryption for application services (see the Synapse 1.50 release blogpost for more context on that). Synapse 1.53 includes support for sending to-device messages to application services. This is also still very experimental, watch this space for future updates.
See the full changelog for a complete list of changes in this release. Also please have a look at the upgrade notes for this version.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including (in no particular order) Dirk Klimpel, Brad Jones, and Alexander Mnich.
The team behind Twisted, which is the main framework Synapse uses under the hood, recently released Twisted 22.1. This version fixes a security vulnerability within the Twisted library.
While preparing the release of Synapse 1.52, we have investigated the impact of this vulnerability on Synapse. We came to the conclusion that it does not affect Synapse. We however advise server administrators to ensure they use an up-to-date version of the library as a matter of good practice.
For instances installed with pip, the library can be updated with pip install --upgrade Twisted treq. For instances installed with the matrixdotorg/synapse Docker image or Debian packages from packages.matrix.org, updating to Synapse 1.52.0 is sufficient, as these images and packages include up-to-date versions of all dependencies.
It is also worth noting that a release candidate for Twisted 22.2 has been published, with a fix for a potential denial of service vulnerability with SSH. Administrators of Synapse homeservers that have the manhole feature enabled (which is the only feature of Synapse using SSH) are encouraged to ensure access to the manhole is correctly restricted (e.g. by preventing access from external locations).
This release of Synapse introduces a few admin APIs to help server administrators monitor and handle how their Synapse homeserver interacts with other federated homeservers. One of these APIs offers server administrators a way to visualise which rooms are shared between the local homeserver and a given remote one.
Another API allows server administrators to reset federation timeouts. If Synapse fails to connect to a remote homeserver, it will make note of the failure and will not retry the connection after a certain amount of time. This can happen if the remote homeserver goes offline or experiences connectivity issues. Synapse has a few ways of figuring out whether a remote homeserver has come back online, but this new admin API adds a way for administrators to manually tell Synapse a destination should be available.
This release also improves Synapse's deactivation behaviour by deleting account data when deactivating a user. "Account data" refers to private arbitrary data that is specific to an account. It is used among other things for secure server-side storage (SSSS) which allows securely backing up end-to-end encryption keys.
Please see the Synapse release notes for a complete list of changes in this release.
A long time ago, Synapse used to serve a very basic web Matrix client (named "console") that could be used to connect to the homeserver. Server administrators could chose to make it available to their users by configuring a webclient listener.
This web client was removed in Synapse 0.34 back in 2018, but the webclient listener stayed, instead allowing server admins to serve the web client of their choice (or redirect to it) through the web_client_location configuration file.
Synapse 1.53 will remove the webclient listener, as well as the ability to set web_client_location to a static directory (instead of a HTTP(S) URL). See the upgrade notes for more information.
The concept of server-side aggregation in Matrix is defined in MSC2675 and is the ability for homeservers to extend the information included in an event using other events that relate to it. This allows, for example, clients to quickly retrieve the reactions associated with a given message, or its latest edit.
This release includes a number of notable performance improvements to calculating aggregations when responding to /sync requests. We continue to measure and investigate potential performance improvements in this area, which should end up greatly benefiting /sync response times.
FOSDEM, one of the biggest gatherings around free and open-source software in the world, is happening next week! Just like last year, the conference will happen online and will be hosted on Matrix. And just like last year, it will be packed with super interesting Matrix-related (but not only) talks.
One new addition this year is the presence of a whole devroom dedicated to Matrix. It will be hosted on February 6th, and you can already find its whole schedule of talks right here.
This release includes a couple of spaces-related bug fixes, specifically related to the /_matrix/client/v1/room/{roomId}/hierarchy API. One of them in particular targets a bug in spaces that include more than 50 rooms, and should make it much easier to look for a specific room inside a space.
The synapse_review_recent_signups script, which allows homeserver administrators to review recent signups (e.g. in the event of a spam attack), was also improved with an option to exclude virtual users belonging to an application service from the results. See synapse_review_recent_signups --help for more information.
Please see the Synapse release notes for a complete list of changes in this release.
Welcome all for the first Synapse release of 2022: Synapse 1.50!
Note that, as per our platform dependency deprecation policy, Synapse no longer supports Python 3.6 and PostgreSQL 9.6 as of this version. As a result, we have also stopped shipping Debian packages for Ubuntu 18.04 LTS (Bionic Beaver), as it ships with Python 3.6.
As a reminder, please note that Ubuntu 21.04 (Hirsute Hippo) reaches its own end of life on January 20, 2022. Past this date we will stop producing new packages for Ubuntu 21.04.
Application services (sometimes called "appservices"), are privileged processes that can interact with a Matrix homeserver in a way a normal user cannot. This is especially useful for bridges, as it allows them to register and puppet multiple users on the homeserver to replicate activity from other platforms.
One of the main shortcomings of application services currently is that they do not support end-to-end encryption. This means that messages sent through a bridge are never encrypted and always visible by the homeserver.
We've recently started work to tackle this issue in the form of MSC3202. A first part of implementing this MSC (allowing application services to masquerade as specific devices) has landed in this release of Synapse; work is still ongoing towards a full implementation, so watch this space!
While working on this release, we identified a long-standing bug that could prevent Synapse from sending device lists update over federation if the server had a high number of active users and/or users with a lot of devices connected to their account.
This bug was introduced back in Synapse 1.0.0, and meant that the homeserver would miss some device list updates when communicating with other homeservers if the amount of updates to send was too high. In practice, this means users on remote homeservers could see outdated device information for other users (including outdated device verification statuses).
Synapse 1.50 includes a fix to this bug. This should contribute towards making the propagation of device list updates more reliable.
This release introduces support for MSC3419, which allows guest users to send arbitrary state events into a room. This will be especially useful to the ongoing work on group VoIP calls, which involves having users send new state events into the room to signal their participation in a call.
We've also stabilised identifiers for cross-signing and fallback keys now that MSC1756 and MSC2732 have been merged into the Matrix spec.
On the documentation side of things, the page on setting up and configuring a TURN server has been updated to feature instructions on how to deal with NATs. This is a much welcome addition as configuring TURN is something a lot of Synapse admins struggle with!
Please see the Synapse release notes for a complete list of changes in this release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including Dirk Klimpel, Donny Johnson and AndrewFerr.
Note: An issue preventing client logins (#11763) was identified immediately following the release of Synapse 1.50.0. We released Synapse 1.50.1 the same day with a fix for this issue.
Synapse 1.49.0 is the last version of Synapse to officially support Python 3.6 and PostgreSQL 9.6. This follows our platform dependency deprecation policy.
As a consequence of this, Synapse 1.49.0 is the last version of Synapse to support Ubuntu 18.04 LTS (Bionic Beaver), as it ships with Python 3.6.
On the topic of supported Ubuntu releases, please note that Ubuntu 21.04 (Hirsute Hippo) reaches its own end of life on January 20, 2022. Past this date we will stop producing new packages for Ubuntu 21.04.
Up until now, a lot of very useful information was stored on the Synapse repo's wiki, which wasn't well advertised nor well reviewed.
With this release, we have migrated most of this information to Synapse's documentation website, so all the information you need to set up, maintain and troubleshoot a Synapse instance lives at the same place. Included in these new pages are the server admin FAQ and a guide to Synapse's Grafana dashboard.
The media repository documentation has also been updated with a lot of details about how Synapse stores media files.
When a Matrix client needs to authenticate a request to a homeserver, it uses what is called an access token. Sometimes server administrators might not want a user's access token to live forever (e.g. for security reasons). To address this concern, MSC2918 introduces the concept of refresh tokens to Matrix.
Initial support for refresh tokens in Synapse was introduced in version 1.38.0. Synapse 1.49.0 finalises and stabilises this implementation, allowing any client that supports this feature to use it as it is currently described in the related MSC.
This release introduces the last changes needed to Synapse for basic threading support. It also introduces support for MSC3030, which allows clients to jump to a specific date in a room's history (expect a sneak peek of this in the next episode of Matrix Live!).
Another interesting point is the addition of a couple of admin APIs for federation. More specifically, they allow you to visualise all of the other homeservers your Synapse instance has been interacting with, as well as how successful the last attempts at communicating with them have been.
Please see the Synapse release notes for a complete list of changes in this release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including Dirk Klimpel, Maximilian Bosch and Tulir Asokan.
This is the last release of Synapse of 2021! The Synapse team will take a break for the holidays, pushing the next release of Synapse (1.50.0) to January 11, 2022.
We'd like to thank everyone who has been using Synapse, contributing to it, and/or supporting us for the past year, and we hope to see you again in 2022! π
NOTE: Synapse 1.49, due out on December 14th, will be the last release of Synapse to support Python 3.6 or PostgreSQL 9.6 per our platform dependency deprecation policy. Accordingly, we will remove support for Ubuntu 18.04 LTS (Bionic) at the same date, as it ships with Python 3.6.
This release removes the long-deprecated trust_identity_server_for_password_resets configuration option. This option was initially deprecated in Synapse 1.4.0 back in October 2019.
Admins of servers still using this configuration option will need to update their Synapse configuration to send password resets through an SMTP server directly rather than relying on identity servers to send them on their behalf.
πNew admin APIs and improved alignment with Matrix 1.1
This release also introduces a handful of new admin APIs, allowing administrators to un-shadow-ban users, block a room, and run specific background updates (but we'll talk about this last one a bit later on). The delete room API has also been updated to be able to run in the background or to block a room pre-emptively, even if the server doesn't know about it yet.
This release also brings Synapse into greater alignment with version 1.1 of the Matrix specification by adding support for API paths beginning /_matrix/client/v3 and /_matrix/media/v3.
When Synapse updates from one version to another, it might need to run large scale updates on its database. In order to avoid blocking startup for too long while waiting for these updates to run, Synapse runs them in the background after starting.
Lately the Synapse team has been doing some work to improve the performance of these background updates. More specifically, this release includes a performance fix for a background update introduced in Synapse 1.47.0, as well as a new admin API to let admins rerun specific updates.
This release also includes some improved support of MSC3440 to help threading. It also adds support for the stable identifiers from MSC2778, bringing Synapse closer to supporting end-to-end (or end-to-bridge) encryption support for application services.
We also now publish a Docker image, matrixdotorg/synapse:develop, which tracks the development head of Synapse.
Please see the Synapse Release Notes for a complete list of changes in this release.
Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including Dirk Klimpel, Stanislav Motylkov, Tulir Asokan and Neeeflix.
I'm taking over hosting This Week In Matrix again to give Ben a well-deserved break. Your favourite TWIM host will of course be back next week, but in the mean time, let's see what Matrix goodness has happened this week!
It's demo week again this week! We've got three great demos to share with you this month:
Robert, the latest addition to the Matrix VoIP team, gives us a sneak peek at his experiments with implementing native full mesh video calls in Matrix
Gil, from the Element iOS team, gives us an update on the implementation of Spaces in the app
and finally Ryan, who's been exploring ways to use Matrix beyond chat, shows us his shiny new full stack integration test solution for Matrix client and servers
And I hear there might also have been a bonus demo that managed to sneak its way lower down this post π
The Ansible community has adopted Matrix as an official place to chat (alongside IRC). We'll be updating our documentation in the near future, but our rooms all have aliases already - add "ansible.im" to your directory search, or join #space:ansible.im if you're in the Spaces beta. See you there!
Super psyched to welcome the Ansible community to Matrix!
Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://spec.matrix.org/unstable/proposals.
Room version 8 is due to land soon - which will bring restricted rooms to the masses. This is most useful in the context of Spaces, which allows granting access to rooms in a space based on a user's membership of that space (or another space!).
Today in not-Synapse news, we're getting ready for a new release of Sygnal, our reference implementation of a Matrix push notification gateway, early next week. The most significant change is that Shay, one of our Outreachy interns, has determined that Sygnal can function completely statelessly, removing the need for a SQLite or PostgreSQL database. This clears the path for proper horizontal scaling and high availability deployments of Sygnal.
On the Synapse side of the world, MSC3289: Room version 8 entered Final Comment Period (FCP) and we expect it to be merged into the Matrix spec over the weekend. If that occurs, we'll be on track to include support for this room version in Synapse 1.40 next week. Tune in next week to find out how that went!
Hey everyone, I want to release the first major version of Conduit in a few weeks and I need your help!
Almost all features are on the master branch already, so please try to deploy your own Conduit now and try to find bugs. See https://gitlab.com/famedly/conduit
State res has been tested a lot, so it's okay to join any public rooms (room version 6 preferred).
The barebones DEPLOY.md is the easiest and most tested way to install Conduit. We also have docker images, but I think the documentation still needs to be improved (please contribute if you can!)
Please open a gitlab issue for any problem you run into.
mx-puppet-teams is a new Microsoft Teams (Chat) bridge built on the mx-puppet-bridge platform. The bridge does not require admin privileges on the MS Teams side, so can be used by any user with access to Teams. It's currently using the public Microsoft Graph API, which comes with some limitations, but feature support is being improved.
Focus is currently on Chats (one to one, group chats, etc) rather than the main Teams rooms.
Still a fair amount of work to do, but it would be great to get feedback and comments from anyone who is interested.
The list of Matrix clients is getting larger and larger! And it's not only chat clients anymore! So I thought I'd experiment a bit this week by splitting them in two categories: messengers and non-chat clients. Let us know how you like this format in #twim:matrix.org.
Heya, we are very grateful for all the awesome translators helping us translate FluffyChat! Unfortunately, we aren't the best at managing such a huge effort as translating such a large app into so many different languages. As a result, suggestions went un-reviewed on weblate for long, people weren't able to submit translations, etc. We are very sorry for that, but want to work on fixing that! As, well, we are only really programmers with little time, we thought of asking for help from the community (you all!)! That is why we are looking for a translation manager for FluffyChat. No programming experience at all is required, it'd mostly be about managing our weblate and answering translation-related questions. If you are interested, please plop into our room #fluffychat:matrix.org and say so! (And ping Sorunome if you don't get answers). Looking forward to a where translations are managed better, and thank you again for everyone who did bite through all this and contributed translations so far!
So if you're into translations and want to help, feel free to let them know!
This week I added a sticker/emoji pack editor to Nheko. This means you now don't need to create packs manually in /devtools anymore, but you can create and edit packs much more conveniently. There are still some rough edges, but we expect to sort those out in the near future. Make sure you check out the demo video I recorded!
Furthermore LorenDB has been busy porting more of the remaining dialogs to Qml, dialogs should now float properly on Wayland and have a proper close button on KDE. We also fixed a few more encryption bugs, which means we should be able to mark E2EE as stable in Nheko soon and we cleaned up old cruft in the codebase.
And if that's not enough for you, since it's demo week, Nico's also showing off Nheko's brand new sticker goodness!
Ement.el, a new Matrix client for Emacs, continues to gain new features: deleting messages, showing room avatars, adding to reactions by clicking them, and new "mentions" and "notifications" buffers that show messages from multiple rooms in a single window. You can even reply to messages from any room in the Notifications buffer, which makes it easy to follow multiple rooms at once, rather than having to switch between rooms. (Room: #ement.el:matrix.org)
NeoChat is a desktop chat client for Matrix. It uses Kirigami to provide a convergent user interface on desktops (KDE Plasma, GNOME, Windows, and other desktops) and phones (Plasma Mobile and Android).
This week, we merged a few fixes related to login, logout and account switching making NeoChat crash less during those operations. Currently, we are working on a nice ways to show location events and adding the possibility of sending those events
MSC3289 has entered FCP, adding support for Room Version 8, which includes support for MSC3083 (Restricting room membership based on membership in other rooms).
Weβve been working on a tool for migrating communities to spaces, which will be available in Element Web
Weβre adding pagination to the Spaces Summary API to improve support for spaces with large numbers of rooms when browsing Spaces room lists
On iOS, weβve been working on suggesting Spaces in room lists
VoIP
Mute status signalling now landed on develop! Thanks again to Simon.
Web
Voice messages! Theyβre out on develop.element.io and planning to go out for release soon. Let us know if you run into any issues, or have suggestions on how to make it better.
Made Improvements to our changelog automation, which should lead to much more joyous changelogs
We merged initial client-side support for Posthog analytics, adhering to the userβs existing analytics opt-in preferences
Support for CSS hot reload, which has incrediblised working on Elementβs styling for designers and engineers
Some iteration and bug fixing to image blur hashes and message bubbles
Full steam ahead on threading, we have a backend for it in js-sdk
iOS
Same thing for voice messages as web ^
We started discussions (and experimenting) about SwiftUI for new features. Minimal target version is 11 but some new features, like notifications for keywords, users and rooms completion, etc, will be available for devices running iOS 13 (maybe 14).
We adopted Towncrier to manage our change logs. Check the contributing guide above for the rules we defined and how we use towncrier across our 3 iOS repositories
Blank notifications (βMessageβ) are being fixed and improved. There will still be a fallback notification content but it should happen less often. In this case, we will display βNotificationβ
In parallel, we are continuing working on performance improvements. We still target an instant start for XL accounts (with thousands of rooms)
Android
Same thing for voice messages as web ^ + fixed a rare crash
We fixed a regression that blocked message sending in an encrypted room. A new release is in progress
Sailtrix is a Matrix client for SailfishOS supporting basic end-to-end encryption. This week I've released its third iteration. Here's a list of features:
Logging in with username and password
Reading the past messages in a room (currently limited to loading 30 at a time)
Messages with basic formatting can be read (bold, italic, etc)
Sending messages
Sending messages in reply
Editing messages
Deleting messages
Starting direct messages
Ignoring and unignoring users
Viewing and downloading of images
Viewing of audio and video
Downloading files
Sending files
Accepting invites
Public room directory
Creating Rooms
Basic end-to-end encryption support (Late Alpha State)
All sensitive information including messages are encrypted at rest with Sailfish Secrets
You can download Sailtrix at https://openrepos.net/content/hengyedev/sailtrix
Two weeks ago I told you about our interns presenting at GUADEC. A video recording is now available. They kept busy in the meantime, with Alejandro landing work on display names and avatars (!801 and !802), and Kai working on room sorting in the sidebar.
In my absence, the rest of team Hydrogen has been hard at work to bring you the ability to send replies, thanks to Daniel, and to open the member panel when clicking through from the member list, thanks to Midhun. If all goes well, this should get released tonight. Next up, Midhun will start working on SSO login support, a feature a few people have asked about in the past π
Keys.quit keybind to exit the application, unbound by default
Keys.earlier_page and Keys.later_page keybinds to navigate the pages/chats history, Ctrl+H/Left and Ctrl+L/Right by default
Mouse button 4/5 can now be used to navigate the history
General.wrap_history setting, affects the behavior of history navigation
Keys.Rooms.Direct section, allowing keybinds to jump to specific rooms
Keys.Rooms.oldest_unread/latest_unread to jump to the room with the oldest or newest unread message, by default Ctrl(+Shift)+U
Keys.Rooms.oldest_highlight/latest_highlight, same as above but only considers rooms where you've been mentioned/replied to/etc, by default Ctrl(+Shift)+H
Ignoring users:
Ignore option in the context menu for room members
Ignore option when rejecting invites
Editable ignored users list in account settings
Invites and messages from ignored users are silently discarded.
Their display name, avatar and presence are removed.
They will also always be placed at the bottom of the room member list.
Status messages history in the left pane account context menu, and auto-suggestion for the status field.
The number of saved entries can be controlled with Presence.saved_status.
"Add another account" entry in the top left settings menu
Copiable room ID field in the room settings pane
Back button in account settings and server browser when the window is too narrow to show the side panes
Escape key handling in the account settings, server browser and add chat pages
Support for rendering HTML <hr> lines (markdown ---) in messages
Keys.messages.clear_all default keybind is now Ctrl+Shift+L
Keys.Account.AtIndex keybinds will consistently move to the corresponding account settings, instead of skipping to the first room if the account is expanded in the left pane
Keys.messages.open_links_files(_externally): ignore matrix.to user and room mention links
Presence:
Allow using the invisible mode on servers not supporting presence, which will still prevent sending typing notifications and read marker updates
Restore any previously set status message when reconnecting after being offline, unless another one has been set from a different client
Render set status message striked out while invisible/offline to indicate that it isn't being broadcasted
Error popup:
Multiple unexpected errors will be combined into a single popup, instead of opening a new one for every error
Report button now links to Github issues
More details shown for matrix errors
Messages:
Require a space after the # for markdown titles
Render matrix.to URL in messages as shorter hyperlinks
Fix error popup appearing when invalid room events appear in syncs
Fix parsing of URL in messages containing some special characters
Left pane rooms last message display: fix > quote right after another quote not getting colored
Fix the forgetting rooms feature
Fix rendering status messages containing HTML-unsafe characters
Fix chat bottom bar for invited/left rooms glitching at certain sizes or not properly updating when the room's state changes
Prevent theme animationDuration property from affecting the speed of loading spinners, progress bars, server ping indicators and image rotation button cooldown
Hopefully fix account presence stuck flickering between two states
The backend.errors.MatrixError: (200, None) error occurring on Synapse 1.38+ servers should be fixed by the latest matrix-nio commit, which is included in the new Mirage appimage and flatpak. For manual installs, make sure to run pip3 install --user -Ur requirements.txt again before rebuilding. For packagers, the commit will be present in nio 0.18.5, which will be officially released before tomorrow.
A collaborative whiteboard based on the [matrix] protocol. github
A lot has happened this week. The biggest task was the switch to a proper build system (the project now is based on yarn and webpack). This gave the opportunity to do lots of refactoring and code cleanup. Additionally there is now a spec for the whiteboard events which got implemented this week. For the ones who are curious, here is the file: spec
There are also a couple of new features and fixes. Most notably:
The Text tool was added. Text in different colors and sizes can be added to the whiteboard.
The Image tool was added. Images are uploaded and than rendered on the canvas (not yet published but will be available in a couple of days)
The styling was improved. There are less gray areas which I did not like and the corners are less round.
And the repository got a lot of love with more details in the readme and better code/folder structure.
There is now also a matrix room for feedback, issues and ideas: #TheBoard:matrix.org
Feel free to try it at: https://toger5.github.io/TheBoard/ (preferable not with your main matrix account)
Circles is an iOS app for end-to-end encrypted secure social networking and sharing, built on top of Matrix. Its goal is to provide a safe and convenient way for close friends and families to share things that they wouldn't post publicly -- e.g. for parents to safely share pictures of their kids.
Recent updates to the Circles beta include:
Support for use with any Matrix homeserver
Emoji reactions
Markdown formatting for posts and photo captions
Better support for larger screens (iPad)
The latest beta build of Circles (v0.90) is available from Apple on TestFlight
They've also added:
NOTE 1 - If you're using an existing account, you'll need to tap the "Advanced Options" on the login screen so you can give it your password for SSSS / encrypted key backup / recovery / etc. Otherwise Circles will try to use a login password that it generates with MSC 3265 so it can do everything safely using just a single password.
NOTE 2 - Circles is NOT RECOMMENDED for use on an account that you're already using for Matrix chat, for the above reason and more. If you do this, prepare to see lots of extra, weird rooms in Element / Fluffy / Nheko / whatever chat client you're using. Also if you decide to try this anyway, please let me know how it goes. :-)
NOTE 3 - Circles is not available yet in France. Sorry. I gotta update my encryption compliance documentation with Apple.
If you want to know more about this project, feel free to join #circles:matrix.org!
Version 2.0.0 of Simple-Matrix-Bot-Lib will be available on pypi soon with incompatible changes, so make sure to specify the version of Simple-Matrix-Bot-Lib in your dependencies to simplematrixbotlib >= 1.6.0, < 2.0.0 until your code is compatible with the new syntax. Check TWIM next week to learn more about the new changes.
I moved all the mautrix bridges and libraries to a fancy new org: https://github.com/mautrix
GitLab and/or Docker haven't invented redirects yet, so docker registries are split: the old dock.mau.dev/tulir/mautrix-* paths will keep working for old versions, but new images will be at dock.mau.dev/mautrix/*.
This week continues the regular K8s updates, with my Helm Charts seeing updates for element-web to 1.7.34 as well as a fix for handling IPv6 in the well-known listener for Synapse.
And because Synapse started feeling a bit lonely being the only one with a Helm chart, s7evink offered:
Well, Hi there TWIMers :P
I've been working on a helm chart for Dendrite (polylith/monolith (untested)), since i was sick of creating a single deployment for each component.
For now it's working as expected, but since I'm pretty new to creating helm charts, please let me know if there's something wrong/bad practice.
NOTE: Polylith is not yet supported by the developers!
Shout out to Ananace, for the awesome helm chart for Synapse, which was my inspiration! :)
Rejoice! Now Dendrite aficionados have even more ways to enjoy our next-generation homeserver!
I've released mxadm, a small CLI tool for Matrix room admin that I've been working on for a few weeks; more details here: https://erambler.co.uk/blog/introducing-mxadm/
Part of the ServerStats Project is to use the data to build various charts. This project is currently still in progress to be written using RLang.
This week new is a World Map of IP based locations of Matrix Servers. Be ware that the coordinates are quite rough due to the quality of the free maxmind databases used. The map data gets updated every 12h.
Also the website for those statistics got fully overhauled to feel more modern.
Check it out at https://stats.serverstats.nordgedanken.dev or the Source at https://github.com/mx-serverstats/server_stats_web_statistics
envs.net (@cblte:envs.net and @creme:envs.net) has forked the TU-Dresden matrix/element help documentation - https://doc.matrix.tu-dresden.de/en/ (used hugo ssg).
Our fresh help page can be found at: https://matrix-help.envs.net/ and now uses a simpler ssg called mkdocs.
We decided to fork the existing documentation of the TU-Dresden to make it easier to use. In addition, the project envs.net already uses mkdocs for its existing documentation.
The link to the Git repository can be found directly on the page. We look forward to improving it in the future and would also appreciate your help.
Feel free to use this documentation for yourself and create your own fork.
Hi everyone! Did you ever feel lost in the Matrix world? The room directory is big, but it's still hard to find something you like. Or are you a room moderator, but there is not much activity in your room because it doesn't have enough users?
This is why I want to share rooms (or spaces) I find interesting.
Ben is away this week for some well-deserved holidays (don't worry, he'll be back next week), so I'm filling in for him so you don't miss out on your weekly dose of Matrix-related news, let's do this!
It's demos week this week! Enjoy a selection of demos featuring: Spaces, low-bandwidth Matrix, Hydrogen notifications and bridging DMs between Gitter and Matrix!
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.
We're still working on improving our process for day-to-day MSC work, but small individual improvements seem to be adding up! Otherwise some members of the team came together and summarised the team's thoughts on MSC2190.
The 1.30 release focused on improving our resilience to interruptions in federation, both being smarter about what work we do, as well as improving the CPU and DB performance of the state_ids endpoint by at least an order of magnitude. Check the release post for full details.
...but also check out this graph (of that endpoint only) from an EMS host after deploying 1.30.0:
That ain't gonna bother us no more.
In other news, we've decided to try out GitHub Actions for automated testing of Synapse and will report back in a few weeks. Our hope is that this makes our CI more amenable to iterative improvement and outside contributions.
It's also worth flagging that the next release of Synapse, due in early April, will be the last to support Python 3.5.
v1.2.6 is out now with a guest account patch and some added libraries to the Docker image. It's a small one, but worth the upgrade when there's a few spare cycles to use :)
As always, if you run into problems or have questions, visit #media-repo:t2bot.io
Finally did what I've been talking about for a while, and got the Synapse chart I'm doing upgraded to the point where it won't require my own image any more, Version 2.0.0. (In fact, the chart will now deploy the upstream matrixdotorg/synapse image by default)
I also went through and fixed a bunch of things, refactored the worker config some to get it closer to the generic_worker setup, added configuration to include arbitrary values in .well-known (for Jitsi and the like), etc.
They've also added:
And just updated my Kubernetes image and Helm Chart for Synapse to the new 1.30.0 version - note that the image has been deprecated by now though, the chart is the new go-to way to get Synapse on Kubernetes.
And then, following today's 1.30.1 Synapse update:
I've pushed Helm Chart updates for Synapse 1.30.1 and Matrix Media Repo 1.2.6
We're working on bridging DM conversations between Matrix and Gitter. For our first iteration, you will be able to start a DM conversation with a Gitter user from Matrix. In the next iteration, we will allow Gitter users to start a DM conversation with a Matrix user.
The following is a small taste of what it will look like and will also be included in the upcoming Matrix live demo day.
Hydrogen 0.1.40 got released this week with support for push notifications (look to enable it from the settings) and some other smaller fixes.
(Note that because of a sygnal bug, push messages are sometimes failing to be delivered to mobile. This will be fixed in the coming days without any action needed if you already enable it before.)
If you want to know more about Hydrogen's new shiny notifications, check out this week's Matrix live (at the top of this post)!
Spaces are now testable on develop.element.io & matrix.org! Buyer beware: Theyβre in early beta, using unstable prefixes, so may break at any time. But you can test by enabling the Spaces labs flag while connecting to matrix.org or a Synapse development build
If youβd also like access to a test build for Android, weβre working out a better way to deliver test builds, but in the meanwhile let us know in the new spaces feedback room
Thereβs lots of rough edges, but weβre first focusing on polishing public spaces, and feedback is welcome in the spaces feedback room, or via GitHub issues
If you run an online community (using any platform), weβd love to talk to learn more about your general pains too, in you guessed it: the spaces feedback room
Watch this week's Matrix Live for a demo of the above!
VoIP
Not too much news this week, but look out for another connectivity fix in next weekβs element web release.
Web
Element Web 1.7.24-rc.1 on staging, including:
Additional VoIP call connection reliability improvements
Added invite option to room tile context menu
Improved cross-signing login flow
On develop / nightly:
Improved invite error handling
Search indexing errors now properly state the error, instead of asking you to use desktop (when you already are)
iOS
Element-iOS 1.2.7 is already available from TestFlight and will be available on the App Store on Monday.
Just pushed version 2.3.0 of the Matrix Ruby SDK, headline features include; Ruby 3.0 support (though might still be a few niggles in there, expect a 2.3.1 once it's been more tested), a complete redesign of the room data cache to improve memory usage and code quality, and general request additions that people were interested in.
I've written a simple little script that connects to CalDav servers and sends me a summary of the events for the day over Matrix. https://gitlab.com/uhoreg/matrix_daily_calendar I find it useful as I don't have enough meetings that I'm constantly checking my calendar, so having a message at the beginning of the day helps me remember the meetings that I do have.
πkrazykirby99999's guide to creating Matrix bots
krazykirby99999 shared with us their guide for creating simple Matrix bots in Python: https://www.reddit.com/r/matrixdotorg/comments/mdqitp/how_to_create_a_matrix_bot/
Hey everyone π One year ago I started to explore combining CRDTs with end-to-end encryption (Matrix's Olm/Megolm) to allow people to collaborate on the same documents/data. Couple months back I got a first prototype working and then evolved to a production ready app. Think of a simple Google Docs, but end-to-end encrypted and offline-first (iOS & Android for now).
Feedback, ideas and question are very welcome!
Website: https://www.serenity.re/en/notes
The app/client source is available here: https://github.com/SerenityNotes/serenity-notes-clients
This is not a project built directly on Matrix, but I thought it was a very cool use of Matrix's end-to-end encryption library, olm!