Skip to content

Releases: mautrix/go

v0.27.0

16 Apr 10:39

Choose a tag to compare

Slightly breaking changes

  • (crypto) Changed GetOwnCrossSigningPublicKeys to return errors instead of only logging them and returning nil.
  • (event) Removed automatic registrations of content structs to encoding/gob. If you use mautrix types with gob, you'll have to register the structs yourself.
  • (crypto) Removed unused Olm PK encryption/decryption interface.
  • (crypto/goolm) Removed unused JSON pickling methods.

New features and non-breaking changes

  • (client) Added support for MSC4446 for moving m.fully_read backwards.
  • (appservice) Added support for escaped paths in HTTP over websocket proxy.
  • (synapseadmin) Added wrapper for redacting all events from a specific user (thanks to @nexy7574 in #466).
  • (event) Added types for MSC2545 image packs.
  • (bridgev2) Added option to block automatic portal creation for specific chats and/or users.
  • (bridgev2) Added commands to bridge existing groups to existing rooms and to create new portal rooms for existing groups.
  • (bridgev2) Added option to always prefer default relays for the bridge and set-relay commands.
  • (bridgev2) Added support for using MSC4437 for ghost profile updates.
  • (bridgev2) Added optional GetStateEvent method to ASIntent to get state while respecting room membership.
  • (bridgev2/mxmain) Added environment variables to change global values like the portal event buffer size.
  • (event) Changed EnsureHasHTML to also ensure the body is treated as a caption for media messages.
  • (bridgev2) Changed relay mode to treat stickers as normal images.
  • (bridgev2/matrix) Changed various start methods to return ExitErrors instead of calling os.Exit directly.
  • (client) Changed sync response structs to use omitzero instead of custom JSON marshaling functions.

Bug fixes

  • (crypto/goolm) Fixed various issues.
  • (crypto) Fixed new Olm session handling to only delete one-time keys after successfully decrypting a message.
  • (crypto) Fixed ResolveTrust not checking trust status of cross-signing keys correctly.
  • (crypto) Fixed m.relates_to copying not working for some inputs with goolm.
  • (event) Fixed Content.UnmarshalJSON incorrectly keeping a reference to the input data.
  • (format) Fixed math blocks not being routed to correct convert function.
  • (bridgev2) Fixed sending tombstone when redirecting a portal to another room.
  • (bridgev2) Fixed removed messages/reactions not being removed from database.
  • (bridgev2) Fixed race conditions where portal ID changes could result in a duplicate room being created.
  • (bridgev2/mxmain) Fixed some types of config fields not being settable with environment variables.
  • (appservice) Fixed redundant mx_registrations database query on every request.

v0.26.4

16 Mar 15:23

Choose a tag to compare

  • Breaking change (client) Changed request structs that include UIA (register, upload cross-signing keys, delete devices) to take the auth data as a type parameter.
  • (crypto) Changed device key mismatches in Megolm decryption to mark the message as untrusted instead of failing entirely.
  • (crypto) Added new column to save origin of received Megolm sessions.
  • (bridgev2) Added support for setting custom profile fields (e.g. m.tz) for ghosts.
  • (bridgev2/commands) Added delete-chat command to delete chats on the remote network.
  • (client) Updated MSC2666 implementation to use stable endpoint.
  • (client) Stopped logging large (>32 KiB) request bodies.
  • (bridgev2/portal) Fixed potential deadlock when a portal ID change races with room creation.
  • (bridgev2/portal) Fixed the third reaction from Matrix being handled incorrectly on networks that only allow one reaction per message.
  • (bridgev2/database) Fixed finding first message in thread in case the thread contains messages with a lower timestamp than the root message.
  • (bridgev2/commands) Fixed login QR codes not having appropriate file info.
  • (bridgev2/commands) Fixed user input steps not working correctly after a display step.
  • (format/htmlparser) Fixed generating markdown for code blocks containing backticks.
  • (federation/eventauth) Fixed inverted check in ban membership authorization (thanks to @nexy7574 in #464).

v0.26.3

16 Feb 12:40

Choose a tag to compare

  • Bumped minimum Go version to 1.25.
  • (client) Added fields for sending MSC4354 sticky events.
  • (bridgev2) Added automatic message request accepting when sending message.
  • (mediaproxy) Added support for federation thumbnail endpoint.
  • (crypto/ssss) Improved support for recovery keys with slightly broken metadata.
  • (crypto) Changed key import to call session received callback even for sessions that already exist in the database.
  • (appservice) Fixed building websocket URL accidentally using file path separators instead of always /.
  • (crypto) Fixed key exports not including the sender_claimed_keys field.
  • (client) Fixed incorrect context usage in async uploads.
  • (crypto) Fixed panic when passing invalid input to megolm message index parser used for debugging.
  • (bridgev2/provisioning) Fixed completed or failed logins not being cleaned up properly.

v0.26.2

16 Jan 13:02

Choose a tag to compare

  • (bridgev2) Added chunked portal deletion to avoid database locks when deleting large portals.
  • (crypto,bridgev2) Added option to encrypt reaction and reply metadata as per MSC4392.
  • (bridgev2/login) Added default_value for user input fields.
  • (bridgev2) Added interfaces to let the Matrix connector provide suggested HTTP client settings and to reset active connections of the network connector.
  • (bridgev2) Added interface to let network connectors get the provisioning API HTTP router and add new endpoints.
  • (event) Added blurhash field to Beeper link preview objects.
  • (event) Added MSC4391 support for bot commands.
  • (event) Dropped MSC4332 support for bot commands.
  • (client) Changed media download methods to return an error if the provided MXC URI is empty.
  • (client) Stabilized support for MSC4323.
  • (bridgev2/matrix) Fixed GetEvent panicking when trying to decrypt events.
  • (bridgev2) Fixed some deadlocks when room creation happens in parallel with a portal re-ID call.

v0.26.1

16 Dec 13:51

Choose a tag to compare

  • Breaking change (mediaproxy) Changed GetMediaResponseFile to return the mime type from the callback rather than in the return get media return value. The callback can now also redirect the caller to a different file.
  • (federation) Added join/knock/leave functions (thanks to @nexy7574 in #422).
  • (federation/eventauth) Fixed various incorrect checks.
  • (client) Added backoff for retrying media uploads to external URLs (with MSC3870).
  • (bridgev2/config) Added support for overriding config fields using environment variables.
  • (bridgev2/commands) Added command to mute chat on remote network.
  • (bridgev2) Added interface for network connectors to redirect to a different user ID when handling an invite from Matrix.
  • (bridgev2) Added interface for signaling message request status of portals.
  • (bridgev2) Changed portal creation to not backfill unless CanBackfill flag is set in chat info.
  • (bridgev2) Changed Matrix reaction handling to only delete old reaction if bridging the new one is successful.
  • (bridgev2/mxmain) Improved error message when trying to run bridge with pre-megabridge database when no database migration exists.
  • (bridgev2) Improved reliability of database migration when enabling split portals.
  • (bridgev2) Improved detection of orphaned DM rooms when starting new chats.
  • (bridgev2) Stopped sending redundant invites when joining ghosts to public portal rooms.
  • (bridgev2) Stopped hardcoding room versions in favor of checking server capabilities to determine appropriate /createRoom parameters.

v0.26.0

16 Nov 10:54

Choose a tag to compare

  • (client,appservice) Deprecated SendMassagedStateEvent as SendStateEvent has been able to do the same for a while now.
  • (client,federation) Added size limits for responses to make it safer to send requests to untrusted servers.
  • (client) Added wrapper for /admin/whois client API (thanks to @nexy7574 in #411).
  • (synapseadmin) Added force_purge option to DeleteRoom (thanks to @nexy7574 in #420).
  • (statestore) Added saving join rules for rooms.
  • (bridgev2) Added optional automatic rollback of room state if bridging the change to the remote network fails.
  • (bridgev2) Added management room notices if transient disconnect state doesn't resolve within 3 minutes.
  • (bridgev2) Added interface to signal that certain participants couldn't be invited when creating a group.
  • (bridgev2) Added select type for user input fields in login.
  • (bridgev2) Added interface to let network connector customize personal filtering space.
  • (bridgev2/matrix) Added checks to avoid sending error messages in reply to other bots.
  • (bridgev2/matrix) Switched to using MSC4169 to send redactions whenever possible.
  • (bridgev2/publicmedia) Added support for custom path prefixes, file names, and encrypted files.
  • (bridgev2/commands) Added command to resync a single portal.
  • (bridgev2/commands) Added create group command.
  • (bridgev2/config) Added option to limit maximum number of logins.
  • (bridgev2) Changed ghost joining to skip unnecessary invite if portal room is public.
  • (bridgev2/disappear) Changed read receipt handling to only start disappearing timers for messages up to the read message (note: may not work in all cases if the read receipt points at an unknown event).
  • (event/reply) Changed plaintext reply fallback removal to only happen when an HTML reply fallback is removed successfully.
  • (bridgev2/matrix) Fixed unnecessary sleep after registering bot on first run.
  • (crypto/goolm) Fixed panic when processing certain malformed Olm messages.
  • (federation) Fixed HTTP method for sending transactions (thanks to @nexy7574 in #426).
  • (federation) Fixed response body being closed even when using DontReadBody parameter.
  • (federation) Fixed validating auth for requests with query params.
  • (federation/eventauth) Fixed typo causing restricted joins to not work.

v0.25.2

16 Oct 09:41

Choose a tag to compare

  • Breaking change (id) Split UserID.ParseAndValidate into ParseAndValidateRelaxed and ParseAndValidateStrict. Strict is the old behavior, but most users likely want the relaxed version, as there are real users whose user IDs aren't valid under the strict rules.
  • (crypto) Added helper methods for generating and verifying with recovery keys.
  • (bridgev2/matrix) Added config option to automatically generate a recovery key for the bridge bot and self-sign the bridge's device.
  • (bridgev2/matrix) Added initial support for using appservice/MSC3202 mode for encryption with standard servers like Synapse.
  • (bridgev2) Added optional support for implicit read receipts.
  • (bridgev2) Added interface for deleting chats on remote network.
  • (bridgev2) Added local enforcement of media duration and size limits.
  • (bridgev2) Extended event duration logging to log any event taking too long.
  • (bridgev2) Improved validation in group creation provisioning API.
  • (event) Added event type constant for poll end events.
  • (client) Added wrapper for searching user directory.
  • (client) Improved support for managing MSC4140 delayed events.
  • (crypto/helper) Changed default sync handling to not block on waiting for decryption keys. On initial sync, keys won't be requested at all by default.
  • (crypto) Fixed olm unwedging not working (regressed in v0.25.1).
  • (bridgev2) Fixed various bugs with migrating to split portals.
  • (event) Fixed poll start events having incorrect null m.relates_to.
  • (client) Fixed RespUserProfile losing standard fields when re-marshaling.
  • (federation) Fixed various bugs in event auth.

v0.25.1

16 Sep 11:49

Choose a tag to compare

  • (client) Fixed HTTP method of delete devices API call (thanks to @fmseals in #393).
  • (client) Added wrappers for MSC4323: User suspension & locking endpoints (thanks to @nexy7574 in #407).
  • (client) Stabilized support for extensible profiles.
  • (client) Stabilized support for state_after in sync.
  • (client) Removed deprecated MSC2716 requests.
  • (crypto) Added fallback to ensure m.relates_to is always copied even if the content struct doesn't implement Relatable.
  • (crypto) Changed olm unwedging to ignore newly created sessions if they haven't been used successfully in either direction.
  • (federation) Added utilities for generating, parsing, validating and authorizing PDUs.
    • Note: the new PDU code depends on GOEXPERIMENT=jsonv2
  • (event) Added is_animated flag from MSC4230 to file info.
  • (event) Added types for MSC4332: In-room bot commands.
  • (event) Added missing poll end event type for MSC3381.
  • (appservice) Fixed URLs not being escaped properly when using unix socket for homeserver connections.
  • (format) Added more helpers for forming markdown links.
  • (event,bridgev2) Added support for Beeper's disappearing message state event.
  • (bridgev2) Redesigned group creation interface and added support in commands and provisioning API.
  • (bridgev2) Added GetEvent to Matrix interface to allow network connectors to get an old event. The method is best effort only, as some configurations don't allow fetching old events.
  • (bridgev2) Added shared logic for provisioning that can be reused by the API, commands and other sources.
  • (bridgev2) Fixed mentions and URL previews not being copied over when caption and media are merged.
  • (bridgev2) Removed config option to change provisioning API prefix, which had already broken in the previous release.

v0.25.0

16 Aug 10:20

Choose a tag to compare

  • Bumped minimum Go version to 1.24.
  • Breaking change (appservice,bridgev2,federation) Replaced gorilla/mux with standard library ServeMux.
  • (client,bridgev2) Added support for creator power in room v12.
  • (client) Added option to not set User-Agent header for improved Wasm compatibility.
  • (bridgev2) Added support for following tombstones.
  • (bridgev2) Added interface for getting arbitrary state event from Matrix.
  • (bridgev2) Added batching to disappearing message queue to ensure it doesn't use too many resources even if there are a large number of messages.
  • (bridgev2/commands) Added support for canceling QR login with cancel command.
  • (client) Added option to override HTTP client used for .well-known resolution.
  • (crypto/backup) Added method for encrypting key backup session without private keys.
  • (event->id) Moved room version type and constants to id package.
  • (bridgev2) Bots in DM portals will now be added to the functional members state event to hide them from the room name calculation.
  • (bridgev2) Changed message delete handling to ignore "delete for me" events if there are multiple Matrix users in the room.
  • (format/htmlparser) Changed text processing to collapse multiple spaces into one when outside pre/code tags.
  • (format/htmlparser) Removed link suffix in plaintext output when link text is only missing protocol part of href.
    • e.g. <a href="https://example.com">example.com</a> will turn into example.com rather than example.com (https://example.com)
  • (appservice) Switched appservice websockets from gorilla/websocket to coder/websocket.
  • (bridgev2/matrix) Fixed encryption key sharing not ignoring ghosts properly.
  • (crypto/attachments) Fixed hash check when decrypting file streams.
  • (crypto) Removed unnecessary AlreadyShared error in ShareGroupSession. The function will now act as if it was successful instead.

v0.24.2

16 Jul 08:33

Choose a tag to compare

  • (bridgev2) Added support for return values from portal event handlers. Note that the return value will always be "queued" unless the event buffer is disabled.
  • (bridgev2) Added support for MSC4144 per-message profile passthrough in relay mode.
  • (bridgev2) Added option to auto-reconnect logins after a certain period if they hit an UNKNOWN_ERROR state.
  • (bridgev2) Added analytics for event handler panics.
  • (bridgev2) Changed new room creation to hardcode room v11 to avoid v12 rooms being created before proper support for them can be added.
  • (bridgev2) Changed queuing events to block instead of dropping events if the buffer is full.
  • (bridgev2) Fixed assumption that replies to unknown messages are cross-room.
  • (id) Fixed server name validation not including ports correctly (thanks to @krombel in #392).
  • (federation) Fixed base64 algorithm in signature generation.
  • (event) Fixed MSC4144 fallbacks not being removed from edits.