Releases: mautrix/go
Releases · mautrix/go
v0.21.1
- (bridgev2) Added more features and fixed bugs.
- (hicli) Added more features and fixed bugs.
- (appservice) Removed TLS support. A reverse proxy should be used if TLS is needed.
- (format/mdext) Added goldmark extension to fix indented paragraphs when disabling indented code block parser.
- (event) Added
Has
method forMentions
. - (event) Added basic support for the unstable version of polls.
v0.21.0
- Breaking change (client) Dropped support for unauthenticated media. Matrix v1.11 support is now required from the homeserver, although it's not enforced using
/versions
as some servers don't advertise it. - (bridgev2) Added more features and fixed bugs.
- (appservice,crypto) Added support for using MSC3202 for appservice encryption.
- (crypto/olm) Made everything into an interface to allow side-by-side testing of libolm and goolm, as well as potentially support vodozemac in the future.
- (client) Fixed requests being retried even after context is canceled.
- (client) Added option to move
/sync
request logs to trace level. - (error) Added
Write
andWithMessage
helpers toRespError
to make it easier to use on servers. - (event) Fixed
org.matrix.msc1767.audio
field allowing omitting the duration and waveform. - (id) Changed
MatrixURI
methods to not panic if the receiver is nil. - (federation) Added limit to response size when fetching
.well-known
files.
v0.20.0
- Bumped minimum Go version to 1.22.
- (bridgev2) Added more features and fixed bugs.
- (event) Added types for MSC4144: Per-message profiles.
- (federation) Added implementation of server name resolution and a basic client for making federation requests.
- (crypto/ssss) Changed recovery key/passphrase verify functions to take the key ID as a parameter to ensure it's correctly set even if the key metadata wasn't fetched via
GetKeyData
. - (format/mdext) Added goldmark extensions for single-character bold, italic and strikethrough parsing (as in
*foo*
-> foo,_foo_
-> foo and~foo~
->foo) - (format) Changed
RenderMarkdown
et al to always includem.mentions
in returned content. The mention list is filled with matrix.to URLs from the input by default.
v0.19.0
Also note the v0.19.0-beta.1 changelog, there were some slightly breaking changes.
- Renamed
master
branch tomain
. - (bridgev2) Added more features.
- (crypto) Fixed bug with copying
m.relates_to
from wire content to decrypted content. - (mediaproxy) Added module for implementing simple media repos that proxy requests elsewhere.
- (client) Changed
Members()
to automatically parse event content for all returned events. - (bridge) Added
/register
call if/versions
fails withM_FORBIDDEN
. - (crypto) Fixed
DecryptMegolmEvent
sometimes calling database without transaction by using the non-context version ofResolveTrust
. - (crypto/attachment) Implemented
io.Seeker
inEncryptStream
to allow using it in retriable HTTP requests. - (event) Added helper method to add user ID to a
Mentions
object. - (event) Fixed default power level for invites (thanks to @rudis in #250).
- (client) Fixed incorrect warning log in
State()
when state store returns no error (thanks to @rudis in #249). - (crypto/verificationhelper) Fixed deadlock when ignoring unknown cancellation events (thanks to @rudis in #247).
v0.19.0-beta.1
- (bridgev2) Added experimental high-level bridge framework.
- (hicli) Added experimental high-level client framework.
- Slightly breaking changes
- (crypto) Added room ID and first known index parameters to
SessionReceived
callback. - (crypto) Changed
ImportRoomKeyFromBackup
to return the imported session. - (client) Added
error
parameter toResponseHook
. - (client) Changed
Download
to return entire response instead of just anio.Reader
.
- (crypto) Added room ID and first known index parameters to
- (crypto) Changed initial olm device sharing to save keys before sharing to ensure keys aren't accidentally regenerated in case the request fails.
- (crypto) Changed
EncryptMegolmEvent
andShareGroupSession
to return more errors instead of only logging and ignoring them. - (crypto) Added option to completely disable megolm ratchet tracking.
- The tracking is meant for bots and bridges which may want to delete old keys, but for normal clients it's just unnecessary overhead.
- (crypto) Changed Megolm session storage methods in
Store
to not take sender key as parameter.- This causes a breaking change to the layout of the
MemoryStore
struct. Using MemoryStore in production is not recommended.
- This causes a breaking change to the layout of the
- (crypto) Changed
DecryptMegolmEvent
to copym.relates_to
in the raw content too instead of only in the parsed struct. - (crypto) Exported function to parse megolm message index from raw ciphertext bytes.
- (crypto/sqlstore) Fixed schema of
crypto_secrets
table to include account ID. - (crypto/verificationhelper) Fixed more bugs.
- (client) Added
UpdateRequestOnRetry
hook which is called immediately before retrying a normal HTTP request. - (client) Added support for MSC3916 media download endpoint.
- Support is automatically detected from spec versions. The
SpecVersions
property can either be filled manually, orVersions
can be called to automatically populate the field with the response.
- Support is automatically detected from spec versions. The
- (event) Added constants for known room versions.
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.