Releases: mautrix/go
Releases Β· mautrix/go
v0.23.1
- (client) Added
FullStateEvent
method to get a state event including metadata (using the?format=event
query parameter). - (client) Added wrapper method for MSC4194's redact endpoint.
- (pushrules) Fixed content rules not considering word boundaries and being case-sensitive.
- (crypto) Fixed bugs that would cause key exports to fail for no reason.
- (crypto) Deprecated
ResolveTrust
in favor ofResolveTrustContext
. - (crypto) Stopped accepting secret shares from unverified devices.
- Breaking change (crypto) Changed
GetAndVerifyLatestKeyBackupVersion
to take an optional private key parameter. The method will now trust the public key if it matches the provided private key even if there are no valid signatures. - Breaking change (crypto) Added context parameter to
IsDeviceTrusted
.
v0.23.0
- Breaking change (client) Changed
JoinRoom
parameters to allow multiplevia
s. - Breaking change (bridgev2) Updated capability system.
- The return type of
NetworkAPI.GetCapabilities
is now different. - Media type capabilities are enforced automatically by bridgev2.
- Capabilities are now sent to Matrix rooms using the
com.beeper.room_features
state event.
- The return type of
- (client) Added
GetRoomSummary
to implement MSC3266. - (client) Added support for arbitrary profile fields to implement MSC4133 (thanks to @nexy7574 in #337).
- (crypto) Started storing olm message hashes to prevent decryption errors if messages are repeated (e.g. if the app crashes right after decrypting).
- (crypto) Improved olm session unwedging to check when the last session was created instead of only relying on an in-memory map.
- (crypto/verificationhelper) Fixed emoji verification not doing cross-signing properly after a successful verification.
- (bridgev2/config) Moved MSC4190 flag from
appservice
toencryption
. - (bridgev2/space) Fixed failing to add rooms to spaces if the room create call was made with a temporary context.
- (bridgev2/commands) Changed
help
command to hide commands which require interfaces that aren't implemented by the network connector. - (bridgev2/matrixinterface) Moved deterministic room ID generation to Matrix connector.
- (bridgev2) Fixed service member state event not being set correctly when creating a DM by inviting a ghost user.
- (bridgev2) Fixed
RemoteReactionSync
events replacing all reactions every time instead of only changed ones.
v0.22.1
- (crypto) Added automatic cleanup when there are too many olm sessions with a single device.
- (crypto) Added helper for getting cached device list with cross-signing status.
- (crypto/verificationhelper) Added interface for persisting the state of in-progress verifications.
- (client) Added
GetMutualRooms
wrapper for MSC2666. - (client) Switched
JoinRoom
to use thevia
query param instead ofserver_name
as per MSC4156. - (bridgev2/commands) Fixed
pm
command not actually starting the chat. - (bridgev2/interface) Added separate network API interface for starting chats with a Matrix ghost user. This allows treating internal user IDs differently than arbitrary user-input strings.
- (bridgev2/crypto) Added support for MSC4190 (thanks to @onestacked in #288).
v0.22.0
- (hicli) Moved package into gomuks repo.
- (bridgev2/commands) Fixed cookie unescaping in login commands.
- (bridgev2/portal) Added special
DefaultChatName
constant to explicitly reset portal names to the default (based on members). - (bridgev2/config) Added options to disable room tag bridging.
- (bridgev2/database) Fixed reaction queries not including portal receiver.
- (appservice) Updated MSC2409 stable registration field name from
push_ephemeral
toreceive_ephemeral
. Homeserver admins must update existing registrations manually. - (format) Added support for
img
tags. - (format/mdext) Added goldmark extensions for Matrix math and custom emojis.
- (event/reply) Removed support for generating reply fallbacks (MSC2781).
- (pushrules) Added support for
sender_notification_permission
condition kind (used for@room
mentions). - (crypto) Added support for
json.RawMessage
inEncryptMegolmEvent
. - (mediaproxy) Added
GetMediaResponseCallback
andGetMediaResponseFile
to write proxied data directly to http response or temp file instead of having to use anio.Reader
. - (mediaproxy) Dropped support for legacy media download endpoints.
- (mediaproxy,bridgev2) Made interface pass through query parameters.
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