Tulir Asokan / Blog

May 2025 releases // archivemuks and other gomuks web updates

Posted on • 716 words

This month's releases mostly consist of some bridge bugfixes, a few new features in Meowlnir and many features in gomuks web.

Bridge/library Version
mautrix-gmessages v0.6.2
mautrix-whatsapp v0.12.1
mautrix-twitter v0.4.1
mautrix-signal v0.8.3
mautrix-go v0.24.0
meowlnir v0.5.0
go-util v0.8.7

Bridges

Signal has basic support for direct media access now. It's a bit safer to use than WhatsApp, but the links will only work for 45 days and will be permanently broken after that, so for most use cases, traditional re-uploaded media is likely still better.

The Twitter bridge got a few bug fixes as well as support for voice messages in both directions.

The Signal and WhatsApp bridges turned out to have the exact same bug implemented in different ways which broke backfilling exisitng portals after re-logining. Backfilling old messages is not possible as there's no standard mechanism in Matrix to do it, but backfilling missed messages when no new messages have been sent should work again.

Meowlnir

Meowlnir received some new tools for public servers, such as automatically suspending local accounts when a ban policy is received. @nexy7574 also made a couple pull requests, like customizable auto-redact ban reasons and a fix for the fallback redaction mechanism not deleting state events.

In addition to new features, the command handling system was redone on top of mautrix-go's new generic command processing framework. There shouldn't be any user-facing changes, but if you want to write your own bots in Go, the new command framework will likely be useful.

gomuks web

There have been a bunch of changes to gomuks web, like sending URL previews, re-encoding uploads and mass-redacting messages. In addition to changes to web, there's now a Go client package for using the gomuks websocket RPC API that the web frontend uses.

Using the new RPC package, I made a simple CLI tool called archivemuks which connects to the backend, asks it to fetch all messages in a single room, and saves them to a JSON file. The long-term plan is to have background room history crawling built into the backend to enable filling the local database for search and export purposes, but the CLI tool works as a proof-of-concept. Because the tool doesn't wait for decryption, you'll have to delete the export and re-run the tool after the history has been downloaded once, otherwise your export will have a bunch of undecrypted events.

Full changelog: