This Week in Matrix 2022-05-06

06.05.2022 00:00 β€” This Week in Matrix β€” Thib

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) reports

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

πŸ”—MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

MSCs with proposed Final Comment Period:

Merged MSCs:

  • No MSCs were merged this week.

"Wowza, that's a lot of new MSCs!" I hear you say. This is actually a listing of the last 3 weeks, as it was pointed out to me that the last 3 editions of TWIM have not all features an MSC status update - which means some MSCs may not have necessary made it into the limelight.

As such, here's those from this past week, as well as the ones that were missed!

πŸ”—Spec Updates

It's that time of the year again - a new Spec release is on the horizon! Matrix v1.3 is expected to land sometime this month, and will include:

  • MSC3440 (threads) + related MSCs
  • MSC3787 (knock+restricted join rules)
  • MSC3604 (room version 10)
  • Any other MSCs which have so far been accepted, but not yet made it into the spec.

MSCs which land between now and v1.3 might get incorporated if easy enough, though chances are they'll slip to v1.4 (expected next quarter).

On top of that, the other bit of news is that the proposal-in-review label has now been removed from the matrix-spec-proposals repo and thus all MSCs. This doesn't mean your MSC is no longer in review! We simply found the label redundant along with the other labels in the process (it was attached to all MSCs which hadn't been accepted/merged yet, which means very little) and thus we decided to remove it to reduce noise.

πŸ”—Random MSC of the Week

The random MSC of the week is... MSC2881: Message Attachments!

This MSC has actually been potentially(?) superseded by MSC3382. In short, both look to provide a solution to the problem of attaching (multiple!) images to messages, such that clients can display an album of images in a single event in the timeline.

Check it out if you're interested in introducing such a feature!

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Andrew Morgan (anoa) says

Synapse v1.58.0 was released this week! Check out the v1.58 blog post for the full scoop, but the highlights are:

  • Our Docker images and Debian packages are now built from a dependency lockfile courtesy of Poetry. Props to David for leading the charge on this multi-week epic.
  • An experimental implementation of MSC3383 has been contributed by @Bubu and @jcgruenhage at Famedly, which will help with proxying federation traffic, amongst other uses.
  • An experimental implementation of MSC2815 has been merged, which allows room moderators to view redact event content for the purposes of moderation. This was contributed by @tulir at Beeper.
  • Device list updates are now asynchronous thanks to Erik, leading to much faster login times for accounts in big rooms.
  • plus many other bug fixes and improvements!

We also released a v1.58.1 patch shortly afterwards to address an issue with the Debian packages on some configurations. Server admins not using the Matrix.org Debian packages do not need to install this patch release.

Otherwise, ongoing work from the core team continues with Sean and Rich working on faster room join performance, Olivier pushing forwards on testing Synapse with workers in Complement, while Erik has been tackling general performance work.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot reports

Hey folks! We're announcing our 1.6.0 release for matrix-hookshot today. More features in this release: tadzik has gotten involved and given us support for RSS feeds in this release. You can check out how to get going with those in our hosted documentation.

The highlights this time around are:

  • Add RSS/Atom feed support (#315)
  • Add support for GitLab in the widgets configuration UI. (#320)
  • Send a notice when a GitLab merge request gets some review comments. (#314)
  • Add new !hookshot gitlab project command to configure project bridges in rooms. See the docs for instructions. (#321)
  • New hookshot_connection_event(_failed) metrics for tracking successful event handling. Reinstate matrix_* metrics which were previously not being recorded. (#312)

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair announces

This week brings another round of big improvements & new features!

Features & fixes include:

  • Fixes to Docker support & the documentation for setting it up
  • Changes to the login flow
    • The bridge can now be configured to enforce a login flow that more closely matches the official KakaoTalk desktop client's, and to better warn you when a new login will kick out another one of your KT sessions. This will hopefully prevent the bridge from getting KT accounts banned!
  • Backfilling for KT->Matrix read receipts
  • Commands for adding/removing KakaoTalk friends
  • Commands to edit your KakaoTalk ID & mark it as shared or hidden
  • Matrix->KT DM creation, i.e. the ability to create a new DM with a KakaoTalk user from within Matrix
    • This might fail on the first attempt at creating a DM. If it does, try re-inviting the KakaoTalk puppet to the room.
  • Many stability & correctness improvements

With the combination of friends list curation & DM creation support, it should now be possible to connect with KT contacts entirely from Matrix! Simply add some friends, list them, and invite a listed friend to a 1:1 room!


πŸ”—matrix-appservice-irc (website)

Node.js IRC bridge for Matrix

Half-Shot announces

Hi folks, note that today (Wednesday) we released a high security update for the matrix-appservice-irc bridge. Please update to 0.34.0 as soon as you can.

πŸ”—Dept of Clients πŸ“±

πŸ”—Thunderbird (website)

Thunderbird is a free open-source email, calendar & chat app.

freaktechnik reports

This week we released Thunderbird Beta 101.0b1. It includes a bunch of bug fixes for the Matrix implementation and shows reactions as system messages, so you know when someone gives you a πŸ‘οΈ.

πŸ”—Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico reports

Someone on Twitter complained that no chat client works like MSN anymore, where you could have separate windows for each chat. So for MSN compatibility we added that. (It is a bit experimental still, expect some stuff to not work or crash)

Bulbu also went through a lot of effort to add a second set of emoji shortcodes to Nheko. Those should be more familiar to people coming from other platforms or clients while the old shortcodes are available still as well. We also saw a lot of progress on the Finnish, Chinese, Indonesian and Russian translations, animated images should work properly in the image viewer again, buttons for opening the member list are now clearly marked with a people icon next to them. The memberlist is also now search- and sortable.

Anyway, have a look at how important multiple windows are:

πŸ”—FluffyChat (website)

Krille Fear reports

FluffyChat 1.4.0 has been released with a lot of bug fixes, performance improvements and new designs. Take a look at the new designed sign up screen, which also now supports recommended homeservers from joinmatrix.org

Krille Fear reports

Full changelog:

  • design: Display icon for failed sent messages (Krille Fear)
  • design: Display own stories at first place and combine with new stories button (Krille Fear)
  • feat: Add "Show related DMs in spaces" settings (20kdc)
  • feat: Better image sending experience (Krille Fear)
  • feat: Display event timestamp if selected (Krille Fear)
  • feat: Faster image resizing (Krille Fear)
  • feat: Groups and Direct Chats virtual spaces option (20kdc)
  • feat: New onboarding design (Krille Fear)
  • feat: Onboarding with dynamic homeservers from joinmatrix.org (Krille Fear)
  • feat: Play audio messages in stories (Krille Fear)
  • feat: Use native imaging for much faster thumbnail calc on mobile (Krille Fear)
  • feat: add Dockerfile for nginx/web builds (TheOneWithTheBraid)
  • feat: allow to create widgets (TheOneWithTheBraid)
  • feat: remove diacritics (henri2h)
  • feat: irish language support (Graeme Power)
  • feat: Enable screensharing on Mobile
  • feat: support AppImage builds
  • feat: Improve spaces design
  • fix: Android theme is not auto updating when system theme changes (Krille Fear)
  • fix: Chat view becomes gray for a second on sending reaction (Krille Fear)
  • fix: Don't request new thumbnail resolution on every window resize (Samuel Mezger)
  • fix: Dont display own failed-to-send events in stories (Krille Fear)
  • fix: Hide markdown in chat list preview and local notifications (Krille Fear)
  • fix: Hide pinned events if event is not accessible or loading (Krille Fear)
  • fix: Image sending (Krille Fear)
  • fix: Make audioplayer waveforms thinner and better clickable (Krille Fear)
  • fix: Some story layout bugs (Krille Fear)
  • fix: Widgets dialog crashes (Krille Fear)
  • fix: login form supports switching fields via tab (Philip Molares)

πŸ”—Ement.el (website)

Matrix client for Emacs

alphapapa announces

Ement.el has received several updates since the last time it was mentioned in TWIM:

Additions

  • A new room list command, ement-taxy-room-list, shows rooms grouped "smartly" (and programmably). (It will be made the default soon; until then, call the command to use it.)
    • The new room list shows unread-notification/highlight counts, similar to Element.
  • Basic support for spaces:
    • Rooms (and spaces) can be added to and removed from spaces.
    • Rooms are listed under their spaces in ement-taxy-room-list.
  • Reactions can now be toggled off (i.e. redacted) by clicking them, like in Element.
  • Command ement-room-send-file allows uploading non-image files to rooms, and file messages are now displayed usefully, so the files can be downloaded or viewed.
  • Command ement-ignore-user ignores and unignores users.
  • Command ement-tag-room adds and removes favourite, low-priority, or custom tags on rooms.
  • Command ement-room-occur allows searching messages in a room buffer, similar to Emacs's occur command (i.e. it locally searches already-received messages).
  • Membership events are now coalesced by default, similar to Element (especially helpful in large public rooms, like bridged IRC rooms, where join/part spam can be overwhelming).
  • "In reply to" links in replies, as well as other matrix.to links, can be activated in a room buffer to go to the linked message.
  • Mentions in outgoing messages are HTML-linkified (aka "pilled"), like Element.
  • Generated avatars for rooms that have none, similar to Element. (Only displayed in ement-taxy-room-list for now.)
  • Option ement-shr-use-fonts (disabled by default, which prevents HTML messages from being displayed in a different font).
  • Faces for favourite/low-priority rooms.
  • Redacted messages that are still known locally are now displayed with a strikethrough (after reconnecting, their content will be unknown).
  • When images are disabled, image messages are presented as clickable URLs, so they can still be viewed.
  • Some events, like membership events and images, are displayed alongside a vertical bar to help distinguish them from normal messages.
  • Even "hotter"-looking timestamps for rooms updated in the last hour.

Changes

  • Refactored notification system. Now easier to configure (see M-x customize-group RET ement-notify RET).

Fixes

  • Improved error handling when looking up homeserver hostnames and .well-known URIs.
  • Improved error handling when processing malformed events.
  • "Elemental" display style (not used by many users, apparently).

Come join us in #ement.el:matrix.org!

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

kittykat announces

πŸ”—Element

Decryption

  • Progressing through implementing sharing keys for past messages (MSC3061)
  • Improved UTD (Unable to Decrypt) analytics to gather more insight on the most common errors faced by users

Community testing

  • Thank you all who joined the async community testing sessions.
  • We tested 51 cases and found 16 issues and potential improvements this week in the RC (release candidates) between all platforms
  • Next week, we are planning to test:
    • New search experience on Web
  • For more info on our next testing sessions (sync or async), you can join us at #element-community-testing:matrix.org!

πŸ”—Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

madlittlemods (Eric Eastwood) reports

In this months demos (also shown off at the top of the TWIM post), Eric showed off a proof of concept to anonymize your screenshots so you can easily include more context when submitting logs or bug reports without worrying where the bug occurred. The current concept will color block all of the text on the page to still maintain the structure of the app but completely hide the content itself.

This still has a ways to go before it's integrated in Element under the click of a button so if anyone wants to take over or give feedback, go comment on the issue, https://github.com/vector-im/element-web/issues/9615. If you want to use the anonymization now, you can manually run the JavaScript snippet from the issue in the browser devtools.

This mode could even be further extended further to include event_id labels in the corner of each message to easily correlate the logs to the screenshot.

Happy screenshotting!

kittykat reports

  • Continuing with UI polish and MSCs for releasing threads out of Beta:
    • MSC3771: Read receipts for threads
    • MSC3772: Push rule for mutually related events
    • MSC3773: Notifications for threads
  • We are testing out Sonarcloud, you’ll see comments from the sonarcloud bot in new PRs about bugs, vulnerabilities and other inconsistencies that it has found
  • Our first time user experience is getting some attention in Web. We’re working on simplifying a user’s first session as we know it can be pretty daunting
  • As part of our efforts to improve PR review times, we have put together some guidance on how to choose a good issue to work on
  • There have been some bug fixes and improvements around ending Jitsi calls
  • In labs (you can enable labs features in settings on develop.element.io or on Nightly):
  • Check out this week’s Matrix Live for a preview of video rooms :)

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Manu says

  • We’re thinking about new ways to give flexibility on the Home screen - watch this space!
  • The new Create Account flow is being implemented, currently we’re working on the captcha and T&Cs pages
  • Fix several crashes like when searching or when clicking bottom bar twice
  • Improve interaction with spaces which are in a space
  • ElementX-iOS
    • We are going to share more and more about ElementX-iOS, a complete rewrite of the Element-iOS app using matrix-rust-sdk. We made a prototype last quarter. The result was so promising that we want to go full steam on it
    • We are finishing the setup of the project to have a good developer experience
    • Then, we will attack user stories listed in this board that target the personal message use case
    • Watch the today TWIM video with Stefan, Manu and Thib for more details

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit announces

  • Work is moving forward with our proposals for a new app layout, we’re excited to share it with you
  • Our Create Account experience is still being updated, we’re currently working on ensuring that the Sign-in pieces work as expected
  • Fixed a number of crash bugs around calls, launching app and space list
  • Notifications have have been improved so that there is a noise for every notification which is received when they are enabled, in line with how web and iOS work
  • On the SDK side, we are working to improve / clarify / document the public API. It’s still in progress, but the generated API documentation is already visible here: https://matrix-org.github.io/matrix-android-sdk2/

πŸ”—Dept of Non Chat Clients πŸŽ›οΈ

πŸ”—Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr reports

Over the last two weeks, the theme in populus-viewer development has been permissions:

  1. The settings menu for rooms has been redesigned
  2. It's now possible to assign and remove standard roles (admin and moderator) from populus viewer
  3. It's now possible to set power levels for standard events and actions from populus viewer
  4. It's now possible to ban and unban using the membership management modal
  5. Redacting the messages of others is now exposed as an action for those with that permission.

Besides that, I've been having some fun on the css-overhaul branch reorganizing some design elements, and centralizing the color CSS in a few variables, opening the way for things like a dark mode and user-definable themes. Here's a peek at the new milder and more welcoming default look:

gleachkr says

The permissions work now has us at one thousand commits. Here's to the next thousand! πŸŽ‰ As always, if you want to learn more, follow project progress, or talk about the future of social annotation on matrix, come join us at #opentower:matrix.org.

πŸ”—Matrix Wrench (website)

Matrix Wrench is a web client to tweak Matrix rooms.

ChristianP announces

πŸ”—Matrix Wrench 0.7.0

I'm working on a few features for Wrench's anniversary on 13th June. Here's a bug fix for storing identities and a new button to check your membership status in a room.

  • Added: A "Am I a member?" button tells your membership state in a room.
  • Fixed: Unchanged identities got deleted from localStorage when editing identities twice.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict says

After a few release candidates and weeks later, we released Trixnity 2.0.0 today! It contains many breaking changes due to a large refactoring, which allows us to share a lot code between server and client implementations of the Matrix APIs. This means, that Trixnity can be used to implement matrix servers in addition to application services and clients!

Trixnity finally has support for Kotlin/JS. You can implement a browser client or even better: multiplatform client. Support for Kotlin/Native will follow soon (e. g. for iOS clients). Right now, there is no trixnity-client-store implementation for JavaScript (e. g. IndexedDB), so you need to stick with InMemoryStore at the moment.

Besides notification support (push rules are evaluated), we introduced helpers to get the complete timeline as Kotlin-Flow (no more complicated loops to get the timeline). You can even subscribe to all timeline events, which is really helpful to implement bots with e2e encryption support. Speaking of e2e encryption: libolm is bundled into trixnity-olm jars, so you don't need to build olm by your own anymore.

These are the most important features. For the complete changelog, have a look at the release candidates.

πŸ”—Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

Henri Carnot [famedly] announces

This week the team released version 0.9.0 which contains new features and some refactoring as many deprecated endpoints were removed so make sure to use the new ones when doing the migration. Support for the Element recent emoji (io.element.recent_emoji) was added. A new method to get the last read marker was added. Lastly, the timeline logic was enhanced, and it's now possible to load the timeline at a specific event. So you can load the room to the last event and then paginate through the new events. When reaching the last event, the timeline will automatically allow new events to be added in the timeline when received.

See you next week ;)

πŸ”—Dept of Ops πŸ› 

Cadair announces

I have spent the day ignoring more important things and trying to have something to TWIM. I wrote (yet another) GitHub Action for sending build status to matrix rooms. This action looks at all the completed jobs in your workflow and posts a combined status for the workflow as a message and reactions for all the individual jobs, inspired by the maubot GitLab plugin.

πŸ”—Dept of Bots πŸ€–

πŸ”—Sundar

Hyperbased in Hyperspace says

Hello together. I made a generic bot, named Safed Sundarata, or Sundar in short, that should make it easy to get basic special functionality working. It has a lot of different functionality so you have an example code to work off of. The main motivation for this bot was to provide an !error <code> command for the developers in the ReactOS Matrix Rooms, which translates error codes to human readable text. Then of course i added other useful or fun commands to the bot. You want to read the Readme to find out more. This is the first time i ever wrote a bot, so feedback and corrections to the Source Code are highly appreciated. It is written in Go using the mautrix-go framework (thanks tulir and everyone who worked on this making it easy!). Even easier is to run and build it with go, no insane build system with broken dependencies required, which was the reason why i made it from scratch.

πŸ”—MjΓΆlnir (website)

The moderation bot for Matrix

Gnuxie πŸ’œπŸ announces

πŸ”—MjΓΆlnir

We have released v1.4.2 of Mjolnir https://github.com/matrix-org/mjolnir/releases/tag/v1.4.2 which includes:

Bot:

  • A new JoinWaveShortCircuit protection, thanks to Jonathan with https://github.com/matrix-org/mjolnir/pull/280. This protection can be used to detect a mass-join scenario and set the room to invite-only.
  • Change of behaviour: Mjolnir will now apply server ACL and member bans to the most recently active rooms first (while syncing). The order was random before.
  • The causes of errors at startup (e.g. via misconfiguration) have been made more clear.
  • The image with the latest tag on dockerhub is now correctly in sync with the main branch.

Synapse Module:

  • The python module version is now in sync with the current git tag.
  • The Readme's example config has been fixed (thanks to Maranda ).

πŸ”—graim (website)

A bot to moderate communities bridged with Discord via matrix-appservice-discord

luphoria announces

I am releasing a brand new moderation bot, graim! This bot allows you to moderate communities that are bridged with Discord via matrix-appservice-discord. You can tie a Matrix account to a Discord account, and moderate both platforms seamlessly from either end! Graim supports one Discord server and as many Matrix rooms as you want, per instance. :) You can run it yourself from the Github - https://github.com/luphoria/graim You can join the matrix space, which is bridged to the Discord server

πŸ”—Dept of Events and Talks πŸ—£οΈ

andybalaam says

I'm streaming every week live coding Rust and Matrix at https://twitch.tv/andybalaam and https://andybalaam.uk.to (Owncast). Feel free to join me as I write a Rust Matrix bot. I'm currently on a side quest to add Redis support to the matrix-rust-sdk crypto store. You can watch past streams at diode.zone/a/andybalaam.

πŸ”—Dept of Ping πŸ“

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.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maunium.net271.5
2envs.net388
3aria-net.org472
4matrix.nkrw.art687
5quyo.de719
6computerlie.be809
7magdeburg.jetzt847.5
8mindlesstux.com877
9alemann.dev1008
10fab.network1196

πŸ”—#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1matrix.awesomesheep48.me310
2conduit.grich.sk445
3dendrite.s3cr3t.me455
4cry.is579
5foxo.me738
6beckmeyer.us752
7grin.hu1142
8sspaeth.de1255.5
9forlorn.day1680
10pohiijekpkd55sbbrcbufkner2wkq3lcv7ruyxwjsgimrb5acbiupead.ml1813

πŸ”—That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.58 released

05.05.2022 00:00 β€” Releases β€” Brendan Abolivier

Synapse 1.58 is out! Let's dive into this new release.

πŸ”—Poetry

If you've been reading the past few Synapse release announcements, you might have already heard about our efforts to integrate Poetry into Synapse. Poetry is a tool which manages dependencies of a Python project. Its killer feature is its lockfile, which explicitly pins all dependencies (direct and transitive) to a fixed version, even across multiple Python versions and platforms. See more about why we choose Poetry here.

During the past few months, we've been hard at work converting Synapse and its CI to use Poetry. The goal is to make our Docker images and Debian packages more reproducible and to provide a fixed, known-good environment for CI. This will help us to ensure the stability and security of Synapse installations.

Synapse 1.57's Docker image was the first to use Poetry; after a successful trial, this was extended to Synapse 1.58's Debian packages. Installations from PyPI using pip will not use the locked environment, though everyone is welcome to install from source using our lockfile.

Huge props to David from the Synapse team for leading the work on this front.

πŸ”—Everything else

This release of Synapse also includes performance improvements around sharing device list updates, which should greatly improve login times for large Matrix accounts.

Synapse 1.58 also features the implementation of two MSCs: MSC3383 to include a destination parameter in federation authentication headers, and MSC2815 which (if enabled) allows room moderators to see the content of a redacted event (as long as it hasn't already been deleted by the homeserver).

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) Beeper, Dirk Klimpel, Famedly and Sami Olmari.

0.34.0 security release for matrix-appservice-irc (High severity)

04.05.2022 11:02 β€” Releases, Security β€” Tadeusz SoΕ›nierz
Last update: 04.05.2022 09:27

We've released updates to matrix-appservice-irc and our forked node-irc that it depends on to patch a High security vulnerability. It's advised to update to 0.34.0 as soon as possible.

The vulnerability allows an attacker to manipulate a Matrix user into executing IRC commands by having them reply to a maliciously crafted message.

Incorrect handling of a CR character allowed for making part of the message be sent to the IRC server verbatim rather than as a message to the channel.

If you are currently a matrix-appservice-irc user, exercise caution when replying to messages from untrusted participants in IRC bridged rooms until your bridge instance has been upgraded.

The vulnerability has been patched in node-irc version 1.2.1 and matrix-appservice-irc 0.34.0. You can get the release on Github.

The bridges running on the Libera Chat, OFTC and other networks bridged by the Matrix.org Foundation have been patched.

The vulnerabilities are tracked as GHSA-37hr-348p-rmf4 and GHSA-52rh-5rpj-c3w6.

Thank you, Val Lorentz for reporting this vulnerability.

This Week in Matrix 2022-04-29

29.04.2022 19:05 β€” This Week in Matrix β€” Thib

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

Thib says

Taking my GNOME Foundation hat on for this news: the GNOME Foundation is adopting Matrix! Is this TWIM worthy? It probably wouldn't have been if it wasn't for all the great work of Gwmngilfen! We published a joint blog post (though in all fairness Greg did all the heavy lifting) to explain how the decision was taken, and transparently share the data we had at hand.

In practice that means after years of Matrix being around in the GNOME community and being the most popular platform, it's finally moving out of the grey zone of "everyone is using it but some older contributors really like their current set up, so it exists but it's not officially our primary platform". For now we're keeping both our Matrix instance and the bridge to GIMPnet (the IRC network GNOME people have been using for years). The major change is that IRC is now our legacy, so if tradeoffs have to be made Matrix will keep the premium experience.

Again, huge shout out to Gwmngilfen who gave meaning to the data I handed to him.

https://blog.ergaster.org/post/20220425-adopting-matrix/

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) reports

πŸ”—Spec

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

πŸ”—MSC Status

New MSCs:

MSCs with Proposed Final Comment Period:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

Merged MSCs:

  • No MSCs were merged this week.

πŸ”—Spec Updates

Hello again everyone! Your regularly-scheduled TWIM Spec update has returned, along with graph-based media!

Quick news to point out this week is that a new maubot plugin has been written to simply note the details of MSCs after their IDs ("msc1234") have been posted in a room. The bot supports multiple MSC IDs in a message, message edits, threads and end-to-end encrypted rooms.

A copy of the bot is currently running under @mscbot:matrix.org, so feel free to invite it to a room if you'd find that useful!

πŸ”—Random MSC of the Week

The random MSC of the week is... MSC3216: Synchronized access control for Spaces!

This MSC serves as an alternative to MSC2962, and essentially allows for user permissions to be simultaneously enforced across a set of rooms in a Space. This would allow functionality to users of platforms like Discord, where a user can be a moderator in a guild, and thus in all of that guild's channels.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

richvdh says

A few operational issues have taken up quite a bit of the team's time this week, but we've still found time to cut a couple of release candidates of v1.58. Highlights include:

We're also excited to see quite a few contributions from outside the core maintenance team: thanks to Dirk, Beeper, Famedly and everyone else in the community who has made pull requests!

Meanwhile on the core team, Sean has been continuing to lay groundwork for faster room joins, and Olivier has been doing some exciting work so that we will (finally) be able to test Synapse in worker mode under Complement.

πŸ”—Dendrite (website)

Second generation Matrix homeserver

neilalexander says

This week we announced Dendrite 0.8.2 with a bunch of usability fixes. As always, join us in #dendrite:matrix.org for more discussion and updates.

πŸ”—Features

  • Lazy-loading has been added to the /sync endpoint, which should speed up syncs considerably
  • Filtering has been added to the /messages endpoint
  • The room summary now contains "heroes" (up to 5 users in the room) for clients to display when no room name is set
  • The existing lazy-loading caches will now be used by /messages and /context so that member events will not be sent to clients more times than necessary
  • The account data stream now uses the provided filters
  • The built-in NATS Server has been updated to version 2.8.0
  • The /state and /state_ids endpoints will now return M_NOT_FOUND for rejected events
  • Repeated calls to the /redact endpoint will now be idempotent when a transaction ID is given
  • Dendrite should now be able to run as a Windows service under Service Control Manager

πŸ”—Fixes

  • Fictitious presence updates will no longer be created for users which have not sent us presence updates, which should speed up complete syncs considerably
  • Uploading cross-signing device signatures should now be more reliable, fixing a number of bugs with cross-signing
  • All account data should now be sent properly on a complete sync, which should eliminate problems with client settings or key backups appearing to be missing
  • Account data will now be limited correctly on incremental syncs, returning the stream position of the most recent update rather than the latest stream position
  • Account data will not be sent for parted rooms, which should reduce the number of left/forgotten rooms reappearing in clients as empty rooms
  • The TURN username hash has been fixed which should help to resolve some problems when using TURN for voice calls (contributed by fcwoknhenuxdfiyv)
  • Push rules can no longer be modified using the account data endpoints
  • Querying account availability should now work properly in polylith deployments
  • A number of bugs with sync filters have been fixed
  • A default sync filter will now be used if the request contains a filter ID that does not exist
  • The pushkey_ts field is now using seconds instead of milliseconds
  • A race condition when gracefully shutting down has been fixed, so JetStream should no longer cause the process to exit before other Dendrite components are finished shutting down

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair announces

The bridge should finally be at "Good Enough" status--and to celebrate, I've bumped the version to 0.2.0 πŸ₯³

Features & fixes include:

  • KT->Matrix file messages
  • Matrix->KT room leaves
    • To leave a KT channel from Matrix, issue the !kt leave command in a portal room.
  • Ability to name the virtual "device" for the KakaoTalk login session created by the bridge
    • This makes it easier to distinguish between multiple login sessions of the bridge
  • Improvements to KT->Matrix joins, kicks, and admin status
  • Many significant stability & correctness improvements
  • Docker support
    • This is currently in the testing branch until I can confirm that it works properly

I've also opened a PR to showcase this bridge on https://matrix.org/bridges/ πŸ˜ƒ


Discussion: #matrix-appservice-kakaotalk:miscworks.net Testing room: #kakaotalk-bridge-testing:miscworks.net / https://open.kakao.com/o/gjGQFuae Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues

πŸ”—Dept of Clients πŸ“±

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

Danielle says

Threads

  • The Threads Beta is live! Turn it on in Labs

    • Let us know your feedback as we continue to work on this feature.
  • The next step for Threads is improving our notifications and push rules on threaded messages. We’ve drafted some MSCs and are excited to move them forwards.

Community testing

  • Thank you all who joined the async community testing sessions.

  • Next week, we are planning to test:

    • Improvements to the new search experience on web
    • Video rooms!
    • And the new release candidate
  • For more info on our next testing sessions (sync or async), you can join us at #element-community-testing:matrix.org!

πŸ”—Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle says

  • We have increased our pool of issue triagers, so expect to meet more of our web team on GitHub

  • Published epic issue for our tech strategy for 2022

  • The way that read receipts are displayed in rooms with lots of people has improved

  • In labs (you can enable labs in settings on develop.element.io or on Nightly)

    • Focusing on resolving last issues with threads, currently blocking on MSCs for read receipts for threads and push rules for mutually related events
    • Video rooms are getting ready to enter beta!

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Danielle announces

  • The leaving space experience is now in line with web: you can leave all rooms, none of the rooms or only selected ones
  • Our first time user experience and create account flow is being improved.
  • Started prototypes for IA experiments. We’re hoping to make the app much easier to use and will test out new interactions and patterns to see what works for users.

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

Danielle reports

  • Hard at work fixing bugs - we’ve squashed one where the UI would freeze after incremental syncs and we’ve also made improvements to the read line and read markers.
  • Our team is still working on the sign up flow. It’ll be ready soon and we hope that new-to-element users will find it much easier (and less scary) to create an account and get chatting.
  • We’ve started designing and building prototypes for a new home experience; we’re excited to start experimenting with ways we can simplify our app.

πŸ”—Dept of Non Chat Clients πŸŽ›οΈ

πŸ”—Thirdroom (website)

A browser-based open metaverse client

Matthew reports

lots of exciting progress happening on Third Room - an open metaverse client powered by Matrix: https://github.com/matrix-org/thirdroom/discussions/47

πŸ”—Matrix Wrench (website)

Matrix Wrench is a web client to tweak Matrix rooms.

ChristianP says

v0.6.2

  • Added: A "Remember login" checkbox lets you decide whether to store an access token in localStorage.
  • Added: The room lists now have external matrix.to links.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

Jonas Platte announces

Our last update included the words "if things go to plan", and even though that's usually calling for trouble, not so this time! We released Ruma 0.6.0 yesterday and apart from a tiny missing feature that was fixed and released as 0.6.1 today, everything went smooth πŸ™‚

The biggest breaking changes are

  • new owned identifier types – calling .to_owned() on &UserId now gives you an OwnedUserId instead of Box<UserId>
  • a new event enum hierarchy, where redacted events are better taken into account

Also, with this release we can now claim practically 100% coverage of Matrix v1.2, that is you can send and receive requests for all specified endpoints of the various APIs, as well as send and inspect all specified event types, all with a strongly-typed Rust API.

πŸ”—Dept of Ops πŸ› 

πŸ”—matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi reports

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy can now set up the Buscarron bot. It's a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room

See our Setting up Buscarron documentation to get started.

πŸ”—Buscarron (website)

Web forms (HTTP POST) to matrix

Aine reports

the Miounne's successor is here - meet Buscarron!

There were no news about miounne for a while because we worked on a new "iteration" that can handle matrix encryption (thanks to the mautrix-go).

So, here is it - Buscarron v1.0.0 with e2e encryption and multiarch (arm32, arm64, amd64) support. It can handle any HTTP POST/HTML form and send it to a (encrypted) matrix room. Of course, Buscarron has small neat features like spam checker and rate limiter.

etke.cc is migrating to Buscarron and deprecating Miounne.

Go check out the source code and say hi in the #buscarron:etke.cc

πŸ”—Dept of Bots πŸ€–

πŸ”—Location streams bot for MSC3489

ChristianP announces

I wrote a small, extensible bot that replays GPX recordings as a location sharing stream. This is an implementation of MSC3489: Sharing streams of location data with history and may help you debug the feature or see it with real world data. Join my Space to see this in action (with the Element Web Labs feature): #geo-trackers:iot-staging.ems.host or run the bot with your own rooms and GPX files. https://gitlab.com/jaller94/matrix-location-sharing

πŸ”—Opsdroid (website)

An open source chat-ops bot framework

Cadair says

Opsdroid 0.26 has been released this week. Included in this release are some improvements to the Rasa NLU parser if you want natural language training for your matrix bots as well as some small documentation improvements to the matrix connector and other bug fixes. Big thanks to Oleg for many of the changes as well as all the other contributors.

πŸ”—Matrix Community Manager (website)

The highly configurable message aggregation and filtering bot for matrix!

Sleuth reports

Matrix Community Manager has seen some work in the features department over the past week.

With the new Ansible playbook I think it's possible for someone with a bit of Ansible experience to get this bot up and running in under 10 minutes. I did a fresh install in 4 minutes. That is a fresh VPS and creating a new matrix account. Instructions for the Ansible deploy can be found here.

The major features are:

  • An Ansible playbook that should simplify the installation process for new users.
  • Edits to the message that triggered the bot will now be reflected in the bots message. This bot now has a feature Twitter doesn't have :laughing:.
  • Hashtags are now called filters. Filters are more customizable allowing for custom delimiters and now show the originating room.
  • The AutoJoin feature has filters to control who or from where invites will be excepted.
  • Announcements can have more than one output room. Using a comma separated list of room ids.

A few bugs were fixed as well:

  • Some text characters were causing messages to be classed incorrectly thus causing crashes.
  • Exotic characters specifically in links were causing crashes.

Come chat on Matrix

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—Matrix Meetup Berlin

ChristianP says

We're meeting on Fri, 6th May at 6:30 PM in the c-base. Please join us, if you're looking for locals who work with Matrix and use it regularly. Our Matrix room is Matrix Meetup Berlin.

πŸ”—Dept of Ping πŸ“

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.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1maunium.net259
2envs.net315
3neko.dev366
4carnot.cc481
5tchncs.de562.5
6jeroenhd.nl588
7broccoli.town604.5
8kohlernet.de762
9matrix.cirk2.de867
10quyo.de1126

πŸ”—#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1carnot.cc294
2matrix.sum7.eu389
3cry.is499.5
4foxo.me654
5rustybever.be693.5
6matrix.awesomesheep48.me898
7beckmeyer.us899
8sspaeth.de991
9dendrite.matrix.org1370.5

πŸ”—That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-04-22

22.04.2022 00:00 β€” This Week in Matrix β€” Thib

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

dmr says

Hello again everyone. This week the team released Synapse 1.57.0, followed by a 1.57.1 patch release that fixed a problem in the 1.57.0 docker image.

This week was a little on the quieter side again, with some of us away on holiday and others away with illness. Nevertheless, this week develop saw a variety of activity. Some personal highlights:

  • Shay's effort to document Synapse's numerous config options landed. This is a huge and comprehensive effort that'll help administrators to understand all the options they have to configure Synapse.
  • Further progress from Rich on the fast room joins project. In some tests we've seen a 5x speed-up over the status quo!
  • A subtle bugfix from Erik which corrects incorrect counts in one of the Admin API endpoints.
  • The remainder of the poetry work has landed. There were a few last-minute complications in CI to smooth out, but we've now finished the migration. Synapse's docker images and debian package now come with a fixed set of dependencies (even transitive ones) in a way that lets us support multiple Python versions and interpreters.

We're looking forward to shipping these in Synapse 1.58, whose RC is scheduled for Tuesday the 26th of April.

I'm also keen to see how PR 12522 from Rich and Olivier progresses. It aims to fix a nasty memory bug which can cause Synapse to get stuck in an OOM loop.

As ever, I'd like to express thanks to our community of users, server operators and contributors. Thanks are also due to @callahad: today is his last day of managing the Synapse team. We're all going to miss him and wish him well: thank you for everything you'd done over the last year and a half.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—Heisenbridge (website)

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Release v1.12.0 πŸ₯³

  • Make MAXLINES and PASTEBIN option available to every room & global defaults (thanks @BtbN)
  • Fix 'NoneType' is not iterable error (thanks @BtbN)
  • Upgrade to Mautrix 0.16

Not much to see here. A small contribution release which is always a nice thing when people come around and help πŸ€—.

Go and get some β˜€οΈ sunlight from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

πŸ”—Dept of Clients πŸ“±

πŸ”—Sailtrix (website)

Sailtrix is a matrix client for SailfishOS

HengYeDev says

Summary of development this week

  • Sailtrix is fixed on Sailfish 4.4, which added sandboxing to all apps
  • Sorting is fixed in the favorites tab
  • The create room dialog is fixed
  • Some validation is added to the login page
  • Sharing with other apps and bluetooth is added for newer Sailfish versions
  • SSO seems to be working, still in testing

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

kittykat announces

Location sharing

  • As a follow on from our previous launches, the team is building β€œlive location sharing”. This will allow you to automatically share where you are in the world with others for a period you choose (15 minutes, 1 hour, or 8 hours), instead of sending a single static location.

Community testing

  • We ran our first async community testing session this week. Thank you all who joined in! We found 13 issues so far, which is good going.
  • We have some new features landing for the search experience on Web, join us for testing from Thursday!
  • You can join us at #element-community-testing:matrix.org to find out more!

πŸ”—Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Danielle says

  • Threads is in Beta! The team is hard at work smashing bugs and improving notifications so that we can remove the beta label and get everybody access to our new feature!
    • If you’re using Threads, don’t forget to give us your feedback.
  • This week the team discussed how our Web product looks and feels to new users. While we use our own products all the time, it can be good to take a step back and ensure that our product decisions benefit all users, including the newbies. Watch this space for more info in the coming weeks as we continue to trial things that we hope will make onboarding to Element easier.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Video rooms are coming together nicely, with the addition of lobby screens and room list stickiness to wrap up the design implementation

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Manu announces

  • The newest version of the app (1.8.13) is ready! In this release we’ve made a bunch of improvements and bug fixes, check it out here.
    • Our favourites include: Force touching room previews no longer update your read receipts, there’s a congratulations screen for new users when creating an account, and we’ve reduced the number of home page reloads.
  • Also new in product are presence indicators! From your home page or DMs you’ll be able to see if a user is present or away. Note; this is only supported if your homeserver has it enabled.
  • Upcoming; We’re working on adding β€˜mention pills’ when tagging users in a room.
  • Please note; We’ll soon be removing support for iOS 12 and iOS 13

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit says

  • The team is working on fixing bugs and making improvements to flows like β€œignore user”. We’ve also made some changes to the way we format code.
  • Element Android 1.4.12 is ready to be released but currently on hold in the Play Store due to rules around User Generated Content (UGC). We’re chatting with Google and the new update should be available soon.

πŸ”—Dept of Non Chat Clients πŸŽ›οΈ

πŸ”—Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr says

We've added two major user-facing features to populus viewer:

  1. A two-up view in the pdf viewer, allowing you to view and annotate two pages at once on a wider screen
  2. An audio viewer, complete with audio annotation, so that you can annotate temporal segments of an audio recording

I'm especially excited about the latter - being able to discuss audio recordings will be a great teaching tool, and I'm hoping it might also be useful for things like people who want to talk about podcasts together (for purposes of editing, or just for fun), and people who want to annotate recordings of public talks of various kinds. The last use case would also be pretty well served by video annotation - so that's now rising on the agenda. I've created an MSC, here where I'll be filling in the details of a proposed format for interoperable audiovisual media annotations. As always, if you've got questions, want to follow development progress, or just want to talk about the future of social annotation on Matrix, come join us at #opentower:matrix.org.

πŸ”—nheko-krunner (website)

A KRunner plugin to list joined rooms and possibly other things from nheko.

LorenDB says

nheko-krunner has finally been released! Version 0.1.0 contains several handy features such as searching your rooms, joining new rooms, and starting and switching to direct chats. Furthermore, if a room has unread notifications, nheko-krunner will let you know by tacking on a notification count to the room name (e.g. This Week in Matrix (TWIM) (1). Currently this feature is not disable-able, but I plan to dive into writing KCMs (KConfig Modules) soon so that I can add a toggle for this.

Hopefully a few people find this handy, and remember that if you don't use KDE, nheko still has a handy D-Bus API that you can use to write integrations with other software.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—matrix-rust-sdk (website)

Matrix Client-Server SDK for Rust

Jonas Platte says

Over the last weeks, we've been doing a lot of refactoring in preparation for the 0.5.0 release, but we also

πŸ”—Matrix Dart SDK (website)

Matrix SDK written in pure Dart.

Henri Carnot [famedly] says

We haven't done any regular posts about it in a while, but the SDK sees almost weekly releases. (We did release version 0.8.20 last week) If you forgot about it, the Matrix Dart SDK is the SDK FluffyChat, the Famedly clients and a few others use. Let me summarize some of the changes for those who haven't kept up:

One of the killer features is probably WebRTC support πŸš€. It handles all the signalling for you, which makes integrating call support into your Flutter or Dart Matrix client fairly simple. Currently it supports version 1 of the call protocol, which is still an MSC and implements a few of the other MSCs. Experiments with group calls are still in progress.

We also switched databases a few times and tuned it more (we posted about FluffyBox last year). The database backend should now be a lot more stable and more performant, while also using less memory.

Continuing with stability, we worked a lot on how the timeline is stored and structured, leading to a much more robust experience. The SDK is also now completely nullsafe πŸŽ‰, which gets rid of a lot of annoying error modes. There were some fixes to E2EE here and there, but mostly the experience has been really solid and didn't need much work.

Some of the more recent developments include widget support as well as improving the file upload experience. The SDK now inserts a dummy event for a pending upload, images are thumbnailed and resided in a different isolate and uploads are automatically retried after a connection failure. We are also working on improving the push support, making it easier to fetch events from a push.

And I'm currently working on bringing fragmented timeline support. Nico told me it would be pretty (not) easy to do... and IΒ have to say, he was right. Good first issue πŸ™ƒ

See you next week ;)

πŸ”—Dept of Ops πŸ› 

πŸ”—Nix-matrix-appservices

Pacman99 announces

I've created a NixOS module, nix-matrix-appservices, that can simplify the bootstrap and maintenance of matrix appservices on nixos. With it, appservices can be spun up easily with registration and tokens handled by the module. Most mautrix and mx-puppet bridges have been tested to work and they can be setup in a couple lines of nix code. There are plenty of options you can make use of to configure more complex appservices. You can find the the code, matrix room(gitlab badge), and usage information here: https://gitlab.com/coffeetables/nix-matrix-appservices

πŸ”—Synatainer (website)

Synapse Maintenance Container – Docker container with tools for synapse & postgres database maintenance

saces announces

Synatainer v0.4.0

New since v0.3.x

  • autocompressor have only one setting
  • add a golang tool stui - synatainer terminal ui
  • replace the vacuum shell script with stui

stui is a typical golang binary, it's also available as stand alone version from the release page

For now it can only do a full vacuum and show some rugged formatted database info

[docker run -it --rm registry.gitlab.com/mb-saces/synatainer:latest] stui vacuum-db --help
[docker run -it --rm registry.gitlab.com/mb-saces/synatainer:latest] stui db-info

The doc have a lot of space for improvements…


Start the container without command and let do its magic :)

What it does by default:

  • daily:
    • purge all rooms without local members
    • run the state autocompressor (500/100)
  • weekly:
    • delete old remote media (>90 days)
    • delete old message history from public joinable rooms (>180 days)
  • monthly:
    • vacuum the database

Source: https://gitlab.com/mb-saces/synatainer

Room: #synatainer:c-base.org

Compose example: https://gitlab.com/mb-saces/synatainer/-/snippets/2264828


If you are looking for a docker container with just the auto compressor for linux amd64/arm64 in it, her you go: https://gitlab.com/mb-saces/rust-synapse-compress-state

πŸ”—matrix-docker-ansible-deploy (website)

Matrix server setup using Ansible and Docker

Slavi announces

Thanks to Julian-Samuel GebΓΌhr (@moan0s) - moanos [he/him], matrix-docker-ansible-deploy can now help you set up matrix-registration-bot - a bot that is used to create and manage registration tokens for a Matrix server.

See our Setting up matrix-registration-bot documentation to get started.

Slavi says

Thanks to Aine of etke.cc, matrix-docker-ansible-deploy can now set up Borg backups with borgmatic of your Matrix server.

See our Setting up borg backup documentation to get started.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—MinesTRIX (website)

A privacy focused social media based on MATRIX

Henri Carnot announces

just did release V.1.5.5 today, this is the last update since a few months ago.

Some of the changes are:

  • feat: compliance to the latest version of MSC3639: Matrix for the social media use case
  • feat: added images support for posts. You can now send multiple images in a post and display them in a gallery view.
  • feat: New emoji picker, you can now select and react to message in one continuous press.
  • feat: Comments nesting, (using threads)
  • feat: Image comment (read only :()
  • feat: Dark theme support
  • feat: New settings page (added a lab section :D, seems you need to have one if you want to build a proper Matrix client)
  • feat: proper emoji support for desktop. Thanks fluffychat :)
  • feat: Initial story support
  • feat: various UI enhancements.

Concerning the messaging feature:

  • feat: Initial poll support
  • feat: read only spaces support
  • feat: room list search box
  • feat: chat settings dialog
  • feat: read receipts list dialog
  • feat: reaction list dialog
  • feat: now use rounded avatar. Let's be consistent with other clients.
  • feat: better display for replies and m.notice.
  • feat: Localization support thanks to the Matrix Dart SDK

And some work already in for multiple profiles support, and profile as space (just use a public space to store your profile rooms).

If you are interested, come say hi in the room.

PS: You can also help us to design the underlying MSC, especially, we need some opinions on how to name things (the profile rooms) the room !!

πŸ”—Dept of Ping πŸ“

We know you missed it, 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.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net359.5
2intothecyber.space443
3tedomum.net468
4maescool.be693
5jeroenhd.nl729
6jauriarts.org734
7alemann.dev855.5
8nevarro.space969
90wnz.at998
10quyo.de1494

πŸ”—#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1nognu.de278
2cry.is391
3rustybever.be558
4sspaeth.de700.5
5beckmeyer.us911
6grin.hu981

πŸ”—That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.57 released

19.04.2022 16:28 β€” Releases β€” Brendan Abolivier

Hey everyone! Guess what? Synapse 1.57 has just been released! Let's see what's new in this version!

πŸ”—Application services

Application services are piece of software that have privileged access to some of the homeserver's features. For example, they can create and manage multiple users at the same time, which is especially useful for bridges.

This release of Synapse changes the way Synapse manually manages transaction identifiers when talking to application services (a transaction being a group of events the application service should know about). While this doesn't have much impact on the everyday life of a server administrator (besides fixing a bug and paving the way for future performance improvements), this change means server admins should take extra care when updating Synapse.

More specifically, if you are running a dedicated Synapse worker for handling traffic related to application services, this worker must be stopped when upgrading the main Synapse process to ensure the update is performed safely. See the upgrade notes for more information about this change, and instructions on recovering from an incorrect upgrade.

This release of Synapse also continues work on bringing end-to-end capabilities to application services, which I was already telling you about in the Synapse 1.50 release blog post. More specifically, Synapse now supports sending device list updates to applications services, as part of implementing MSC3202. This is still very experimental and definitely not production ready, but also very exciting!

πŸ”—Improvements to the module system

Modules allow third-party developers to expand Synapse with extra features that wouldn't necessarily fit into the Matrix specification and/or ecosystem. In the past release of Synapse, we have been improving this system to add more functionality to it, and this one is no exception!

Synapse modules can now implement new callbacks to react to account data updates, as well as to react to new 3PID (email address, phone number) associations. On the latter, note that this callback will only be called after a 3PID has been validated on the homeserver, and does not trigger when the validation happens on an identity server (e.g. when publishing a 3PID so that other users can look it up).

The ModuleApi (which is the Python class enabling modules to interact with Synapse) has also been updated to allow module to read and write global account data. This can be done by using the new AccountDataManager class, which can be accessed as api.account_data_manager (where api is an instance of ModuleApi).

The module API has also been updated with a new method, to allow modules to promote an existing user to server administrator (or demote a server administrator to a normal user). This follows up on an improvement introduced in Synapse 1.56 allowing modules to promote users to server administrators when registering them.

πŸ”—Everything else

This release also includes a performance improvement for workers handling /sync requests. While this change makes starting this kind of workers slightly more heavy performance-wise, it aims at improving the load associated with the first /sync requests hitting it right after starting. See this comment for more details.

Synapse 1.57 also now includes bundled aggregations in message search results by default, as MSC3666 has been accepted and has finished its final comment period.

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) Beeper, Dirk Klimpel, Famedly and Jorge Florian.

This Week in Matrix 2022-04-14

14.04.2022 19:16 β€” This Week in Matrix β€” Ben Parsons
Last update: 14.04.2022 19:10

πŸ”—Dept of Servers 🏒

πŸ”—Conduit (website)

cel says

  • Gained v9 room support on next branch: https://gitlab.com/famedly/conduit/-/merge_requests/257
    • Binaries available here: https://gitlab.com/famedly/conduit/-/blob/next/DEPLOY.md#installing-conduit
    • v9 rooms enable private rooms to allow access to members of a Space or other room without a separate invite.

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

dmr reports

Hello everyone. This week the Synapse team cut a release candidate for Synapse 1.57. It contains:

As ever, our warmest thanks to to our contributors for sharing their time, effort and expertise with the project. We look forward to seeing your work in the wild, come the 1.57 release proper on Tuesday the 19th of April.

On develop, we have been powering through a number of different tasks:

Speaking personally, my efforts to manage Synapse's dependencies using poetry are coming to a close. As I write this, I've just submitted my last (planned!) PR for this project. It's been several months in progress now, and there were many moving parts; some unexpected bugs in poetry and even one in pip; plus a heck of a lot of CI config to change and understand. My sincere thanks to the broader Synapse team for their help in getting the last batch of changes made, reviewed and merged. Once this is all said and done I hope we'll all reap the benefits of

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-hookshot 1.5.0 (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot reports

Hey webhook-consuming-people! The hookshot webhook bridge 1.5.0 update has now been released. This release is a bit softer than 1.4.0, containing some smaller features and bugfixes. Thanks to everyone who contributed!. The highlights are:

  • Allow specifying msgtype for generic webhook transformations. (#282)
  • Add new GitHubRepo config optionnewIssue.labels which allows admins to automatically set labels on new issues. (#292)
  • Allow priority ordering of connection command handling by setting apriority: number key in the state event content. (#293)
  • Support GitLabpush webhook events (#306)

The matrix-docker-ansible-deploy playbooks have also been updated to be 1.5.0 compatible :)

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair reports:

A Matrix-KakaoTalk puppeting bridge.

This week brings many new features:

  • KT<-> Matrix message deletion/redaction
    • Note that KT doesn't allow deleting a message if it's too old, so Matrix->KT redactions will fail for old messages.
  • KT->Matrix user name/avatar live updates
    • As opposed to only being updated on backfill / manual sync
  • KT<->Matrix read receipts
    • Caveat: KT->Matrix read receipts are only updated live, not on backfill / manual sync
  • KT->Matrix member join/leave
    • Only joins were tested so far, but leaves should work too
  • KT<->Matrix admin status / power levels
  • KT->Matrix channel name, description, and cover photo
  • General stability & usability improvements
  • systemd setup instructions

I've also launched an instance of the bridge & opened a public portal room for testing purposes:

Logging in to my bridge instance is restricted, but Matrix users can still join the room thanks to the magic of relaying!

At this point, I'd say the bridge is now fairly usable. Please try self-hosting if interested!

Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues

πŸ”—Dept of Clients πŸ“±

Matthew reports

A new GTK4 matrix client called gotktrix surfaced on HN, written in Go with a bespoke matrix client SDK implementation. Looks impressive!

πŸ”—Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico reports

After a long and arduous journey, LorenDB's dbus interface for Nheko got finally merged. Currently this allows you to list rooms as well as switch between them. In the future we might add simple messaging support, so that you can automatically send messages into specific rooms using scripts. The API is disabled by default, since it is not authenticated. Enable it at your own risk!

Another long standing PR, that finally got merged, was MTRNord (they/them)'s support for pretty power level formatting. Nheko can now tell you what changed in a power level instead of just telling you that it changed. This should make them much more accessible to users, that don't like looking at the raw event source all the time (weird, eh?).

The image viewer should also be more reliable now and notification counts should be correct after a restart.

We have also been playing around with qt6 support. At this point we have a working Qt6 branch, with a few functional regressions:

  • No voip (gstreamer has no Qt6 support yet)
  • No drop shadows on buttons
  • No switchable color schemes

So far Qt6 looks pretty great and seems to fix a lot of the minor annoyances.

We are also still looking for some student or interested individuum to take part in the Google Summer of Code and improve the call support in Nheko! Deadline is drawing close, so if you intend to apply, better work on your proposal quickly! If you need any feedback for your proposal, feel free to DM me and ask me to review it/questions. I'm looking forward to someone applying! <3

Anyway, merry christmas everyone or whatever you are celebrating this weekend!

πŸ”—Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

kittykat announces

  • Threads Beta is live, find it in Labs!
    • As always, check it out and let us know what you think.
  • We’re aligning on a style guide and a new module system (links will be shared once both are finalised)
  • Added our first Cypress test - this will improve how we create and run e2e (end to end) tests. The tests will continue to be run by CI.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Continuing to get a native lobby screen for video rooms together

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Manu announces

  • We will inform users in the next release that we will no longer support iOS12 and 13. It will be effective the release after, i.e. April 25th.
  • We had a big drop on UTDs (Unable to Decrypt errors) since 1.8.8.
  • We are setting up the ElementX-iOS project to rewrite the Element-iOS app. It will be based on SwiftUI and the Matrix Rust SDK. The roadmap is available here.

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

kittykat says

  • Element 1.4.11 is available on the PlayStore and on F-Droid. Release notes: https://github.com/vector-im/element-android/releases
  • We may experience some delays in shipping the app through the Android PlayStore as we are in discussions about whether not decrypted messages should be reportable
  • Cleanup to the SDK API has landed on develop - this will help with generating API documentation and migrating to the Rust SDK
  • Roadmap for migration to the Rust SDK

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

kittykat announces

Threaded Messaging

  • Exciting news this week; the Threads Beta is live on all platforms! If you haven’t seen Threads yet, head to Settings > Labs and check it out.
    • Please note; If your homeserver doesn’t yet support threads functionality you may not see the beta, or your experience will be degraded. If this applies to you, you’ll see a warning message before you activate Threads.
  • The team is continuing to squash bugs and improve performance, we’ve also started working on the next improvements…
  • Notifications and badges are top of mind for us next. We need to ensure accuracy of badge counters and consistency between platforms (if you use more than one). We’re looking at this now so keep your eyes peeled for our upcoming MSCs.

Community testing sessions

  • We are restarting our testing sessions! Join #element-community-testing:matrix.org to take part
  • We are trying out a new asynchronous format with office hours for discussion to enable more people to be involved

πŸ”—Dept of Encryption πŸ”

πŸ”—libolm

uhoreg reports:

libolm 3.2.11 has been released. This release mainly features improvements to the Objective-C and Java bindings, but also fixes building of the documentation, which was broken for quite a while. For more details, see the release notes.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

Jonas Platte says

Over the last two weeks, we have been busy working towards the 0.6.0 crates.io release of Ruma. If things go to plan, it should be published in the coming weeks (but no promises). That means mostly finishing some large refactorings, but we also got some bug fixes in, as well as a number of convenience functions for working with certain events:

πŸ”—Dept of Internet of Things πŸ’‘

πŸ”—HASSkbot - Home-Assistant ask bot

Oleg reports

HASSkbot can be used to control an action in Home-Assistant via Matrix reactions.

It's an Opsdroid bot, which reacts to a home-assistant entity state change (like person leaving a zone) and asks for confirmation in Matrix if it should run additional home-assistant automation. Matrix reactions are used for confirming or canceling an action.

πŸ”—Dept of Bots πŸ€–

Arya K reports

Merseklo is now out of beta it is a moderation bot for matrix written in pure bash with the only deps being jq and curl

πŸ”—Honoroit (website)

A Matrix helpdesk bot

Aine reports

benpa is back in town and I can't keep silence: here is a small update on Honoroit - v0.9.6 comes with "stable spaces" support that will work with new versions of element (yes, even on Element Android from F-Droid).

Go check the source code and say hi in the #honoroit:etke.cc

πŸ”—Dept of Events and Talks πŸ—£οΈ

πŸ”—DWeb Camp

cel reports

DWeb Camp 2022 website and registration launched: https://dwebcamp.org/

  • August 22-24 BUILD; August 24-28 CAMP; Aug 28-29 TAKE DOWN.
  • Camp Navarro, CA, USA
  • Announcement: https://matrix.to/#/!WBhcGXTDMlzyTPWoJv:matrix.org/$164991727237835sdywy:matrix.org
  • Volunteer: https://dwebcamp.org/participate/
  • Apply for fellowship: https://dwebcamp.org/fellowships/
  • Sponsor: PDF

DWeb Camp is a gathering hosted by Internet Archive and volunteers dedicated to Decentralized/Distributed web projects. Previously it happened in 2019, and Matrix had some presence there. Maybe people from Matrix projects and/or Matrix.org will be there this year?

πŸ”—That's all I know 🏁

Come back next week for a much restored TWIM! With Matrix Live, Spec updates, Dept of Ping and so on. :D

See you next week, and be sure to stop by #twim:matrix.org with your updates!

This Week in Matrix 2022-04-08

08.04.2022 19:27 β€” This Week in Matrix β€” Ben Parsons

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Status of Matrix 🌑️

Matthew announces

https://arewep2pyet.com is finally here as a tracker for our progress on P2P Matrix

πŸ”—Dept of Spec πŸ“œ

TravisR says

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

πŸ”—MSC Status

Merged MSCs:

  • No MSCs were merged this week.

MSCs in Final Comment Period:

New MSCs:

πŸ”—Spec Core Team

In terms of Spec Core Team MSC focus for this week, we've been largely looking at proposals which are at or near FCP in an effort to get them through the last stages of the process. We're also thinking about what the next release (v1.3) looks like and when we'll end up putting it out into the world. If you have MSCs which you'd like included, please stop by the #sct-office:matrix.org on Matrix with your suggestions - if they're near enough, we'll try to get them in.

πŸ”—Random MSC of the week

The script has elected MSC3391: Removing account data as the random MSC this week. It's a small but interesting MSC which helps clean up account data on the server when it's no longer needed, though how this sort of removal gets represented to clients can be a challenge. It's currently missing an implementation if someone is looking for a medium complexity contribution this weekend πŸ˜‰

πŸ”—The Chart

So many MSCs are in the open state, which is why we're continually looking at merging MSCs which are ready to go.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Brendan Abolivier reports

This week, we've released Synapse 1.56! It includes only a couple of new features but quite a few bug fixes and internal improvements. One of the main changes included in this version is that Synapse will now refuse to start if configured with open registration with no verification (e.g. email, recaptcha, etc). This is an attempt at reducing the likelihood of spam across the federation, as most cases of abuse we've observed over time usually involves the attacker(s) finding homeservers with open registration and automatically creating a lot of accounts on them in order to evade sanctions.

This version of Synapse also deprecates the groups/communities feature of Matrix. This is a feature we introduced back in 2017, and was the predecessor of Matrix spaces. But now that it has been mostly replaced by spaces, we have decided to retire this feature, which we thank dearly for its 4 years of good and loyal service to the federation.

Read all about this, and more, in the release announcement on the Matrix.org blog! πŸ™‚

πŸ”—Dendrite / gomatrixserverlib (website)

Second generation Matrix homeserver

neilalexander announces

This week we released Dendrite 0.8.0, which is primarily a feature release, and then Dendrite 0.8.1 which fixes an emergency bug. It's also a recommended upgrade if you are running a Dendrite deployment. It includes:

  • Support for presence has been added

    • Presence is not enabled by default
    • The global.presence.enable_inbound and global.presence.enable_outbound configuration options allow configuring inbound and outbound presence separately
  • Support for room upgrades via the /room/{roomID}/upgrade endpoint has been added (contributed by DavidSpenler, alexkursell)

  • Support for ignoring users has been added

  • Joined and invite user counts are now sent in the /sync room summaries

  • Queued federation and stale device list updates will now be staggered at startup over an up-to 2 minute warm-up period, rather than happening all at once

  • Memory pressure created by the sync notifier has been reduced

  • The EDU server component has now been removed, with the work being moved to more relevant components

  • It is now possible to set the power_level_content_override when creating a room to include power levels over 100

  • /send_join and /state responses will now not unmarshal the JSON twice

  • The stream event consumer for push notifications will no longer request membership events that are irrelevant

  • Appservices will no longer incorrectly receive state events twice

Our sytest compliance numbers are now:

  • Client-server APIs: 83%
  • Server-server APIs: 95%

As always, join us in #dendrite:matrix.org for more news and discussion.

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot says

πŸ”—Matrix-Hookshot: The one with the widgets release

Hello webhook fans! As teased last week, configuration widgets have landed in hookshot! 1.4.0 now contains all you need to setup your very own webhooks without having to leave the comfort of your GUI. The plan is for widgets to be greatly expanded over the new few releases to support more services. Eventually, this work is going to propagate out to other matrix.org bridgey projects πŸŒ‰.

The full feature list for this release looks a bit like:

  • Add support for configuring generic webhooks via widgets. (#140)
  • Show the closing comments on closed GitHub PRs. (#262)
  • Webhooks created via !hookshot webhook now have their secret URLs sent to the admin room with the user, rather than posted in the bridged room. (#265)
  • Automatically link GitHub issues and pull requests when an issue number is mentioned (by default, using the # prefix). (#277)
  • Support GitLab release webhook events. (#278)

Update away, and let me know how you get on.

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair reports:

A Matrix-KakaoTalk puppeting bridge.

Many updates this week! New features include:

  • Mentions & replies, both incoming & outgoing
    • Small exception: Matrix->KT replies don't yet work in KT "open channels" yet.
  • Ability to create a portal by inviting a KT puppet to a DM
    • Note that this currently only works for KT direct chat channels that already exist & have been active recently.
  • Connection resilience between the Python and Node components of the bridge
    • i.e. If the Node component ever exits & restarts, the Python component will reconnect to it automatically. This helps both with deployment (since it allows the components to be started in any order) and crash tolerance (since a Node crash & restart no longer requires a manual restart of the Python component)
  • Clear warnings when receiving a KT message that the bridge doesn't yet support

At this point, the bridge should be fairly usable now. Very soon I'll open a Matrix-bridged KT channel to act as a public stress-test!

Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues

πŸ”—Heisenbridge (website)

Heisenbridge is a bouncer-style Matrix IRC bridge.

hifi reports

Heisenbridge roundup!

Heisenbridge is a bouncer-style Matrix IRC bridge.

Release v1.11.0 πŸ₯³

  • Fixed retry behavior on startup to wait for HS startup
  • Ignore TAGMSG messages from IRC server
  • Fixed HTML messages not working as commands
  • Fixed room aliases in messages dropping the message completely
  • Upgrade to Mautrix 0.15

Just your typical bug fix release but this release also breaks support for homeservers not supporting the "v3" API path so if you run Synapse 1.47 or older the bridge will not start. Sorry.

Go and get some spring cleaning from GitHub, PyPI or matrix-docker-ansible-deploy!

Thanks!

πŸ”—Dept of Clients πŸ“±

πŸ”—Thunderbird

freaktechnik reports

Thunderbird is a free open-source email, calendar & chat app.

The latest Thunderbird beta finally has Matrix support enabled by default. Get Thunderbird beta now to try it out. There have been many improvements to the Matrix implementation since the last update, including:

  • Almost complete end-to-end encryption support
  • Support for displaying formatted messages
  • .well-known home server discovery
  • Message redactions
  • Now all room invites let you respond
  • Lazy loading room members

πŸ”—Element Web/Desktop

kittykat reports

  • We removed skinning! It won’t be in the release this week, but will land in 2 weeks (roughly). If you notice bugs, please report them!
  • Threads Beta went into the RC!
  • Looking at a module system for extending functionality - if you have modules we haven’t talked about, come by #element-dev:matrix.org to let us know.
  • In labs (you can enable labs in settings on develop.element.io or on Nightly)
    • Work on video rooms continues, and we’re exploring how we can make them feel more native.

πŸ”—Syphon (website)

Chat with your privacy and freedom intact

0x1a8510f2 says

Syphon is a Matrix client with heavy emphasis on privacy and ease of use; currently in open alpha.

Hi all πŸ‘‹.

We released 0.2.13 this week mainly fixing an annoying bug that could cause messages sent while a configured proxy server was down to be re-sent multiple times once the proxy came back online. If you use a proxy with Syphon, this update is highly recommended!

In addition, this release will only show the option to use hidden read receipts if the feature is supported by your server.

Finally, a range of translation updates and improvements are included in this release.

More changes are coming soon, including a (currently work-in-progress) implementation of MSC2228 (self destructing events). As far as we know, we're on track to be the first user-facing implementation of this MSC, putting Syphon on the bleeding edge of Matrix!

πŸ”—Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico reports

Thanks to the awesome polyjuice client, Nheko now supports MSC3700, which slightly improves privacy in encrypted rooms. It also lead to us fixing issues with the secure symmetric secret storage, where some clients use a different base64 encoding than recommended in the spec, which could make unlocking the secrets with a recovery key or passphrase fail. And we also improved the key queries on initial login, which would sometimes fail to_device messages with a warning, that the device is unknown.

As a small feature, you can now close the currently open room using Ctrl-W, spaces are not treated as DMs under some circumstances anymore, you should get a less confusing error message than 500 when entering an invalid alias now and lots of fixes to the translations.

Thank you, LorenDB, Apurv and Mikaela for the contributions!

πŸ”—Hydrogen (website)

Hydrogen is a lightweight matrix client with legacy and mobile browser support

Bruno reports

Have released the SDK, v0.0.10 with custom tiles support. Calls and theming are getting closer, the latter we were planning to release this week but hit a blocker for theming support in develop mode, so we'll have to postpone to next week.

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Manu announces

  • Considering dropping support for iOS12 - this will impact 0.9% of sessions. Requiring iOS 13 or newer will allow us to use SwiftUI libraries.
  • You will be able to opt in to threads in the next release (currently in testing), alongside updates to room preview on long press in room list, ability to share any location and support for more languages

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

benoit reports

  • Release candidate 1.4.11 is currently available on the PlayStore if you are a tester. Should be pushed to production next Monday! F-Droid publication is in progress too. Learn more about the full release content here: https://github.com/vector-im/element-android/releases
  • Add banner to timeline when location sharing is running. Live Location Sharing (a.k.a. LLS) is still a work in progress and not available in the Element app yet.
  • Improved unit test coverage (especially around login with MXID)
  • Improved how threads look in the main timeline
  • Add notification for users to opt in to threads
  • Polishing around spaces to bring them into line with latest designs
  • Hotfix for leaving all rooms in a space without leaving the DMs. The hotfix is included in the release candidate 1.4.11.
  • We are considering modifying our rules to format source code. We will try to limit the impact on forks, but it will not be easy.

πŸ”—Dept of Non Chat Clients πŸŽ›οΈ

πŸ”—Populus Viewer (website)

A Social Annotation Tool Powered by Matrix

gleachkr reports

Since last time, we've made a lot of small quality-of-life improvements, but a few changes that stand out are:

  1. We've improved support for offline PWA usage.
  2. We've improved caching of space contents, reducing the number of times that we need to hit the spaceHierarchy endpoint and improving performance.
  3. We've moved to a more in-the-spirit-of-the-spec way of handling hidden annotations: these are now represented by rooms with an m.space.parent event, and no correpsponding m.space.child event in the resource-space.
  4. We've added a modal for viewing image messages at full-size.

Number 4 works nicely with my teaching-assistant-bot (built with matrix-bot-sdk, mathjs, and chartjs), which helps me visualize information about student activity.

MSC3752 - Markup Locations for Text, has also filled out quite a bit! Implementation coming soon hopefully.

As always, if you'd like to learn more, or talk about the future of social annotation at matrix, come join us at #opentower:matrix.org!

πŸ”—Matrix Highlight (website)

A decentralized and federated way of annotating the web based on Matrix.

Daniel announces

Matrix highlight saw some "under the hood" changes this week, in particular a refactor to rely less on the Chrome/Firefox extension API. This should make it possible (in theory, and with some more work) to run Matrix Highlight on pages without installing anything! Aside from the obvious, I think that there are additional use cases opened up by this change; one such case I have in mind is as a commenting system on a site (a la cactus comments, but with the ability to highlight page snippets!).

In the process of all of this, I've spent some time running Matrix Highlight in Firefox. I've encountered no issues during this time, so it seems like the tool is usable from FF, too.

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Trixnity (website)

Multiplatform Kotlin SDK for Matrix

Benedict reports

Trixnity 2.0.0-RC1 has been released. This release candidate contains many breaking changes due to a large refactoring, which allows us to share a lot code between server and client implementations of the Matrix APIs. Yes, that means Trixnity can be used to implement a matrix server! We also made some progress to make the client module (with all the high level logic) multiplaform. This is the only module, which does not support Kotlin/Native and Kotlin/JS yet. There are many other features (like client-side notifications!), which has been added. See the changelog for more details:

features/improvements:

  • clientserverapi-server: new module for server-side REST endpoints of the Client-Server-API (Server-Server-API will follow soon)
  • olm: libolm is bundled into trixnity-olm jars
  • client: push notification support (push rules are evaluated)
  • client: introduce helpers to get complete timeline as flow (no more complicated loops to get the timeline)
  • client: allow subscribing to all timeline events -> really helpful for bots with e2e support
  • client: allow to sync once (e. g. for push notifications)
  • client: content field of TimelineEvent gets also set for unencrypted events
  • client: public access to keys
  • clientserverapi-model: allow custom field in pusher data
  • core: introduce BaseEventContentSerializerMappings

bugfixes:

  • client: remove direct room, when other user leaves room
  • client: change varchar length to support MariaDB
  • clientserverapi-client: first sync after pause without timeout

πŸ”—simplematrixbotlib (website)

simplematrixbotlib is an easy to use bot library for the Matrix ecosystem written in Python and based on matrix-nio.

krazykirby99999 says:

An easy to use bot library for the Matrix ecosystem written in Python. https://matrix.to/#/#simplematrixbotlib:matrix.org

πŸ”—Version v2.6.3 Released!

πŸ”—2022-04-06 5f54f69

πŸ”—Notes:
  • The command matcher now has support for case-insensitive matches.
πŸ”—Additions:
  • Add case insensitive option to command matcher
πŸ”—Modifications
  • Update Pillow Dependency to version 9.0.1
πŸ”—Removals:
  • None
πŸ”—Deprecations
  • None

πŸ”—Polyjuice (website)

Elixir libraries related to the Matrix communications protocol.

uhoreg announces

Polyjuice Client Test is a testing tool for Matrix clients. Since the last TWIM update,

  • two new tests have been added: key history sharing (MSC3061) and no plaintext sender key (MSC3700).
  • more clients endpoints have been implemented or stubbed. This has improved compatibility with some Matrix clients, and reduced noise in the logs.
  • the deployment at https://test.uhoreg.ca/ now automatically runs the latest version from git. This Matrix-based continuous deployment is powered by another personal side-project, which will be revealed in the future.
  • the UI is now significant less ugly (unless you hate purple, in which case you may find it more ugly).
  • #polyjuice:uhoreg.ca now exists for discussing anything related to the Polyjuice project

πŸ”—Dept of Ping πŸ“

Dept of Ping will return!

πŸ”—That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!

Synapse 1.56 released

05.04.2022 00:00 β€” Releases β€” Brendan Abolivier

Happy release day everyone! Synapse 1.56 is out! Let's have a look at what's new in this release.

πŸ”—Additional restrictions around registration

One common abuse scenario we have seen on Matrix over the years is attackers making use of public homeservers with open registration to automatically create multiple accounts in order to evade sanctions. Sometimes, this can lead to these public homeservers being banned across multiple public rooms despite their administrator(s) not being directly at fault.

In order to mitigate this, starting from this release, Synapse will refuse to start by default if it is configured with open registration with no additional verification. This means users wishing to register on these homeservers will need to authenticate themselves, either via email, recaptcha or registration tokens.

Please see the upgrade notes for more information.

πŸ”—So long groups, and thanks for all the fish

Long-time users of Matrix might remember when, way back in 2017, we introduced groups (also known as communities in some clients). Groups would let users define a curated set of users and rooms to represent a given community that others could refer to. We even used to have +matrix:matrix.org which was the official group for the Matrix team and community.

If this sounds a bit familiar to you (and remind you of a certain other feature of Matrix), that's no coincidence. Some time ago, we had already identified a good amount of shortcomings with groups, and decided to redesign the feature entirely and release it under the name "spaces". If you're curious about this, then you may wish to read the spaces announcement blogpost we released at the time.

Now that spaces have been out of beta for some time, and have shown to be a very useful feature to the ecosystem, we decided it was time to retire support for groups from Synapse, after more than 4 years of good and loyal service. This release of Synapse deprecates the feature, with a plan to disable it by default in Synapse 1.58 (which is expected to be released next month).

πŸ”—Everything else

As of this version, Synapse will also refuse to start the if the Postgres database it is running against has a non-C locale, in order to prevent accidental database corruption. See the upgrade notes for more information.

This release also includes the ability for modules to register server administrators through the register_user method, as well as a new method to allow modules to store external 3PID associations into Synapse's database.

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, Beeper, Famedly, IronTooch and villepeh.

This Week in Matrix 2022-04-01

01.04.2022 19:05 β€” This Week in Matrix β€” Thib

πŸ”—Matrix Live πŸŽ™

πŸ”—Dept of Spec πŸ“œ

Andrew Morgan (anoa) reports

Here's your weekly spec update! The heart of Matrix is the specification - and this is modified by Matrix Spec Change (MSC) proposals. Learn more about how the process works at https://matrix.org/docs/spec/proposals.

πŸ”—MSC Status

New MSCs:

MSCs in Final Comment Period:

  • No MSCs are in FCP.

MSCs with Proposed Final Comment Period:

  • No MSCs had FCP proposed this week.

Merged MSCs:

πŸ”—Spec Updates

There's been lots of new MSCs this week! Three of them - those regarding state restrictions and subkeys - are related to the ongoing live location sharing work that Element is currently working on. See MSC3672 for the current state of the spec work for that feature.

Otherwise the spec core team has been reviewing a flurry of MSCs this week. This includes MSC3383 (Include destination in X-Matrix Auth Header), MSC3700 (Deprecate plaintext sender key) and MSC2246 (Asynchronous media uploads). Exciting things in the pipeline!

πŸ”—Random MSC of the Week

The random MSC of the week is... MSC2815: Proposal to allow room moderators to view redacted event content!

Another MSC in the sphere of moderation, and one that aims to put moderation control more in the hands of room admins rather than homeserver admins. A similar MSC in this realm is MSC3215 (Aristotle), which aims to send event reports to room admins, rather than homeserver admins that may not even have control over the malicious user.

πŸ”—Dept of Servers 🏒

πŸ”—Synapse (website)

Synapse is a Matrix homeserver implementation developed by the matrix.org core team

Brendan Abolivier announces

Happy Friday everyone!

In case you missed it, we've released the first release candidate for Synapse 1.56 on Tuesday. This one includes a couple new module-related features, but also quite a few bugfixes and internal improvements. I'll talk about this in more details next week when Synapse 1.56 gets properly released, but the key points of this release is that Synapse will now refuse to start if it's configured with unsafe registration settings (i.e. open registration without any form of verification) as well as if it's running against a PostgreSQL database with the wrong locale values. Have a look at the upgrade notes for more information about this.

Apart from that, the team still continuing work on the two main topics I've been mentioning in previous weeks: fast room joins and integrating poetry. The latter is getting reeeally close to the finish line now, as the pull request has recently entered the review stage. So watch this space for more exciting news on this topic!

That's all for this week, catch you all next time πŸ™‚

πŸ”—matrix-media-repo (website)

Matrix media repository with multi-domain in mind.

TravisR reports

MMR v1.2.12 is out now with a bunch of added features, removal of in-memory cache (per last release's deprecation notice), and some bug fixes.

Most notable are some added/improved support for JPEG XL, HEIF, and HEIC thumbnails, content ranges support (allowing the ability to skip to a part of a video), and a way to make the logs a bit quieter.

Give it a go and report issues to the issue tracker πŸ™‚

πŸ”—Dept of Bridges πŸŒ‰

πŸ”—matrix-hookshot (website)

A multi purpose multi platform bridge, formerly known as matrix-github

Half-Shot announces

It feels like one of these comes out nearly every month, which probably means we're doing something right! This release takes a step back and fixes quite a few of our more longstanding bugs and fixes many nits here and there. Please read the change notes carefully as some APIs have moved around and your load balancers / config may need adjusting. One final note is that this release drops support for Node 12, making the minimum version Node 14.

Once again, thanks to the wider Matrix community for filing bugs and submitting PRs, it's very much appreciated!

πŸ”—matrix-appservice-bridge 4.0.0

Half-Shot says

More updates! This week the bridge library itself gets a major update. We've made a few breaking changes, notably we now expect target homeservers to at least be Matrix v1.2 compatible. Also, this release brings the new "Provisioning and Widgets API" which allows developers to start creating HTTP APIs for their bridges which work for both provisioning mode (shared secret tokens) and widget API style (authenticating via Matrix OpenID token sharing). This stuff is still a little experimental, but it's starting to power our new experiments in the bridge world.

You can check out the release here

πŸ”—matrix-appservice-kakaotalk (website)

A Matrix-KakaoTalk puppeting bridge.

Fair announces

Media messages, both from or to KakaoTalk, are now supported! The biggest exceptions are inbound files & stickers. The latter may be a hard sell to get working, due to how KT manages stickers, but I'll look into it some more before giving a concrete answer.

The bridge is also now responsive to disconnects, like when you log in from another KakaoTalk desktop client (since the bridge mimics the desktop client, and KT only allows one desktop client to be logged in at a time!). Luckily, not all KakaoTalk APIs rely on the same connection that chatting does, meaning that some functionality can continue to work even when "disconnected". The bridge now takes advantage of this, meaning that profile-management commands (currently just the list-friends command) will work even if you get disconnected from chats for whatever reason.

The bridge is drawing ever closer to "good enough" status... Please give it a try if curious!


Discussion: #matrix-appservice-kakaotalk:miscworks.net Issue page: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/issues

πŸ”—matrix-appservice-irc (website)

Node.js IRC bridge for Matrix

Half-Shot reports

Heyo, we released a hotfix release for the IRC bridge this week. This fixed a rather nasty regression where the bridge would kick everyone from the Matrix side when a Matrix ban list is updated. People who aren't using the new ban lists feature don't need to upgrade.

Please check out https://github.com/matrix-org/matrix-appservice-irc/releases/tag/0.33.1 for more details

πŸ”—Dept of Clients πŸ“±

Michael says

The perthchat.org team has created their own Android client, a promotional fork of the popular Element Android client!

For more details checkout: https://news.perthchat.org/perthchats-new-android-app/ https://play.google.com/store/apps/details?id=im.perthchat.app

πŸ”—Nheko (website)

Desktop client for Matrix using Qt and C++17.

Nico announces

1.0 is a big number and a step not taken lightly. But Nheko has been in development for half a decade and we think it is time to take a step forward! As such we worked hard to fix readability issues in the app. Your messages should now be readable on any theme, because we send the first half as white text and the second half as black text (thank you, rrogalski for the contribution). For accessibility reasons this is enabled by default. We also added an improved typing indicator. Sometimes it is hard to notice when a message is too long, as such we gradually adjust the background color the longer the message gets. It also helps a lot, if you have a bad theme and can't read the text against the background color. Just enter a few characters and the background will change, so the messages should become readable. But that is not all! We all know some people have a harder time seeing colors than others. So for accessibility we also slowly rotate the screen, so that even if your display is monochrome, you don't miss out. Please see the attached video for a demo or check out our release candidates here and here.

Before this month we also rewrote the room creation dialogs to be less confusing. We now have separate dialogs for direct chats and group chats, which should cut down confusion between the options by a lot. You can also now edit the topic and name of a room inline and Malte added a jump to bottom button. On mobile you can also now drag to the sides to reply. Last but not least, you can now knock on rooms from Nheko using /knock or if an invite failed because you were not allowed to join a room and you can add a reason to room joins, leaves, invites, knocks and everything. Some of those features require the server to support Matrix v1.1, so make sure you update your servers to use them.

Nico announces

Excuse the blurry picture, but Bubu just sent me this and I just had to share it!

πŸ”—Neochat (website)

A client for matrix, the decentralized communication protocol

Tobias Fella says

NeoChat now has a KRunner plugin thanks to work done by Nico (not the one from Nheko πŸ™‚). This allows plasma users to search for and open matrix rooms directly from their desktop. You will be able to enable it from the KRunner settings after the next release.

Snehit changed the room preview to no longer show markdown characters, fixing a few situations where this would be unexpected.

On the end-to-end encryption side, we're currently working on implementing device verification.

πŸ”—Fractal (website)

Matrix messaging app for GNOME written in Rust.

Julian Sparber reports

This week I have something really exciting to report. We moved Fractal-next to the main development branch. This means that we now have nightly flatpak builds[1], so users can already try out the new version of Fractal without having to build it from source. This will also give use much more feedback and many more bug reports, hopefully not too many :) Note that this isn't a release and the software should still be considered unstable.

[1] https://gitlab.gnome.org/GNOME/fractal#development-version

πŸ”—Element (website)

Everything related to Element but not strictly bound to a client

Danielle announces

It’s April Fool’s day but there will be no tricks here; We’re far too excited to share all our good work with you πŸ˜‰

Message Threading

  • Exciting news for Threads; Next week we’re releasing a public beta!

    • It’ll be opt-in, so don’t forget to head to Settings and join in if you haven’t already.
  • We’re still working on perfecting notifications, so none of your messages are missed.

  • The team is also working hard at improving the stability of Threads, ahead of the release next week.

  • As always, please let us know your thoughts and feedback!

πŸ”—Element Web/Desktop (website)

Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!

Kegan says

Coming soon to an Element-Web near you...

Danielle announces

In labs (you can enable labs in settings on develop.element.io or on Nightly)

  • Voice rooms are now known as video rooms! We’ve landed some new designs to help make the experience more coherent, and bring them out of β€˜prototype’ status.
  • Threads! From next week you’ll be able to turn on threads in all versions of Element but for a sneak preview you can head to Labs in Develop or Nightly and access Message Threading from there.
  • We’re continuing to work on our updated search experience: we are going to be merging the people and room search dialogs into the new search experience and adding filtering. Expecting work to start early next week.
  • Along with some feature work in Labs, the team is hard at work closing issues and clearing pesky bugs.

πŸ”—Element iOS (website)

Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!

Manu reports

  • Our latest release is a hotfix (1.8.10) resolving a crash that occurred when uploading a photo via the camera in the timeline.
  • Following a team discussion and input from all areas we’ve decided to change how we launch new languages in Element. We’ll soon be moving to an automatic rollout model meaning, if there’s any amount of a language available, and it’s set as your preference, you’ll see it in the app.
    • Previously we’d wait until hitting the 80% mark and then manually push the translation. This leaves too much room for us to forget, or restricts access to those languages hanging around the 70% mark…
  • Other things we’ve been working on this week include; improving the new user experience, and starting to prototype with the layout for the app.
  • We released spaces on iOS this week! Where you could only view spaces before, you can now create and manage them from your phone. We have more improvements planned for the next release.

πŸ”—Element Android (website)

Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!

Danielle announces

  • The Android team has been determined over the past weeks to improve our internal process, increasing efficiency and quality of building and deploying. With that in mind, we’ve recently published a guide for PRs on our Android Repo. It’s still a draft right now but if you want to know more about our approach, read it here.
  • In terms of building we’re continuing on our path of improving the quality of the app by focussing on bugs and UI issues.
  • We’re also working on improving our new user experience to make it easier for newbies to get up and running on Element Android!

πŸ”—Dept of Non Chat Clients πŸŽ›οΈ

πŸ”—matrix-streamchat (website)

Matrix powered stream overlay for OBS, to integrate live chat in your favorite (selfhosted) streaming setups.

f0x announces

matrix-streamchat got it's first proper release, after some battletesting by another streamer :D https://git.pixie.town/f0x/matrix-streamchat/releases/tag/0.0.2 hosted instance is also available at https://streamchat.pixie.town

πŸ”—Matrix Highlight (website)

A decentralized and federated way of annotating the web based on Matrix.

Daniel announces

Matrix Highlight got an update this week. I've switched the highlighting widget to use a shadow DOM, which means styles from the page don't affect styles from the extension itself. This used to affect quite a lot of pages, but shouldn't be much of a problem anymore!

πŸ”—Dept of SDKs and Frameworks 🧰

πŸ”—Ruma (website)

A set of Rust library crates for working with the Matrix protocol. Ruma’s approach to Matrix emphasizes correctness, security, stability and performance.

Jonas Platte says

This week, we

πŸ”—matrix-rust-sdk (website)

Matrix Client-Server SDK for Rust

Jonas Platte announces

In the last two weeks,

  • Support for vodozemac as an alternative to libolm has been merged, and enabled by default πŸŽ‰
  • A bug around invitations to previously-left rooms was fixed

There was also a decent amount of internal cleanup / developer experience work, so if you previously tried to contribute but ran into weird IDE bugs or code inconsistencies, make sure to check back. The same goes for sliding sync, which has been making decent progress – stay tuned!

πŸ”—Dept of Events and Talks πŸ—£οΈ

andybalaam reports

I'm doing a talk about Matrix at the ACCU Conference on Saturday 9th April. Recordings of talks will be available soon after the conference, and tickets are still available to be there live in person or online! Here's the talk summary:

The Matrix network provides messaging (like WhatsApp or Slack) that offers all the features you expect, but without centralised control: it's an open standard, and anyone can run a server. The servers link together, so you can talk to other people even if they use a different server (kind of like email).

In the first half of this session, we will explore the basics of the protocol: making simple HTTP requests to send and receive messages, and discuss some of the interesting distributed-systems issues that make writing a server exciting.

In the second half we will explore the fact that messaging is only one potential use of this network, and look into some examples of other real-time use cases that are in active development, taking note of how these use cases benefit from the real-time and distributed nature of the network.

πŸ”—Dept of Interesting Projects πŸ›°οΈ

πŸ”—matrix-art (website)

An image gallery for Matrix

MTRNord (they/them) reports

There was some silence lately on this, but activity is picking back up.

Mainly, the project is getting rewritten. Why? Well, I learned from the issues and ran into issues with the framework used. There are going to be various changes to the architecture (like no more SSR, no nextjs, pwa support and more).

Feel free to follow https://github.com/MTRNord/matrix-art/pull/121 for progress.

Another big thing that's going to change is that I am working on a complete redesign. While I am still fairly early in the iterations, I wanted to share the first art direction Matrix Art is going to go. The main changes are that I try to have an art language which distinguishes it from the other proprietary players, as well as compensating for the fact that Matrix Art has a much lower volume of images on it's feed. Please be aware that this is way before the first round of polish. :)

If you want to connect with matrix-art please join the room: #matrix-art:nordgedanken.dev or follow/star the github project :)

πŸ”—Dept of Ping πŸ“

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.

πŸ”—#ping:maunium.net

Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1envs.net449
2neko.dev455
3tchncs.de475.5
4aria-net.org484
5quyo.de535.5
6settgast.org737
7catgirl.cloud975
8alemann.dev1066
9jeroenhd.nl1228
10maescool.be1422

πŸ”—#ping-no-synapse:maunium.net

Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.

RankHostnameMedian MS
1cry.is215
2nognu.de368
3conduit.grich.sk417
4sspaeth.de616.5
5xethos.net798
6dendrite.s3cr3t.me1256.5

πŸ”—That's all I know 🏁

See you next week, and be sure to stop by #twim:matrix.org with your updates!