matrix-sdk 0.12.0
·
1610 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_needednow returnsResult<bool>instead ofResult<()>so we can check if
the event was sent.- Added
SendMediaUploadRequestwrapper forSendRequest, which checks the size of the request to
upload making sure it doesn't exceed them.upload.sizevalue that can be fetched through
Client::load_or_fetch_max_upload_size. - Add
ClientBuilder::with_enable_share_history_on_inviteto 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_unreadroom account data, which was
stabilized in Matrix 1.12.Room::is_marked_unread()also ignores the unstable
com.famedly.marked_unreadroom 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-deviceflag, 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_galleryhas been added to allow sending MSC4274-style media galleries
via the send queue under theunstable-msc4274feature.
(#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
520won'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_contextnow 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::PushContextparameter to
compute the push notifications for the decrypted event.
(#4962)SlidingSyncRoomhas been removed. With it, theSlidingSync::get_room,
get_all_rooms,get_rooms,get_number_of_rooms, and
FrozenSlidingSyncmethods 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)