Skip to content

Releases: mautrix/go

v0.18.1

16 Apr 11:00
Compare
Choose a tag to compare
  • (format) Added a context.Context field to HTMLParser's Context struct.
  • (bridge) Added support for handling join rules, knocks, invites and bans (thanks to @maltee1 in #193 and #204).
  • (crypto) Changed forwarded room key handling to only accept keys with a lower first known index than the existing session if there is one.
  • (crypto) Changed key backup restore to assume own device list is up to date to avoid re-requesting device list for every deleted device that has signed key backup.
  • (crypto) Fixed memory cache not being invalidated when storing own cross-signing keys

v0.18.0

16 Mar 10:59
Compare
Choose a tag to compare
  • Breaking change (client, bridge, appservice) Dropped support for maulogger. Only zerolog loggers are now provided by default.
  • (bridge) Fixed upload size limit not having a default if the server returned no value.
  • (synapseadmin) Added wrappers for some room and user admin APIs. (thanks to @grvn-ht in #181).
  • (crypto/verificationhelper) Fixed bugs.
  • (crypto) Fixed key backup uploading doing too much base64.
  • (crypto) Changed EncryptMegolmEvent to return an error if persisting the megolm session fails. This ensures that database errors won't cause messages to be sent with duplicate indexes.
  • (crypto) Changed GetOrRequestSecret to use a callback instead of returning the value directly. This allows validating the value in order to ignore invalid secrets.
  • (id) Added ParseCommonIdentifier function to parse any Matrix identifier in the Common Identifier Format.
  • (federation) Added simple key server that passes the federation tester.

v0.18.0-beta.1

16 Feb 15:13
Compare
Choose a tag to compare
v0.18.0-beta.1 Pre-release
Pre-release
  • Bumped minimum Go version to 1.21.
  • (bridge) Bumped minimum Matrix spec version to v1.4.
  • Breaking change (crypto) Deleted old half-broken interactive verification code and replaced it with a new verificationhelper.
    • The new verification helper is still experimental.
    • Both QR and emoji verification are supported (in theory).
  • (crypto) Added support for server-side key backup.
  • (crypto) Added support for receiving and sending secrets like cross-signing private keys via secret sharing.
  • (crypto) Added support for tracking which devices megolm sessions were initially shared to, and allowing re-sharing the keys to those sessions.
  • (client) Changed cross-signing key upload method to accept a callback for user-interactive auth instead of only hardcoding password support.
  • (appservice) Dropped support for legacy non-prefixed appservice paths (e.g. /transactions instead of /_matrix/app/v1/transactions).
  • (appservice) Dropped support for legacy access_token authorization in appservice endpoints.
  • (bridge) Fixed RawArgs field in command events of command state callbacks.
  • (appservice) Added CreateFull helper function for creating an AppService instance with all the mandatory fields set.

v0.17.0

16 Jan 14:13
Compare
Choose a tag to compare
  • Breaking change (bridge) Added raw event to portal membership handling functions.
  • Breaking change (everything) Added context parameters to all functions (started by @recht in #144).
  • Breaking change (client) Moved event source from sync event handler function parameters to the Mautrix.EventSource field inside the event struct.
  • Breaking change (client) Moved EventSource to event.Source.
  • (client) Removed deprecated OldEventIgnorer. The non-deprecated version (Client.DontProcessOldEvents) is still available.
  • (crypto) Added experimental pure Go Olm implementation to replace libolm (thanks to @DerLukas15 in #106).
    • You can use the goolm build tag to the new implementation.
  • (bridge) Added context parameter for bridge command events.
  • (bridge) Added method to allow custom validation for the entire config.
  • (client) Changed default syncer to not drop unknown events.
    • The syncer will still drop known events if parsing the content fails.
    • The behavior can be changed by changing the ParseErrorHandler function.
  • (crypto) Fixed some places using math/rand instead of crypto/rand.

v0.16.2

16 Nov 13:17
Compare
Choose a tag to compare
  • (event) Added Redacts field to RedactionEventContent for room v11+.
  • (event) Added ReverseTextToHTML which reverses the changes made by TextToHTML (i.e. unescapes HTML characters and replaces <br/> with \n).
  • (bridge) Added global zerologger to ensure all logs go through the bridge logger.
  • (bridge) Changed encryption error messages to be sent in a thread if the message that failed to decrypt was in a thread.

v0.16.1

16 Sep 14:01
Compare
Choose a tag to compare
  • Breaking change (id) Updated user ID localpart encoding to not encode + as per MSC4009.
  • (bridge) Added bridge utility to handle double puppeting logins.
    • The utility supports automatic logins with all three current methods (shared secret, legacy appservice, new appservice).
  • (appservice) Added warning logs and timeout on appservice event handling.
    • Defaults to warning after 30 seconds and timeout 15 minutes after that.
    • Timeouts can be adjusted or disabled by setting ExecSync variables in the EventProcessor.
  • (crypto/olm) Added PkDecryption wrapper.

v0.16.0

16 Aug 21:47
Compare
Choose a tag to compare
  • Bumped minimum Go version to 1.20.
  • Breaking change (util) Moved package to go.mau.fi/util
  • (event) Removed MSC2716 historical field in the m.room.power_levels event content struct.
  • (bridge) Added --version-json flag to print bridge version info as JSON.
  • (appservice) Added option to use custom transaction handler for websocket mode.

v0.15.4

16 Jul 09:26
Compare
Choose a tag to compare
  • (client) Deprecated MSC2716 methods and added new Beeper-specific batch send methods, as upstream MSC2716 support has been abandoned.
  • (client) Added proper error handling and automatic retries to media downloads.
  • (crypto, bridge) Added option to remove all keys that were received before the automatic ratcheting was implemented (in v0.15.1).
  • (dbutil) Added JSON utility for writing/reading arbitrary JSON objects to the db conveniently without manually de/serializing.

v0.15.3

16 Jun 11:30
Compare
Choose a tag to compare
  • (synapseadmin) Added wrappers for some Synapse admin API endpoints.
  • (pushrules) Implemented new event_property_is and event_property_contains push rule condition kinds as per MSC3758 and MSC3966.
  • (bridge) Moved websocket code from mautrix-imessage to enable all bridges to use appservice websockets easily.
  • (bridge) Added retrying for appservice pings.
  • (types) Removed unstable field for MSC3952 (intentional mentions).
  • (client) Deprecated OldEventIgnorer and added Client.DontProcessOldEvents to replace it.
  • (client) Added MoveInviteState sync handler for moving state events in the invite section of sync inside the invite event itself.
  • (crypto) Added option to not rotate keys when devices change.
  • (crypto) Added additional duplicate message index check if decryption fails because the keys had been ratcheted forward.
  • (client) Stabilized support for asynchronous uploads.
    • UnstableCreateMXC and UnstableUploadAsync were renamed to CreateMXC and UploadAsync respectively.
  • (util/dbutil) Added option to use a separate database connection pool for read-only transactions.
    • This is mostly meant for SQLite and it enables read-only transactions that don't lock the database, even when normal transactions are configured to acquire a write lock immediately.
  • (util/dbutil) Enabled caller info in zerolog by default.

v0.15.2

16 May 14:51
Compare
Choose a tag to compare
  • (client) Changed member-fetching methods to clear existing member info in state store.
  • (client) Added support for inserting mautrix-go commit hash into default user agent at compile time.
  • (bridge) Fixed bridge bot intent not having state store set.
  • (client) Fixed RespError marshaling mutating the ExtraData map and potentially causing panics.
  • (util/dbutil) Added DoTxn method for an easier way to manage database transactions.
  • (util) Added a zerolog CallerMarshalFunc implementation that includes the function name.
  • (bridge) Added error reply to encrypted messages if the bridge isn't configured to do encryption.