Releases: mautrix/go
Releases · mautrix/go
v0.18.1
- (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
- 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
- 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 anAppService
instance with all the mandatory fields set.
v0.17.0
- 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
toevent.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.
- You can use the
- (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
- (event) Added
Redacts
field toRedactionEventContent
for room v11+. - (event) Added
ReverseTextToHTML
which reverses the changes made byTextToHTML
(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
- 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 theEventProcessor
.
- (crypto/olm) Added
PkDecryption
wrapper.
v0.16.0
- Bumped minimum Go version to 1.20.
- Breaking change (util) Moved package to go.mau.fi/util
- (event) Removed MSC2716
historical
field in them.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
- (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
- (synapseadmin) Added wrappers for some Synapse admin API endpoints.
- (pushrules) Implemented new
event_property_is
andevent_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 addedClient.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
andUnstableUploadAsync
were renamed toCreateMXC
andUploadAsync
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
- (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 theExtraData
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.