matrix-sdk 0.12.0
·
572 commits
to main
since this release
What's Changed
Security Fixes
- Check the sender of an event matches owner of session, preventing sender spoofing by homeserver owners.
13c1d20 (High, CVE-2025-48937, GHSA-x958-rvg6-956w).
Features
Client::send_call_notification_if_needed
now returnsResult<bool>
instead ofResult<()>
so we can check if
the event was sent.- Added
SendMediaUploadRequest
wrapper forSendRequest
, which checks the size of the request to
upload making sure it doesn't exceed them.upload.size
value that can be fetched through
Client::load_or_fetch_max_upload_size
. - Add
ClientBuilder::with_enable_share_history_on_invite
to enable experimental support for sharing encrypted room history on invite, per MSC4268.
(#5141) Room::list_threads()
is a new method to list all the threads in a room.
(#4972)Room::relations()
is a new method to list all the events related to another event
("relations"), with additional filters for relation type or relation type + event type.
(#4972)- The
EventCache
's persistent storage has been enabled by default. This means that all the events
received by sync or back-paginations will be stored, in memory or on disk, by default, as soon as
EventCache::subscribe()
has been called (which happens automatically if you're using the
matrix_sdk_ui::Timeline
). This offers offline access and super quick back-paginations (when the
cache has been filled) whenever the event cache is enabled. It's also not possible to disable the
persistent storage anymore. Note that by default, the event cache store uses an in-memory store,
so the events will be lost when the process exits. To store the events on disk, you need to use
the sqlite event cache store.
(#4308) Room::set_unread_flag()
now sets the stablem.marked_unread
room account data, which was
stabilized in Matrix 1.12.Room::is_marked_unread()
also ignores the unstable
com.famedly.marked_unread
room account data if the stable variant is present.
(#5034)Encryption::encrypt_and_send_raw_to_device
: Introduced as an experimental method for
sending custom encrypted to-device events. This feature is gated behind the
experimental-send-custom-to-device
flag, as it remains under active development and may undergo changes.
(4998)Room::send_single_receipt()
andRoom::send_multiple_receipts()
now also unset the unread
flag of the room if an unthreaded read receipt is sent.
(#5055)Client::is_user_ignored(&UserId)
can be used to check if a user is currently ignored.- (#5081)
RoomSendQueue::send_gallery
has been added to allow sending MSC4274-style media galleries
via the send queue under theunstable-msc4274
feature.
(#4977)
Bug fixes
- A invited DM room joined with
Client::join_room_by_id()
orClient::join_room_by_id_or_alias()
will now be correctly marked as a DM.
(#5043) - API responses with an HTTP status code
520
won't be retried anymore, as this is used by some proxies
(including Cloudflare) to warn that an unknown error has happened in the actual server.
(#5105)
Refactor
Room::push_context()
has been renamed intoRoom::push_condition_room_ctx()
. The newer
Room::push_context
now returns amatrix_sdk::Room::PushContext
, which can be used to compute
the push actions for any event.
(#4962)Room::decrypt_event()
now requires an extramatrix_sdk::Room::PushContext
parameter to
compute the push notifications for the decrypted event.
(#4962)SlidingSyncRoom
has been removed. With it, theSlidingSync::get_room
,
get_all_rooms
,get_rooms
,get_number_of_rooms
, and
FrozenSlidingSync
methods and type have been removed.
(#5047)Room::set_unread_flag()
is now a no-op if the unread flag already has the wanted value.
(#5055)