All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning
- Fix message replacements not redacted.
- Fixed bug where own device keys are removed when leaving all rooms.
- Don't fail when setting read marker fails in outbox.
- Fix outbox may filter elements from cache, that are initial null.
- Allow to create temporary files from media.
- Use Blob in media-indexeddb.
- Fixed OPFS streams not closed.
- Catch more MediaStore exceptions.
- Log rate limits.
- Allow to drop elements from
Timeline
to support infinite timelines.
- Close HttpClient on stop().
- Allow to configure HttpClientEngine. This allows to reuse it, which spares a lot of resources when spawning many clients.
- Upgrade to Ktor 3
- Upgrade to Kotlin 2.0.21
- More flexible module definitions.
- Log cache statistics to find possibly memory leaks
- Fixed memory leak in cache due not cancelled coroutines
- Fix media config fetching when Matrix server does not support 1.11
- Support Matrix 1.12
- Generic return type for downloads in MediaApiClient
- internal: Upgrade dependencies
- Don't send content type when there is no body.
- Fixed blocking outbox.
- Deprecated modules never loaded
- Add utils for converting between Input-/OutputStream and ByteArrayFlow
- Add extensions for creating ByteArrayFlow from ByteBuffer
- Check server media config before uploading any media.
- Support files larger than 2.1GB
- Outbox API returns a sorted list
- Keep transaction id for redacted messages
- internal: new Docker images
- updated openssl and libolm (prepare Android 15 support)
modules
replaced bymodulesFactory
- Delete outbox on room forget
- Missing schema version in Realm prevented automatic migrations
- Add
via
parameter on join and knock requests (MSC4156)
- Don't decrypt events when searching for one via
getTimelineEvent
- Reaction aggregation now exposes the entire timeline event for each reaction, not just the user id
- internal: upgrade Dockerfile (use Adoptium Temurin JDK) and install binutils, fakeroot, flatpak and rpm for compose multiplatform
- Deprecate
server_name
query parameter on join and knock requests in favour ofvia
(MSC4156)
- Incorrect handling of reaction redactions and reactions
- internal: Simplify RoomListHandler
- Corrected an issue deserializing message relationships for annotations
- Deadlock in Timeline loading
- Remove own userId from heroes in room name
- Fix server versions not received leading to stuck media downloads
- Add AuthenticationApiClient.getSsoUrl
- Support for Matrix 1.11
- Upgraded Kotlin to 2.0.10
- Simplify room name calculation
- internal: precompiled gradle plugins
- Update ErrorResponse to contain non-nullable
error
field
- AbortSendMessage -> cancelSendMessage
- Not usable SSO endpoints in AuthenticationApiClient
- Wrong room name calculation when homeserver does not send complete room summary
- Allow message sending to be cancelled while the message is sent
- if already created a recovery olm session recently, skip creating a new one
- fixed typo in url of GetHierarchy
- smaller transaction scope on gap filling
- optimized cache to update cache value before persisting into database
- don't encode mimeType null
- cleaned up
MatrixRegex
- upgrade gradle to 8.9
- close Okio streams by default
- Make
refresh_token
required on /_matrix/client/v3/refresh. - /_matrix/client/v3/register/available returns the correct json body on 200.
- Allow to have individual timeouts when calling
getTimelineEvent
in parallel. Previously the first one calling defined the timeouts.
- parsing and scanning of mentions
- fixed wrong calculation of canLoadBefore and canLoadAfter in Timeline, when room with upgrades is used
- close JavaScript streams correctly
- move gradle locks to CI
- fix wrong AES counter increase in Browser
- added Kotlin Multiplatform support to client-repositories-room (JVM based targets for now, Native will be enabled, when more stable)
- revert: don't filter in load members
- update dependencies (including Kotlin 2.0.0)
- updated AndroidX Room (to an alpha version!)
- Streaming support of Media in Kotlin Browser target. This means, that for AES-CTR-256 and SHA-256 media is not loaded completely into memory anymore and instead processed sequentially.
- added
trixnity-client-media-opfs
, which implements a store with Origin private file system.
- don't filter in load members
- fix download on missing file
- never remove own keys from key tracking, when server says to
- fix typo in encrypted file content
- only decrypt when decryptionTimeout is larger than ZERO