Skip to content

matrix-sdk 0.12.0

Compare
Choose a tag to compare
@poljar poljar released this 10 Jun 11:46
· 572 commits to main since this release
matrix-sdk-0.12.0

What's Changed

Security Fixes

Features

  • Client::send_call_notification_if_needed now returns Result<bool> instead of Result<()> so we can check if
    the event was sent.
  • Added SendMediaUploadRequest wrapper for SendRequest, which checks the size of the request to
    upload making sure it doesn't exceed the m.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 stable m.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() and Room::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 the unstable-msc4274 feature.
    (#4977)

Bug fixes

  • A invited DM room joined with Client::join_room_by_id() or Client::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 into Room::push_condition_room_ctx(). The newer
    Room::push_context now returns a matrix_sdk::Room::PushContext, which can be used to compute
    the push actions for any event.
    (#4962)
  • Room::decrypt_event() now requires an extra matrix_sdk::Room::PushContext parameter to
    compute the push notifications for the decrypted event.
    (#4962)
  • SlidingSyncRoom has been removed. With it, the SlidingSync::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)