Releases: mautrix/go
Releases Β· mautrix/go
v0.26.1
- Breaking change (mediaproxy) Changed
GetMediaResponseFileto 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
CanBackfillflag 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
/createRoomparameters.
v0.26.0
- (client,appservice) Deprecated
SendMassagedStateEventasSendStateEventhas 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/whoisclient API (thanks to @nexy7574 in #411). - (synapseadmin) Added
force_purgeoption 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
selecttype 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
DontReadBodyparameter. - (federation) Fixed validating auth for requests with query params.
- (federation/eventauth) Fixed typo causing restricted joins to not work.
v0.25.2
- Breaking change (id) Split
UserID.ParseAndValidateintoParseAndValidateRelaxedandParseAndValidateStrict. 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
RespUserProfilelosing standard fields when re-marshaling. - (federation) Fixed various bugs in event auth.
v0.25.1
- (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_afterin sync. - (client) Removed deprecated MSC2716 requests.
- (crypto) Added fallback to ensure
m.relates_tois always copied even if the content struct doesn't implementRelatable. - (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
- Note: the new PDU code depends on
- (event) Added
is_animatedflag 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
- 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-Agentheader 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
cancelcommand. - (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/codetags. - (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 intoexample.comrather thanexample.com (https://example.com)
- e.g.
- (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
AlreadySharederror inShareGroupSession. The function will now act as if it was successful instead.
v0.24.2
- (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_ERRORstate. - (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.
v0.24.1
- (commands) Added framework for using reactions as buttons that execute command handlers.
- (client) Added wrapper for
/relationsendpoints. - (client) Added support for stable version of room summary endpoint.
- (client) Fixed parsing URL preview responses where width/height are strings.
- (federation) Fixed bugs in server auth.
- (id) Added utilities for validating server names.
- (event) Fixed incorrect empty
entityfield when sending hashed moderation policy events. - (event) Added MSC4293 redact events field to member events.
- (event) Added support for fallbacks in MSC4144 per-message profiles.
- (format) Added
MarkdownLinkandMarkdownMentionutility functions for generating properly escaped markdown. - (synapseadmin) Added support for synchronous (v1) room delete endpoint.
- (synapseadmin) Changed
Clientstruct to not embed themautrix.Client. This is a breaking change if you were relying on accessing non-admin functions from the admin client. - (bridgev2/provisioning) Fixed
/display_and_waitnot passing through errors from the network connector properly. - (bridgev2/crypto) Fixed encryption not working if the user's ID had the same prefix as the bridge ghosts (e.g.
@whatsappbridgeuser:example.comwith a@whatsapp_prefix). - (bridgev2) Fixed portals not being saved after creating a DM portal from a Matrix DM invite.
- (bridgev2) Added config option to determine whether cross-room replies should be bridged.
- (appservice) Fixed
EnsureRegisterednot being called when sending a custom member event for the controlled user.
v0.24.0
- (commands) Added generic framework for implementing bot commands.
- (client) Added support for specifying maximum number of HTTP retries using a context value instead of having to call
MakeFullRequestmanually. - (client,federation) Added methods for fetching room directories.
- (federation) Added support for server side of request authentication.
- (synapseadmin) Added wrapper for the account suspension endpoint.
- (format) Added method for safely wrapping a string in markdown inline code.
- (crypto) Added method to import key backup without persisting to database, to allow the client more control over the process.
- (bridgev2) Added viewing chat interface to signal when the user is viewing a given chat.
- (bridgev2) Added option to pass through transaction ID from client when sending messages to remote network.
- (crypto) Fixed unnecessary error log when decrypting dummy events used for unwedging Olm sessions.
- (crypto) Fixed
forwarding_curve25519_key_chainnot being set consistently when backing up keys. - (event) Fixed marshaling legacy VoIP events with no version field.
- (bridgev2) Fixed disappearing message references not being deleted when the portal is deleted.
- (bridgev2) Fixed read receipt bridging not ignoring fake message entries and causing unnecessary error logs.
v0.23.3
- (commands) Added generic command processing framework for bots.
- (client) Added
allowed_room_idsfield to room summary responses (thanks to @nexy7574 in #367). - (bridgev2) Added support for custom timeouts on outgoing messages which have to wait for a remote echo.
- (bridgev2) Added automatic typing stop event if the ghost user had sent a typing event before a message.
- (bridgev2) The saved management room is now cleared if the user leaves the room, allowing the next DM to be automatically marked as a management room.
- (bridge) Removed deprecated fallback package for bridge statuses. The status package is now only available under bridgev2.
v0.23.2
- Breaking change (bridge) Removed legacy bridge module.
- Breaking change (event) Changed
m.federatefield in room create event content to a pointer to allow detecting omitted values. - (bridgev2/commands) Added
set-management-roomcommand to set a new management room. - (bridgev2/portal) Changed edit bridging to ignore remote edits if the original sender on Matrix can't be puppeted.
- (bridgv2) Added config option to disable bridging
m.noticemessages. - (appservice/http) Switched access token validation to use constant time comparisons.
- (event) Added support for MSC3765 rich text topics.
- (event) Added fields to policy list event contents for MSC4204 and MSC4205.
- (client) Added method for getting the content of a redacted event using MSC2815.
- (client) Added methods for sending and updating MSC4140 delayed events.
- (client) Added support for MSC4222 in sync payloads.
- (crypto/cryptohelper) Switched to using
sqlite3-fk-walinstead of plainsqlite3by default. - (crypto/encryptolm) Added generic method for encrypting to-device events.
- (crypto/ssss) Fixed panic if server-side key metadata is corrupted.
- (crypto/sqlstore) Fixed error when marking over 32 thousand device lists as outdated on SQLite.