This episode of Open Tech Will Save Us was a special on Moderation. Our guest was Jim from the Matrix.org Foundation's Trust & Safety Team.
Can moderation be automated? Can it be apolitical? How does it scale? Are decentralised systems inherently more insecure than centrlised ones? Let's find out!
You can now officially join the Matrix Foundation as an organisational or individual member in order to sustainably support core Matrix development, help steer the direction of the protocol and how best to fund it. In order to run the Governing Board and the overall work of the Foundation, we are also hiring an Executive Director.
Andrew Morgan (anoa) says
MSCs in Final Comment Period:
- No MSCs are in FCP.
- No MSCs were accepted this week.
A lot of this week was spent on implementation by the SCT, hence little movement in the bullet points above. However, outside of label changes, we've seen lots of progress on Extensible Events work from Travis as we continue to lay the groundwork for the IETF MIMI initiative.
We also continue to receive lots of fixes to the spec text itself via PRs to https://github.com/matrix-org/matrix-spec. Shout outs to zecakeh, dylhack, and uhoreg for their contributions!
Random MSC of the Week
The random MSC of the week is... MSC3890: Remotely silence local notifications!
This MSC aims to provide a solution to remotely toggling do-not-disturb across your various Matrix clients without needing to set it on each device manually. It does so by using account data which is synced to each client. Upon a client seeing data intended for them, they will silence notifications locally until told to do so otherwise (either remotely or by the user interacting with the client directly).
Quite a neat idea, and adds more powerful functionality to the "device manager" of a client. Also handy if your other clients are things like embedded systems!
Synapse is a Matrix homeserver implementation developed by the matrix.org core team
As we barrel towards the end of the year, the Synapse team is hard at work making Synapse faster, more stable and filled with features! This week we released v1.73.0rc2. Notable work includes a significant speed-up to the
/messagespath. In addition you can find:
- Improved DB performance by reducing amount of data that gets read in device_lists_changes_in_room.
- Support for handling avatar in SSO login. Contributed by @ashfame
- Unstable support for an Extensible Events room version (org.matrix.msc1767.10) via MSC1767, MSC3931, MSC3932, and MSC3933.
- A bugfix for a long-standing bug where the List media admin API would fail when processing an image with broken thumbnail information
and a whole host of other bugfixes, features and improvements. Head over to https://github.com/matrix-org/synapse/releases to check it out.
A Matrix <-> Slack bridge
Andrew F reports
It's been a while since the last TWIM update, but the Slack bridge has been steadily improving! See https://github.com/matrix-org/matrix-appservice-slack/releases/ for a slew of updates.
- DMs are now consistently assigned with the name & avatar of the Slack user you're chatting with.
- Display names of Slack users should be kept up-to-date more reliably.
- Support is added for bridging Slack threads with MSC3440 m.thread relations.
- The usability of bridge bot admin commands (like
link) has been improved.
- Some cases of inbound Slack messages being dropped have been fixed.
A multi purpose multi platform bridge, formerly known as matrix-github
Hookshot 2.5.0 is now ready for your eyes and your processors!
This week we bring you the very last (all fingers being crossed) hookshot release not to support e2ee encryption. Our resident expert is busy working away on supporting it and is a couple of bugfixes away from providing it to you all (https://github.com/matrix-org/matrix-hookshot/pull/299#issuecomment-1327124799).
In the meantime, this release was so good we couldn't keep it from you any longer. This release is packed with quality of life improvements, and general bugfixes / stability. Deploy away!
The highlights are:
assigncommand now automatically chooses the top issue and/or authenticated user if not provided.
- The RSS feed connection no longer feels the need to spam you when GitHub fails to respond within 10s. It now waits for 30s.
- Hookshot now supports creating GitLab connections without automatically provisioning a webhook. When this happens, the bot will tell you to talk to your admin to setup the webhook manually.
Checkout the rest here
SchildiChat is a fork of Element that focuses on UI changes such as message bubbles and a unified chat list for both direct messages and groups, which is a more familiar approach to users of other popular instant messengers.
Version 1.5.8.sc62 of SchildiChat-Android got released this week, which adds a few new interesting features on top of Element:
- Reworked reply rendering, to follow the rich replies specification. This improves the following:
- Update the replied-to message in case the original message gets edited or deleted
- Fix replies edited on desktop not being shown as replies on Android
- Fix replies edited on Android being shown on Desktop with the replied-to event twice
- Fix some weird rendering issues, like lists in a reply being completely broken
- Nicer design, using the original sender's color, and a maximum height for the replied-to event
- Render the replied-to event also for media replies, for example when the mautrix-telegram bridge sends an image reply
- In the future, this will also allow us to render replied-to images instead of just writing "Image" in there, but this one is still on the TODO-list since I didn't want to delay a release further.
- Render captions as per MSC2530.
- We now allow sending all kinds of room-specific or account-specific global custom emotes as per MSC2545 (but you still need to configure them with a different client before sending).
For those about to ask if I'll upstream these changes to Element: I'm currently not planning to do so, but you are free to pick my changes yourself and create a PR. For rich replies, see also here.
Everything related to Element but not strictly bound to a client
Anthony Hughes reports
Help us test Threads on Wednesday December 7th from 15:00 to 16:30 GMT! We need the most help testing on Android and iOS but if you can help test on Web/Desktop that's cool too! And don't worry if you can't make it, we'll have folks around most of the day so please come out and help us test whenever you can manage. See you in the community testing room at #element-community-testing:matrix.org!
Secure and independent communication, connected via Matrix. Come talk with us in #element-web:matrix.org!
We’ve made improvements to replies, search, notifications, user verification and DM creation over the last week
In labs (you can enable labs features in settings on develop.element.io or on Nightly):
- Voice broadcast is continuing to receive more updates and bug fixes!
- Threads is nearing release, thank you all who have been trying it out! You can still join the Beta testing in Settings -> Labs to give it a spin!
- Also, screensharing in Element Call has had a fix!
Secure and independent communication for iOS, connected via Matrix. Come talk with us in #element-ios:matrix.org!
- 📬 Useful feature time: The spaces button is now badged whenever you have unread messages or invites that aren’t visible in the current space.
- 📝 The Rich Text Editor has seen more bugs and edge cases fixed and support for links and lists is underway.
- 🏗️ On the ElementX side we have been working on a Reactions picker, the timeline rewrite is almost finished, work on a split view layout for iPad continues and we’re finishing up a shiny new Room Details screen.
Secure and independent communication for Android, connected via Matrix. Come talk with us in #element-android:matrix.org!
- Element Android 1.5.10 has been released for testers on the PlayStore (still in review by Google at this time). It should be pushed to production next week. It includes a new full screen mode for the Rich Text Editor and lots of other changes. The full changelog is here.
- The team is making progress to integrate the Crypto Rust SDK in the main project and generate the application ElementR.
- On Android Element X, which is the new Android app written with Jetpack Compose on top of the Matrix Rust SDK, it is now possible to edit events and to reply to events. Html is also now rendered in the timeline. We will define in the coming weeks what will be the plan for the future regarding this project.
Announcing Feline Matrix Assistant. This is a PowerShell 7 cross platform script that aims to gather a few somewhat common matrix tasks in one place with a somewhat user friendly interface.
It was designed to enable users on Windows to easily access things like custom powerlevel rooms and manual room upgrades that normally require using Linux to run bash scripts if one does not want to figure out how to make the web requests using their preferred method themselves.
One of the other reasons i made this is just because i wanted to get more familiar the CS API and because i needed it my self because im currently a Windows user.
The Third Room team have been invited to present Third Room at SIGGRAPH Asia 2022 next week! https://sa2022.siggraph.org/en/presentation/?id=realcur_102&sess=sess143
As named per the author, don't blame Thib for this name!
Why? As an alternative to matrix-bot-sdk, this library will be strongly typed with simplicity in mind to make sure there is no overhead to writing the perfect Matrix bot.
- This library also focuses on having browser support and no dependencies around NodeJS (and least amount of dependencies in general)
- AppService functionality will be shipped in a separate package as an extension of this base package.
- There is plenty of dependency injection for: Logging, how HTTP comms are done, and caching (come ask about the Redis cache layer!)
Come join our Matrix room to help this library grow and give input!
Multiplatform Kotlin SDK for Matrix
Trixnity 3.0.0 is released. This release contains all changes of the beta versions. We additionally fixed two bugs regarding encrypted edited messages.
I'm currently working on vodozemac integration. For this I implemented uniffi-kotlin-multiplatform-bindings to bridge Rust and Kotlin Multiplatform.
Next-gen crypto-included SDK for developing Clients, Bots and Appservices; written in Rust with bindings for Node, Swift and WASM
The last few weeks of Sliding Sync in the various mobile clients is showing its fruits: Sliding Sync offline caching and session recovery was merged this week, giving you the latest state of your sliding sync in milliseconds without ever having touched the network now. You need to activate it via a setting on the SlidingSyncBuilder - FFI is exposed as well. This PR also adds recovery when the server rejected our request upon a failing position, indicating our session was reset. Previously, you needed to reconstruct the entire sliding-sync with all its state yourself, now this does it internally and transparently for the API user. Additionally, we merged a fix for invited rooms, which caused a panic on FFI usage, and have one other fix to the sliding-sync state post cache coming up.
Talking about fixes, the retry code path had a bug, which caused retries even when the API clearly stated we needed to change request, which is fixed now, and the memory store won't continue to keep all media cached anymore. More fixes are being pulled out of the demo branch and coming up as PRs next week.
We can also report amazing news from the Async-UniFFI-front: we have the first async-uniffi-swift code running now. Exciting times!
👉 ️ Wanna hack on matrix rust? Go check out our
help wantedtagged issues and join our matrix channel at Matrix Rust SDK.
Introducing a new way to run Synapse on top of Kubernetes !
The current capabilities of the Synapse Operator:
- Deploy Synapse: the operator can generate a default homeserver.yaml, or it can work with a custom homeserver.yaml, provided by the user.
- Deploy the Heisenbridge and the mautrix-signal bridge: the operator automatically (re)configures Synapse to add the corresponding app_services.
- Deploy a PostgreSQL database for Synapse (depends on the postgres-operator).
Once the operator is deployed, the
Synapseresource becomes available. Deploying a basic instance goes as simple as:
$ cat << EOF > synapse.yaml apiVersion: synapse.opdev.io/v1alpha1 kind: Synapse metadata: name: my-synapse spec: homeserver: values: serverName: example.com reportStats: true EOF $ kubectl apply -f synapse.yaml synapse.synapse.opdev.io/my-synapse created $ kubectl get pods NAME READY STATUS RESTARTS AGE my-synapse-84d56d54df-c699k 1/1 Running 0 63s
The operator takes care of the deployment and lifecycle management of the Synapse instance. Similarly, the
MautrixSignalresources can also be deployed alongside Synapse and are managed by the operator.
This operator is written in Go. To know more about the project, please visit https://github.com/opdev/synapse-operator, there are explanations on how to deploy the operator, and examples demonstrating the main features. Or ping me on Matrix if you want to have a chat about it ! I'd love to collect some feedbacks !
The clock is ticking! We're already in December, only a few days left to submit your talk proposal for our in-person Matrix devroom at FOSDEM. All the details to answer the call are in our FOSDEM 2023 CfP
Next Matrix user meetup 7.12.2022, 8 pm @ c-base
Meet other matrix users, chat about Matrix, the rest, and everything else, discuss your Matrix ideas, sign each other in persona, and maybe spice the evening with a good mate or beer.
Every first Wednesday of the month in the c-base at 8pm ('til the next pandemic).
Matrix room: #mumb:c-base.org
Meet Charles (cvwright), Project creator and Lead engineer of Circles. He and I spoke about how he got to know about Matrix, how encryption became more common on the Internet and how he started Circles – an app, built with Matrix, to privately connect with family and friends.
Same website and RSS feed as last week.
Mastodon toot: https://mastodontech.de/@jaller94/109445133197729074
I hope you enjoy this week's interview and learn what other people in the community are up to. From next week on we're back to episodes in German – but another English episode is on its way!
Here we reveal, rank, and applaud the homeservers with the lowest ping, as measured by pingbot, a maubot that you can host on your own server.
Join #ping:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
Join #ping-no-synapse:maunium.net to experience the fun live, and to find out how to add YOUR server to the game.
See you next week, and be sure to stop by #twim:matrix.org with your updates!