Skip to content

Update Rust crate matrix-sdk to 0.17.0#51

Open
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/matrix-sdk-0.x
Open

Update Rust crate matrix-sdk to 0.17.0#51
oxide-renovate[bot] wants to merge 1 commit intomainfrom
renovate/matrix-sdk-0.x

Conversation

@oxide-renovate
Copy link
Copy Markdown
Contributor

@oxide-renovate oxide-renovate Bot commented May 9, 2026

This PR contains the following updates:

Package Type Update Change
matrix-sdk workspace.dependencies minor 0.16.00.17.0

Release Notes

matrix-org/matrix-rust-sdk (matrix-sdk)

v0.17.0: matrix-sdk 0.17.0

Compare Source

What's Changed

Features
  • [breaking] Room::is_dm was renamed to Room::compute_is_dm to match its behavior, since it'll now compute and cache the result. A new synchronous Room::is_dm function was added which centralizes the logic of checking if something is a DM based on that cached value and the provided DmRoomDefinition. Room::sync_members will also now compute active service members. (#​6537)
  • [breaking] Enforce atomic and synchronized updates to RoomInfo. Requires StateStore::save_changes to acquire state store lock and replaces Room::set_room_info with an atomic version, Room::update_room_info, which is also synchronized by the state store lock. (#​6478)
  • Added beacon and beacon_info fields to RoomPowerLevelChanges, allowing callers to read and update the power levels required to send beacon (live location) message events and beacon info state events respectively. (#​6540)
  • Added DmRoomDefinition as a parameter of ClientBuilder so we can specify it when creating a Client. Also added a Room::is_dm method and added some logic to use the new DM definitions in Client::get_dm_rooms and when using message search. (#​6490)
  • Sharing encrypted history on room invite, per MSC4268 is now enabled by default (though can still be disabled via ClientBuilder::with_enable_share_history_on_invite). (#​6497)
  • Add Client::get_dm_rooms function to get an iterator with the DMs for the provided user id. (#​6487)
  • Support the stable m.key_backup prefix for MSC4287: Sharing key backup preference between clients. (#​6410)
  • Add new high-level search helpers in matrix_sdk_ui::search to perform searches for messages in a room or across all rooms. (#​6394)
  • Latest Event does not emit an update when it computes the same value as the previous Latest Event (#​6396)
  • Add support for pushing the backup key to other clients, and receiving a pushed backup key from other clients (MSC4385), gated behind the experimental-push-secrets feature. (#​6432)
  • Add room_versions() & account_moderation() to HomeserverCapabilities. (#​6413)
  • Enable sending redaction events through the send queue via RoomSendQueue::redact. This includes local echoes for redaction events through the new LocalEchoContent::Redaction variant. (#​6250)
  • [breaking] Remove support for native-tls and remove all feature flags for selecting TLS backend, as rustls is the now the only supported TLS backend. (#​6409)
  • [breaking] Added HomeserverCapabilities and Client::homeserver_capabilities() to get the capabilities of the homeserver. This replaces Client::get_capabilities(). (#​6371)
  • [breaking] matrix_sdk::error::Error has a new variant Timeout which occurs when a cross-signing reset does not succeed after some period of time. (#​6325)
  • The beacon_info start event (MSC3672) is now included when computing the latest event for a room, so live location sharing sessions can be surfaced as a room's most recent activity. (#​6295)
  • [breaking] The EventCacheError is now Cloneable, which implied marking a few other error types as Cloneable, and wrapping a few other error variants with Arc. (#​6305)
  • [breaking]: The unread count computation has now moved from the sliding sync processing, to the event cache. As a result, it is necessary to enable the event cache if you want to keep a precise unread counts, using Client::event_cache().subscribe(). The unread counts will now also be available even if you used a previous version of sync (v2), as long as you've enabled the event cache beforehand. (#​6253)
  • [breaking] room::reply::Event has a new field add_mentions which is passed forward in room::reply::make_reply_event. (#​6270)
  • Add Recovery::recover_and_fix_backup to automatically fix key storage backup if the private backup decryption key is missing, invalid or inconsistent with the public key. (#​6252)
  • Attempt to import stored room key bundles for rooms awaiting bundles at client startup. (#​6215)
  • Add OAuth::cached_server_metadata() that caches the authorization server metadata for a while. (#​6217)
  • Add QRCodeGrantLoginError::SecureChannel for secure channel errors (#​6141
  • Add QRCodeGrantLoginError::UnexpectedMessage for protocol message errors (#​6141
  • Add QRCodeGrantLoginError::LoginFailure for login failure errors received from the other device (#​6141
  • Add QRCodeGrantLoginError::DeviceNotFound for when the requested device was not returned by the homeserver (#​6141
  • Add Client::subscribe_to_duplicate_key_upload_errors for listening to duplicate key upload errors from /keys/upload. (#​6135)
  • Add Room::pin_event and Room::unpin_event, which allow pinning and unpinning events from a room. These were extracted from the matrix_sdk_ui crate, with no changes in functionality. (#​6106)
  • LatestEventValue::RemoteInvite is added to handle a Latest Event for invite room. (#​6056)
  • Add Room::set_own_member_display_name to set the current user's display name within only the one single room (can be used for /myroomnick functionality). (#​5981)
  • Sending MessageLike and RawMessageLike events through a Room now returns the used EncryptionInfo, if any. (#​5936)
  • [breaking]: The new Latest Event API replaces the old API. All the new_ prefixes have been removed, thus Room::new_latest_event becomes and overwrites the Room::latest_event value. The new Latest Event values stored in RoomInfo are also erased once during the first update of the SDK. The new values will be re-calculated. The following types or functions are removed: PossibleLatestEvent, is_suitable_for_latest_event, and LatestEvent (replaced by LatestEventValue). See the documentation of matrix_sdk::latest_event to learn about the new API. (#​5624)
  • Expose a new method RoomEventCache::find_event_relations for loading events relating to a specific event ID from the cache. (#​5930)
  • Replace in-memory stores with IndexedDB implementations when initializing Client with BuilderStoreConfig::IndexedDb. (#​5946)
  • Call: Add support for the new Intents for voice only calls Intent.StartCallDmVoice and Intent.JoinExistingDmVoice. (#​6003)
  • Add SlidingSync::unsubscribe_to_rooms and SlidingSync::clear_and_subscribe_to_rooms. (#​6012)
  • [breaking] Sliding Sync has a new PollTimeout type, used by SlidingSyncBuilder::requires_timeout. (#​6005)
  • Inviting a user to a room with Client::enable_share_history_on_invite set to true will now trigger a download of all historical keys for the room in question from the client's key backup. (#​6017)
  • Add widget partial support for MSC4039. Allows widgets to download non-encrypted files from the content repository (like avatars). (#​6354)
Breaking Changes
  • [breaking] LiveLocationShares has been renamed to LiveLocationsObserver and Room::live_location_shares to Room::live_locations_observer. (#​6446)
  • Room::observe_live_location_shares has been replaced by Room::live_locations_observer. The new API returns a LiveLocationsObserver struct with a subscribe() method that provides an initial snapshot (Vector<LiveLocationShare>) and a batched stream of VectorDiff updates, instead of emitting individual LiveLocationShare items as beacon events arrive. The initial snapshot is loaded from the event cache on creation, includes the own user's shares (previously excluded), and properly handles share start/stop by listening to beacon_info state events. (#​6385)
Bugfix
  • Add the session key in OAuthCrossSigningResetInfo, allowing to provide AuthData::OAuth in CrossSigningResetHandle::auth(), to match the behavior described in the Matrix spec. (#​6525)
  • When threads are enabled, a focused event timeline is used and the focused event is not part of a thread, hide other threaded events by default like it happens on the live focus timeline. (#​6519)
  • Add a recursion limit attribute that raises it from the default value of 128 to 256. (#​6489)
  • Reject invalid edits as candidates for the latest event. (#​6454)
  • Fix an infinite loop when loading pinned events from the storage. (#​6453)
  • beacon_info stop events (live: false, MSC3672) are now also eligible as the latest event for a room, preventing the live location sharing item from disappearing from the room list summary once the session ends. (#​6373)
  • Android: add back custom certificates and disabling SSL verification options in ClientBuilder using the previous webkpi verifier instead of platform verifier, otherwise these features will fail. (#​6328)
  • Room keys are now rotated whenever the client receives an m.room.member event not belonging to the current user with non-join membership in order to prevent MSC4268 from leaking room keys in an unintuitive manner. (#​6292) (#​6457)
  • Only share historic room keys on invite if the current room history is shared. (#​6275)
  • The event cache's thread subscriptions background task won't enable if the server doesn't advertise support for the experimental thread subscription feature. In the past, this would result in sending spurious requests that aren't supported by the user's homeserver. (#​6245)
  • Handle race between send queue update and remote echo in latest event computation. (#​6220)
  • Return QRCodeGrantLoginError::DeviceNotFound instead of QRCodeGrantLoginError::DeviceIDAlreadyInUse for when the new device is not returned by the homeserver. (#​6141
  • Latest Event is correctly computed when multiple edits exist for the same event candidate. (#​6096)
  • Restrict which m.room.member can be a LatestEventValue candidate by relying on MembershipChange for more control. (#​6143)
  • Add manual WAL checkpoints when opening Sqlite DBs and when vacuuming them, since the WAL files aren't automatically shrinking. (#​6004)
  • Use the server name extracted from the user id in Client::fetch_client_well_known as a fallback value. Otherwise, sometimes the server name is not available and we can't reload the well-known contents. (#​5996)
  • Latest Event is lazier: a RoomLatestEvents can be registered even if its associated RoomEventCache isn't created yet. (#​5947)
  • Allow granting of QR login to a new client whose device ID is not a base64 encoded Curve25519 public key. (#​5940)
  • Remove an unwrap in SlidingSync::send_sync_request when an asynchronous task panics or is cancelled. (#​6316)
Refactor
  • [breaking] Upgrade Ruma to 0.15.1. (#​6503)
  • Revert back to to determining lock dirtiness in Encryption::{spin_lock_store, try_lock_once_store} through logic defined in OlmMachine, rather than CrossProcessLock. (#​6496)
  • [breaking] Update Encryption::{spin_lock_store, try_lock_once_store} so that lock dirtiness is determined entirely by CrossProcessLock, rather than logic defined by OlmMachine. Also enforce that lock generation is opaque by removing CrossProcessLockStoreGuardWithGeneration. (#​6326)
  • [breaking] The EventCache now owns pagination tasks, and will run them to completion, even if a manual caller stopped polling the called future. (#​6304)
  • [breaking] RoomEventCache::thread_pagination is now async and fallible. (#​6280)
  • [breaking] The UrlOrQuery enum was moved from the authentication::oauth module to the utils module. It can also be converted from a QueryString. (#​6224)
  • [breaking] MatrixAuth::login_with_sso_callback() takes a UrlOrQuery instead of a Url, to make it more convenient to use with LocalServerBuilder / LocalServerRedirectHandle. (#​6224)
  • [breaking] Room::report_content() no longer takes a score argument, because it was removed from the Matrix specification. The ReportedContentScore type was removed too. (#​6256)
  • [breaking] Client::enabled_thread_subscriptions() is now async and fallible, as it will check for both static enablement of the thread subscription feature as well as dynamically checking that the user's homeserver supports it.
  • [breaking] SessionChange::UnknownToken is now a tuple variant containing an UnknownTokenErrorData. (#​6241)
  • [breaking] EventCacheError::BackPaginationError has been renamed PaginationError. (#​6239)
  • [breaking] The functions on the OAuth API to access the account management URL and its actions were removed. The methods available on the AuthorizationServerMetadata should be used instead. (#​6217)
  • [breaking] QRCodeGrantLoginError::UnableToCreateDevice has been removed (#​6141
  • The RoomEventCache::paginate_thread_backwards method is replaced by RoomEventCache::thread_pagination which returns a new ThreadPagination type, similar to RoomPagination. (#​6174)
    Before:
    room_event_cache.paginate_thread_backwards(thread_id, 42).await
    After:
    room_event_cache.thread_pagination(thread_id).run_backwards_once(42).await
  • RoomPaginationStatus is renamed to PaginationStatus. (#​6174)
  • [breaking] Replaced ClientBuilder::cross_process_store_locks_holder_name with ClientBuilder::cross_process_store_config to allow specifying the configuration for the cross-process lock and whether it should act as a no-op (client used in a single process) or we should keep the previous behavior (client
    used in multiple processes). (#​6160)

v0.16.1: matrix-sdk 0.16.1

Compare Source

What's Changed

Bugfix
  • Add a recursion limit attribute that raises it from the default value of 128 to 256. (#​6489)
  • Reject invalid edits as candidates for the latest event. (#​6454)
  • Check the user ID in the sender_device_keys property of Olm-encrypted
    to-device events. (#​6553)

Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • "after 8pm,before 6am"
  • Automerge
    • "after 8pm,before 6am"

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@oxide-renovate
Copy link
Copy Markdown
Contributor Author

oxide-renovate Bot commented May 9, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --workspace
    Updating crates.io index
error: failed to select a version for `matrix-sdk`.
    ... required by package `microbot v0.1.0 (/tmp/renovate/repos/github/oxidecomputer/microbot/microbot)`
versions that meet the requirements `^0.17.0` are: 0.17.0

package `microbot` depends on `matrix-sdk` with feature `rustls-tls` but `matrix-sdk` does not have that feature.
 available features: anyhow, assert_matches2, automatic-room-key-forwarding, bundled-sqlite, default, docsrs, e2e-encryption, experimental-element-recent-emojis, experimental-encrypted-state-events, experimental-push-secrets, experimental-search, experimental-send-custom-to-device, experimental-widgets, eyre, federation-api, indexeddb, js, local-server, markdown, matrix-sdk-indexeddb, matrix-sdk-search, matrix-sdk-test, qrcode, socks, sqlite, sso-login, testing, uniffi, unstable-msc4274, wiremock


failed to select a version for `matrix-sdk` which could resolve this conflict

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants