7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 1 | # Changelog |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 2 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 3 | All notable changes to this project will be documented in this file. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 4 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 5 | <!-- changelog start --> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 6 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 7 | ## [0.18.0](https://github.com/matrix-org/matrix-rust-sdk/tree/0.18.0) - 2026-06-02 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 8 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 9 | No significant changes. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 10 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 11 | ## [0.17.0] - 2026-05-08 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 12 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 13 | ### Bug fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 14 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 15 | - Check the user ID in the `sender_device_keys` property of Olm-encrypted |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 16 | to-device events to prevent sender spoofing by homeserver owners. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 17 | ([#6553](https://github.com/matrix-org/matrix-rust-sdk/pull/6553)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 18 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 19 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 20 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 21 | - [**breaking**] Change to the stable identifiers for `m.room_key_bundle`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 22 | `m.history_not_shared` and `m.shared_history`. We still support reading the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 23 | unstable identifiers. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 24 | ([#6467](https://github.com/matrix-org/matrix-rust-sdk/pull/6467)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 25 | - Add support for MSC4385. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 26 | ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 27 | - Add new method `OlmMachine::push_secret_to_verified_devices`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 28 | - Pushed secrets that we receive from verified devices are added to the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 29 | secrets inbox. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 30 | - Add `Store::{store,clear}_room_pending_key_bundle`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 31 | `CryptoStore::get_pending_key_bundle_details_for_room` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 32 | `CryptoStore::get_all_rooms_pending_key_bundle`, which can be used by |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 33 | applications to track whether they are expecting an |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 34 | [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268) key |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 35 | bundle. ([#6199](https://github.com/matrix-org/matrix-rust-sdk/pull/6199)), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 36 | ([#6233](https://github.com/matrix-org/matrix-rust-sdk/pull/6233)), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 37 | - Add MSC4388 support to the QrcodeData struct. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 38 | ([#6089](https://github.com/matrix-org/matrix-rust-sdk/pull/6089)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 39 | - Improved logging when we are sending secrets in `GossipMachine`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 40 | ([#6074](https://github.com/matrix-org/matrix-rust-sdk/pull/6074)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 41 | ([#6083](https://github.com/matrix-org/matrix-rust-sdk/pull/6083)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 42 | - Added a new field `forwarder` to `InboundGroupSession` of type |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 43 | `ForwarderData`, which stores information about the forwarder of a session |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 44 | shared in a room key bundle under |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 45 | [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 46 | ([#5980])([https://github.com/matrix-org/matrix-rust-sdk/pull/5980][https-github-com-matrix-org-matrix-rust-sdk-pull-5980]) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 47 | - The `OutboundGroupSession` and `OlmMachine` now return the `EncryptionInfo` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 48 | used when encrypting raw events. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 49 | ([#5936](https://github.com/matrix-org/matrix-rust-sdk/pull/5936)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 50 | - Expose a new method `CryptoStore::has_downloaded_all_room_keys`, used to track |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 51 | whether the client has previously downloaded historical room keys for a given |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 52 | room from key backup prior to building an |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 53 | [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268) room |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 54 | key bundle. ([#6017](https://github.com/matrix-org/matrix-rust-sdk/pull/6017)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 55 | ([#6044](https://github.com/matrix-org/matrix-rust-sdk/pull/6044)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 56 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 57 | ### Refactor |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 58 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 59 | - Re-introduce cross-process lock generation logic in `OlmMachine` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 60 | ([#6496](https://github.com/matrix-org/matrix-rust-sdk/pull/6496)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 61 | - [**breaking**] The `MegolmV1BackupKey::encrypt` now returns a `Result` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 62 | ([#6477](https://github.com/matrix-org/matrix-rust-sdk/pull/6477)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 63 | - [**breaking**] `CryptoStore::get_secrets_from_inbox` now returns a `Vec` of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 64 | the secrets as strings, rather than a `Vec` of `GossippedSecret` structs. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 65 | ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 66 | - [**breaking**] `store::types::Changes::sessions` now stores a `Vec` of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 67 | `SecretsInboxItem`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 68 | ([#6164](https://github.com/matrix-org/matrix-rust-sdk/pull/6164)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 69 | - **breaking** The `BackupDecryptionKey::new` and `DehydratedDeviceKey::new` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 70 | methods became infallible, they don't return a `Result` anymore. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 71 | ([#5502](https://github.com/matrix-org/matrix-rust-sdk/pull/5502)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 72 | - [**breaking**] Remove cross-process lock generation logic from `OlmMachine`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 73 | which is now implemented more generally in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 74 | `matrix_sdk_common::cross_process_lock::CrossProcessLock`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 75 | ([#6326](https://github.com/matrix-org/matrix-rust-sdk/pull/6326)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 76 | - [**breaking**] The `MediaEncryptionInfo` fields changed to match the new |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 77 | fields of `EncryptedFile` from Ruma. The serialized JSON format did not change |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 78 | and still matches the format of `EncryptedFile` defined in the spec, without |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 79 | the `url` field. The `DecryptorError::KeyNonceLength` variant was removed |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 80 | because the length of the key and nonce are now enforced in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 81 | `MediaEncryptionInfo`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 82 | ([#6346](https://github.com/matrix-org/matrix-rust-sdk/pull/6346)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 83 | - [**breaking**] Removed `WithLocking` from `EncryptionSyncService` and replaced |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 84 | it with `CrossProcessLockConfig`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 85 | ([#6160](https://github.com/matrix-org/matrix-rust-sdk/pull/6160)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 86 | - [**breaking**] The QrcodeData struct has been reworked in preparation to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 87 | support MSC4388. The fields of the QrcodeData struct are not anymore publicly |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 88 | accessible. The `mode_data()` method has been renamed to `intent_data()` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 89 | returns an MSC-specific struct now. The `rendezvous_url()` method has been |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 90 | removed. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 91 | ([#6081](https://github.com/matrix-org/matrix-rust-sdk/pull/6081)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 92 | - [**breaking**] The `message-ids` feature has been removed. It was already a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 93 | no-op and has now been eliminated entirely. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 94 | ([#5963](https://github.com/matrix-org/matrix-rust-sdk/pull/5963)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 95 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 96 | ## [0.16.1] - 2026-05-08 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 97 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 98 | ### Bug fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 99 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 100 | - Check the user ID in the `sender_device_keys` property of Olm-encrypted |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 101 | to-device events to prevent sender spoofing by homeserver owners. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 102 | ([#6553](https://github.com/matrix-org/matrix-rust-sdk/pull/6553)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 103 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 104 | ## [0.16.0] - 2025-12-04 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 105 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 106 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 107 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 108 | - When we receive an inbound Megolm session from two different sources, merge |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 109 | the two copies together to get the best of both. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 110 | ([#5865](https://github.com/matrix-org/matrix-rust-sdk/pull/5865) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 111 | - When constructing a key bundle for history sharing, if we had received a key |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 112 | bundle ourselves, in which one or more sessions was marked as "history not |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 113 | shared", pass that on to the new user. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 114 | ([#5820](https://github.com/matrix-org/matrix-rust-sdk/pull/5820) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 115 | - Expose new method `CryptoStore::get_withheld_sessions_by_room_id`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 116 | ([#5819](https://github.com/matrix-org/matrix-rust-sdk/pull/5819)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 117 | - Use new withheld code in key bundles for sessions not marked as |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 118 | `shared_history`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 119 | ([#5807](https://github.com/matrix-org/matrix-rust-sdk/pull/5807), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 120 | ([#5834](https://github.com/matrix-org/matrix-rust-sdk/pull/5834)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 121 | - Improve feedback support for shared history when downloading room key |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 122 | bundles. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 123 | ([#5737](https://github.com/matrix-org/matrix-rust-sdk/pull/5737)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 124 | - Add `RoomKeyWithheldEntry` enum, wrapping either a received to-device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 125 | `m.room_key.withheld` event or its content, if derived from a downloaded |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 126 | room key bundle. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 127 | - `OlmMachine::receive_room_key_bundle` now appends withheld key information |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 128 | to the store. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 129 | - [**breaking**] `Changes::withheld_session_info` now stores a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 130 | `RoomKeyWithheldEntry` in each `room-id`-`session-id` entry. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 131 | - [**breaking**] `CryptoStore::get_withheld_info` now returns |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 132 | `Result<Option<RoomKeyWithheldEntry>>`. This change also affects |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 133 | `MemoryStore`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 134 | - [**breaking**] Add `name` fields to some of the variants of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 135 | `store::SecretImportError` to indicate what secret was being imported when the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 136 | error occurred. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 137 | ([#5647](https://github.com/matrix-org/matrix-rust-sdk/pull/5647)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 138 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 139 | ### Bug fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 140 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 141 | - Fix a bug which caused encrypted to-device messages from unknown devices to be |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 142 | ignored. ([#5763](https://github.com/matrix-org/matrix-rust-sdk/pull/5763)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 143 | - Fix a bug which caused history shared on invite to be ignored when "exclude |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 144 | insecure devices" was enabled. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 145 | ([#5763](https://github.com/matrix-org/matrix-rust-sdk/pull/5763)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 146 | - Fix a bug introduced in 0.14.0 which meant that the serialization of the value |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 147 | returned by `OtherUserIdentity::verification_request_content` did not include |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 148 | a `msgtype` field. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 149 | ([#5642](https://github.com/matrix-org/matrix-rust-sdk/pull/5642)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 150 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 151 | ## [0.14.0] - 2025-09-04 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 152 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 153 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 154 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 155 | - Log message index for Megolm sessions received over encrypted to-device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 156 | messages. ([#5599](https://github.com/matrix-org/matrix-rust-sdk/pull/5599)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 157 | - Add `RoomSettings::encrypt_state_events` flag. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 158 | ([#5511](https://github.com/matrix-org/matrix-rust-sdk/pull/5511)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 159 | - Make sure to accept historic room key bundles only if the sender is trusted |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 160 | enough. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 161 | ([#5510](https://github.com/matrix-org/matrix-rust-sdk/pull/5510)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 162 | - [**breaking**]: When in "exclude insecure devices" mode, refuse to decrypt |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 163 | incoming to-device messages from unverified devices, except for some |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 164 | exceptions for certain event types. To support this, a new variant has been |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 165 | added to `ProcessedToDeviceEvent`: `UnverifiedSender`, which is returned from |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 166 | `OlmMachine::receive_sync_changes` when we are excluding insecure devices and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 167 | the sender's device is not verified. Also, several methods now take a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 168 | `DecryptionSettings` argument to allow controlling the processing of to-device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 169 | events based on those settings. To recreate the previous behaviour pass in: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 170 | `DecryptionSettings { sender_device_trust_requirement: TrustRequirement::Untrusted }`. <!-- rumdl-disable-line MD013 --> |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 171 | Affected methods are `OlmMachine::receive_sync_changes`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 172 | `RehydratedDevice::receive_events`, and several internal methods. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 173 | ([#5319](https://github.com/matrix-org/matrix-rust-sdk/pull/5319)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 174 | - [**breaking**] The `Device::encrypt_event_raw` and (experimental) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 175 | `OlmMachine::encrypt_content_for_devices` have new `share_strategy` parameters |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 176 | to ensure that the recipients are sufficiently trusted. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 177 | ([#5457](https://github.com/matrix-org/matrix-rust-sdk/pull/5457/)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 178 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 179 | ### Refactor |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 180 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 181 | - [**breaking**] The `sender_key` and `device_id` fields of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 182 | `encrypted::MegolmV1AesSha2Content` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 183 | `room_key_request::MegolmV1AesSha2Content` are now optional. The have been |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 184 | deprecated in Matrix 1.3 and are no longer required. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 185 | ([#5489](https://github.com/matrix-org/matrix-rust-sdk/pull/5489)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 186 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 187 | ## [0.13.0] - 2025-07-10 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 188 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 189 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 190 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 191 | - [**breaking**] Add a new `VerificationLevel::MismatchedSender` to indicate |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 192 | that the sender of an event appears to have been tampered with. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 193 | ([#5219](https://github.com/matrix-org/matrix-rust-sdk/pull/5219)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 194 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 195 | ### Refactor |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 196 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 197 | - [**breaking**] The `PendingChanges`, `Changes`, `StoredRoomKeyBundleData`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 198 | `TrackedUser`, `IdentityChanges`, `DeviceChanges`, `DeviceUpdates`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 199 | `IdentityUpdates`, `BackupDecryptionKey`, `DehydratedDeviceKey`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 200 | `RoomKeyCounts`, `BackupKeys`, `CrossSigningKeyExport`, `UserKeyQueryResult`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 201 | `RoomSettings`, `RoomKeyInfo`, and `RoomKeyWithheldInfo` types have been moved |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 202 | from the `store` module into a new `store/types` module. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 203 | ([#5177](https://github.com/matrix-org/matrix-rust-sdk/pull/5177)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 204 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 205 | ## [0.12.0] - 2025-06-10 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 206 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 207 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 208 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 209 | - [**breaking**] The `ProcessedToDeviceEvent::Decrypted` variant now also have |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 210 | an `EncryptionInfo` field. Format changed from |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 211 | `Decrypted(Raw<AnyToDeviceEvent>)` to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 212 | `Decrypted { raw: Raw<AnyToDeviceEvent>, encryption_info: EncryptionInfo) }` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 213 | ([#5074](https://github.com/matrix-org/matrix-rust-sdk/pull/5074)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 214 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 215 | - [**breaking**] Move `session_id` from `EncryptionInfo` to `AlgorithmInfo` as |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 216 | it is megolm specific. Use `EncryptionInfo::session_id()` helper for quick |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 217 | access. ([#4981](https://github.com/matrix-org/matrix-rust-sdk/pull/4981)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 218 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 219 | - Send stable identifier `sender_device_keys` for MSC4147 (Including device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 220 | keys with Olm-encrypted events). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 221 | ([#4964](https://github.com/matrix-org/matrix-rust-sdk/pull/4964)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 222 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 223 | - Add experimental APIs for sharing encrypted room key history with new members, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 224 | `Store::build_room_key_bundle` and `OlmMachine::share_room_key_bundle_data`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 225 | ([#4775](https://github.com/matrix-org/matrix-rust-sdk/pull/4775), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 226 | [#4864](https://github.com/matrix-org/matrix-rust-sdk/pull/4864)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 227 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 228 | - Check the `sender_device_keys` field on _all_ incoming Olm-encrypted to-device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 229 | messages and ignore any to-device messages which include the field but whose |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 230 | data is invalid (as per |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 231 | [MSC4147](https://github.com/matrix-org/matrix-spec-proposals/pull/4147)). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 232 | ([#4922](https://github.com/matrix-org/matrix-rust-sdk/pull/4922)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 233 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 234 | - Fix bug which caused room keys to be unnecessarily rotated on every send in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 235 | the presence of blacklisted/withheld devices in the room. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 236 | ([#4954](https://github.com/matrix-org/matrix-rust-sdk/pull/4954)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 237 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 238 | - Fix [#2729](https://github.com/matrix-org/matrix-rust-sdk/issues/2729) which |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 239 | in rare cases can cause room key oversharing. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 240 | ([#4975](https://github.com/matrix-org/matrix-rust-sdk/pull/4975)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 241 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 242 | - [**breaking**] `OlmMachine.receive_sync_changes` returns now a list of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 243 | `ProcessedToDeviceEvent` instead of a list of `Raw<AnyToDeviceEvent>`. With |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 244 | variants like `Decrypted`|`UnableToDecrypt`|`PlainText`|`NotProcessed`. This |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 245 | allows for example to make the difference between an event sent in clear and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 246 | an event successfully decrypted. For quick compatibility a helper |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 247 | `ProcessedToDeviceEvent::to_raw` allows to map back to the previous behaviour. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 248 | ([#4935](https://github.com/matrix-org/matrix-rust-sdk/pull/4935)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 249 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 250 | ## [0.11.1] - 2025-06-10 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 251 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 252 | ### Security fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 253 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 254 | - Check the sender of an event matches owner of session, preventing sender |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 255 | spoofing by homeserver owners. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 256 | [13c1d20](https://github.com/matrix-org/matrix-rust-sdk/commit/13c1d2048286bbabf5e7bc6b015aafee98f04d55) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 257 | (High, [CVE-2025-48937](https://www.cve.org/CVERecord?id=CVE-2025-48937), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 258 | [GHSA-x958-rvg6-956w](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-x958-rvg6-956w)). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 259 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 260 | ### Bug fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 261 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 262 | - Remove a wildcard enum variant import which breaks compilation if used with |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 263 | `tracing-attributes` version `0.1.29`. This is a workaround for a bug in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 264 | `tracing-attributes`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 265 | ([#5190](https://github.com/matrix-org/matrix-rust-sdk/issues/5190)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 266 | ([#5191](https://github.com/matrix-org/matrix-rust-sdk/issues/5191)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 267 | ([#5193](https://github.com/matrix-org/matrix-rust-sdk/issues/5193)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 268 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 269 | ## [0.11.0] - 2025-04-11 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 270 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 271 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 272 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 273 | - [**breaking**] Add support for the shared history flag defined in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 274 | [MSC3061](https://github.com/matrix-org/matrix-spec-proposals/pull/3061). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 275 | The shared history flag is now respected when room keys are received as an |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 276 | `m.room_key` event as well as when they are imported from a backup or a file |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 277 | export. We also ensure to set the flag when we send out room keys. Due to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 278 | this, a new argument to the constructor for `room_key::MegolmV1AesSha2Content` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 279 | has been added and `PickledInboundGroupSession` has received a new |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 280 | `shared_history` field that defaults to `false.` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 281 | ([#4700](https://github.com/matrix-org/matrix-rust-sdk/pull/4700)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 282 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 283 | - Have the `RoomIdentityProvider` return processing changes when identities |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 284 | transition to `IdentityState::Verified` too. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 285 | ([#4670](https://github.com/matrix-org/matrix-rust-sdk/pull/4670)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 286 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 287 | ## [0.10.0] - 2025-02-04 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 288 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 289 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 290 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 291 | - [**breaking**] `CollectStrategy::DeviceBasedStrategy` is now split into three |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 292 | separate strategies (`AllDevices`, `ErrorOnVerifiedUserProblem`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 293 | `OnlyTrustedDevices`), to make the behaviour clearer. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 294 | ([#4581](https://github.com/matrix-org/matrix-rust-sdk/pull/4581)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 295 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 296 | - Accept stable identifier `sender_device_keys` for MSC4147 (Including device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 297 | keys with Olm-encrypted events). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 298 | ([#4420](https://github.com/matrix-org/matrix-rust-sdk/pull/4420)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 299 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 300 | - Room keys are not shared with unsigned dehydrated devices. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 301 | ([#4551](https://github.com/matrix-org/matrix-rust-sdk/pull/4551)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 302 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 303 | ## [0.9.0] - 2024-12-18 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 304 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 305 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 306 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 307 | - [**breaking**] Expose new API |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 308 | `DehydratedDevices::get_dehydrated_device_pickle_key`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 309 | `DehydratedDevices::save_dehydrated_device_pickle_key` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 310 | `DehydratedDevices::delete_dehydrated_device_pickle_key` to store/load the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 311 | dehydrated device pickle key. This allows client to automatically rotate |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 312 | the dehydrated device to avoid one-time-keys exhaustion and to_device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 313 | accumulation. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 314 | `DehydratedDevices::keys_for_upload` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 315 | `DehydratedDevices::rehydrate` now use the `DehydratedDeviceKey` as parameter |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 316 | instead of a raw byte array. Use `DehydratedDeviceKey::from_bytes` to migrate. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 317 | ([#4383](https://github.com/matrix-org/matrix-rust-sdk/pull/4383)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 318 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 319 | - Add extra logging in `OtherUserIdentity::pin_current_master_key` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 320 | `OtherUserIdentity::withdraw_verification`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 321 | ([#4415](https://github.com/matrix-org/matrix-rust-sdk/pull/4415)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 322 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 323 | - Added new `UtdCause` variants `WithheldForUnverifiedOrInsecureDevice` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 324 | `WithheldBySender`. These variants provide clearer categorization for expected |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 325 | Unable-To-Decrypt (UTD) errors when the sender either did not wish to share or |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 326 | was unable to share the room_key. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 327 | ([#4305](https://github.com/matrix-org/matrix-rust-sdk/pull/4305)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 328 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 329 | - `UtdCause` has two new variants that replace the existing `HistoricalMessage`: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 330 | `HistoricalMessageAndBackupIsDisabled` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 331 | `HistoricalMessageAndDeviceIsUnverified`. These give more detail about what |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 332 | went wrong and allow us to suggest to users what actions they can take to fix |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 333 | the problem. See the doc comments on these variants for suggested wording. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 334 | ([#4384](https://github.com/matrix-org/matrix-rust-sdk/pull/4384)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 335 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 336 | ## [0.8.0] - 2024-11-19 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 337 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 338 | ### Features |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 339 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 340 | - Pin identity when we withdraw verification. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 341 | - Expose new method `OlmMachine::room_keys_withheld_received_stream`, to allow |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 342 | applications to receive notifications about received `m.room_key.withheld` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 343 | events. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 344 | ([#3660](https://github.com/matrix-org/matrix-rust-sdk/pull/3660)), |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 345 | ([#3674](https://github.com/matrix-org/matrix-rust-sdk/pull/3674)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 346 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 347 | - Expose new method `OlmMachine::clear_crypto_cache()`, with FFI bindings. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 348 | ([#3462](https://github.com/matrix-org/matrix-rust-sdk/pull/3462)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 349 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 350 | - Expose new method `OlmMachine::upload_device_keys()`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 351 | ([#3457](https://github.com/matrix-org/matrix-rust-sdk/pull/3457)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 352 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 353 | - Expose new method `CryptoStore::import_room_keys`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 354 | ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 355 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 356 | - Expose new method `BackupMachine::backup_version`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 357 | ([#3320](https://github.com/matrix-org/matrix-rust-sdk/pull/3320)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 358 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 359 | - Add data types to parse the QR code data for the QR code login defined in. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 360 | [MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 361 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 362 | - Expose new method `CryptoStore::clear_caches`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 363 | ([#3338](https://github.com/matrix-org/matrix-rust-sdk/pull/3338)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 364 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 365 | - Expose new method `OlmMachine::device_creation_time`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 366 | ([#3275](https://github.com/matrix-org/matrix-rust-sdk/pull/3275)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 367 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 368 | - Log more details about the Olm session after encryption and decryption. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 369 | ([#3242](https://github.com/matrix-org/matrix-rust-sdk/pull/3242)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 370 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 371 | - When Olm message decryption fails, report the error code(s) from the failure. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 372 | ([#3212](https://github.com/matrix-org/matrix-rust-sdk/pull/3212)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 373 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 374 | - Expose new methods `OlmMachine::set_room_settings` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 375 | `OlmMachine::get_room_settings`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 376 | ([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 377 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 378 | - Add new properties `session_rotation_period` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 379 | `session_rotation_period_msgs` to `store::RoomSettings`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 380 | ([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 381 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 382 | - Fix bug which caused `SecretStorageKey` to incorrectly reject secret storage |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 383 | keys whose metadata lacked check fields. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 384 | ([#3046](https://github.com/matrix-org/matrix-rust-sdk/pull/3046)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 385 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 386 | - Add new API `Device::encrypt_event_raw` that allows |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 387 | to encrypt an event to a specific device. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 388 | ([#3091](https://github.com/matrix-org/matrix-rust-sdk/pull/3091)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 389 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 390 | - Add new API `store::Store::export_room_keys_stream` that provides room |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 391 | keys on demand. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 392 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 393 | - Include event timestamps on logs from event decryption. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 394 | ([#3194](https://github.com/matrix-org/matrix-rust-sdk/pull/3194)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 395 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 396 | ### Refactor |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 397 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 398 | - Fix [#4424](https://github.com/matrix-org/matrix-rust-sdk/issues/4424) Failed |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 399 | storage upgrade for "PreviouslyVerifiedButNoLonger". This bug caused errors to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 400 | occur when loading crypto information from storage, which typically prevented |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 401 | apps from starting correctly. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 402 | ([#4430](https://github.com/matrix-org/matrix-rust-sdk/pull/4430)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 403 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 404 | - Add new method `OlmMachine::try_decrypt_room_event`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 405 | ([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 406 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 407 | - Add reason code to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 408 | `matrix_sdk_common::deserialized_responses::UnableToDecryptInfo`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 409 | ([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 410 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 411 | - [**breaking**] The `UserIdentity` struct has been renamed to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 412 | `OtherUserIdentity`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 413 | ([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036])) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 414 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 415 | - [**breaking**] The `UserIdentities` enum has been renamed to `UserIdentity`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 416 | ([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036])) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 417 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 418 | - Change the withheld code for keys not shared due to the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 419 | `IdentityBasedStrategy`, from `m.unauthorised` to `m.unverified`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 420 | ([#3985](https://github.com/matrix-org/matrix-rust-sdk/pull/3985)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 421 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 422 | - Improve logging for undecryptable Megolm events. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 423 | ([#3989](https://github.com/matrix-org/matrix-rust-sdk/pull/3989)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 424 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 425 | - Miscellaneous improvements to logging for verification and `OwnUserIdentity` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 426 | updates. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 427 | ([#3949](https://github.com/matrix-org/matrix-rust-sdk/pull/3949)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 428 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 429 | - Update `SenderData` on existing inbound group sessions when we receive |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 430 | updates via `/keys/query`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 431 | ([#3849](https://github.com/matrix-org/matrix-rust-sdk/pull/3849)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 432 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 433 | - Add message IDs to all outgoing to-device messages encrypted by |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 434 | `matrix-sdk-crypto`. The `message-ids` feature of `matrix-sdk-crypto` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 435 | `matrix-sdk-base` is now a no-op. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 436 | ([#3776](https://github.com/matrix-org/matrix-rust-sdk/pull/3776)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 437 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 438 | - Log the content of received `m.room_key.withheld` to-device events. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 439 | ([#3591](https://github.com/matrix-org/matrix-rust-sdk/pull/3591)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 440 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 441 | - Attempt to decrypt bundled events (reactions and the latest thread reply) if |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 442 | they are found in the unsigned part of an event. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 443 | ([#3468](https://github.com/matrix-org/matrix-rust-sdk/pull/3468)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 444 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 445 | - Sign the device keys with the user-identity (i.e. cross-signing keys) if |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 446 | we're uploading the device keys and if the cross-signing keys are available. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 447 | This approach eliminates the need to upload signatures in a separate request, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 448 | ensuring that other users/devices will never encounter this device without a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 449 | signature from their user identity. Consequently, they will never see the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 450 | device as unverified. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 451 | ([#3453](https://github.com/matrix-org/matrix-rust-sdk/pull/3453)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 452 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 453 | - Avoid emitting entries from `identities_stream_raw` and `devices_stream` when |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 454 | we receive a `/keys/query` response which shows that no devices changed. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 455 | ([#3442](https://github.com/matrix-org/matrix-rust-sdk/pull/3442)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 456 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 457 | - Fallback keys are rotated in a time-based manner, instead of waiting for the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 458 | server to tell us that a fallback key got used. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 459 | ([#3151](https://github.com/matrix-org/matrix-rust-sdk/pull/3151)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 460 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 461 | Breaking changes: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 462 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 463 | - [**breaking**] `VerificationRequestState::Transitioned` now includes a new |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 464 | field `other_device_data` of type `DeviceData`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 465 | ([#4153](https://github.com/matrix-org/matrix-rust-sdk/pull/4153)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 466 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 467 | - [**breaking**] `OlmMachine::decrypt_room_event` now returns a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 468 | `DecryptedRoomEvent` type, instead of the more generic `TimelineEvent` type. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 469 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 470 | - [**breaking**] **NOTE**: this version causes changes to the format of the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 471 | serialised data in the CryptoStore, meaning that, once upgraded, it will not |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 472 | be possible to roll back applications to earlier versions without breaking |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 473 | user sessions. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 474 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 475 | - [**breaking**] Renamed `VerificationLevel::PreviouslyVerified` to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 476 | `VerificationLevel::VerificationViolation`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 477 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 478 | - [**breaking**] `OlmMachine::decrypt_room_event` now takes a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 479 | `DecryptionSettings` argument, which includes a `TrustRequirement` indicating |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 480 | the required trust level for the sending device. When it is called with |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 481 | `TrustRequirement` other than `TrustRequirement::Unverified`, it may return |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 482 | the new `MegolmError::SenderIdentityNotTrusted` variant if the sending device |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 483 | does not satisfy the required trust level. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 484 | ([#3899](https://github.com/matrix-org/matrix-rust-sdk/pull/3899)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 485 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 486 | - [**breaking**] Change the structure of the `SenderData` enum to separate |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 487 | variants for previously-verified, unverified and verified. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 488 | ([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 489 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 490 | - [**breaking**] Where `EncryptionInfo` is returned it may include the new |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 491 | `PreviouslyVerified` variant of `VerificationLevel` to indicate that the user |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 492 | was previously verified and is no longer verified. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 493 | ([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 494 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 495 | - [**breaking**] Expose new methods `OwnUserIdentity::was_previously_verified`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 496 | `OwnUserIdentity::withdraw_verification`, and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 497 | `OwnUserIdentity::has_verification_violation`, which track whether our own |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 498 | identity was previously verified. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 499 | ([#3846](https://github.com/matrix-org/matrix-rust-sdk/pull/3846)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 500 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 501 | - [**breaking**] Add a new `error_on_verified_user_problem` property to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 502 | `CollectStrategy::DeviceBasedStrategy`, which, when set, causes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 503 | `OlmMachine::share_room_key` to fail with an error if any verified users on |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 504 | the recipient list have unsigned devices, or are no longer verified. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 505 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 506 | When `CallectStrategy::IdentityBasedStrategy` is used, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 507 | `OlmMachine::share_room_key` will fail with an error if any verified users on |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 508 | the recipient list are no longer verified, or if our own device is not |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 509 | properly cross-signed. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 510 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 511 | Also remove `CollectStrategy::new_device_based`: callers should construct a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 512 | `CollectStrategy::DeviceBasedStrategy` directly. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 513 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 514 | `EncryptionSettings::new` now takes a `CollectStrategy` argument, instead of a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 515 | list of booleans. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 516 | ([#3810](https://github.com/matrix-org/matrix-rust-sdk/pull/3810)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 517 | ([#3816](https://github.com/matrix-org/matrix-rust-sdk/pull/3816)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 518 | ([#3896](https://github.com/matrix-org/matrix-rust-sdk/pull/3896)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 519 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 520 | - [**breaking**] Remove the method `OlmMachine::clear_crypto_cache()`, crypto |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 521 | stores are not supposed to have any caches anymore. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 522 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 523 | - [**breaking**] Add a `custom_account` argument to the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 524 | `OlmMachine::with_store()` method, this allows users to learn their identity |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 525 | keys before they get access to the user and device ID. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 526 | ([#3451](https://github.com/matrix-org/matrix-rust-sdk/pull/3451)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 527 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 528 | - [**breaking**] Add a `backup_version` argument to `CryptoStore`'s |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 529 | `inbound_group_sessions_for_backup`, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 530 | `mark_inbound_group_sessions_as_backed_up` and `inbound_group_session_counts` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 531 | methods. ([#3253](https://github.com/matrix-org/matrix-rust-sdk/pull/3253)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 532 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 533 | - [**breaking**] Rename the `OlmMachine::invalidate_group_session` method to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 534 | `OlmMachine::discard_room_key`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 535 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 536 | - [**breaking**] Move `OlmMachine::export_room_keys` to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 537 | `matrix_sdk_crypto::store::Store`. (Call it with |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 538 | `olm_machine.store().export_room_keys(...)`.) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 539 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 540 | - [**breaking**] Add new `dehydrated` property to |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 541 | `olm::account::PickledAccount`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 542 | ([#3164](https://github.com/matrix-org/matrix-rust-sdk/pull/3164)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 543 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 544 | - [**breaking**] Remove deprecated `OlmMachine::import_room_keys`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 545 | ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 546 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 547 | - [**breaking**] Add the `SasState::Created` variant to differentiate the state |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 548 | between the party that sent the verification start and the party that received |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 549 | it. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 550 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 551 | - [**breaking**] Deprecate `BackupMachine::import_backed_up_room_keys`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 552 | ([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 553 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 554 | ## 0.7.2 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 555 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 556 | ### Security fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 557 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 558 | - Fix `UserIdentity::is_verified` to take into account our own identity |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 559 | [#d8d9dae](https://github.com/matrix-org/matrix-rust-sdk/commit/d8d9dae9d77bee48a2591b9aad9bd2fa466354cc) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 560 | (Moderate, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 561 | [GHSA-4qg4-cvh2-crgg](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-4qg4-cvh2-crgg)). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 562 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 563 | ## 0.7.1 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 564 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 565 | ### Security fixes |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 566 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 567 | - Don't log the private part of the backup key, introduced in |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 568 | [#71136e4](https://github.com/matrix-org/matrix-rust-sdk/commit/71136e44c03c79f80d6d1a2446673bc4d53a2067). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 569 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 570 | ## 0.7.0 |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 571 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 572 | - Add method to mark a list of inbound group sessions as backed up: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 573 | `CryptoStore::mark_inbound_group_sessions_as_backed_up` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 574 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 575 | - `OlmMachine::toggle_room_key_forwarding` is replaced by two separate methods: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 576 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 577 | - `OlmMachine::set_room_key_requests_enabled`, which controls whether |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 578 | outgoing room key requests are enabled, and: |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 579 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 580 | - `OlmMachine::set_room_key_forwarding_enabled`, which controls whether we |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 581 | automatically reply to incoming room key requests. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 582 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 583 | `OlmMachine::is_room_key_forwarding_enabled` is updated to return the setting |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 584 | of `OlmMachine::set_room_key_forwarding_enabled`, while |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 585 | `OlmMachine::are_room_key_requests_enabled` is added to return the setting of |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 586 | `OlmMachine::set_room_key_requests_enabled`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 587 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 588 | ([#2902](https://github.com/matrix-org/matrix-rust-sdk/pull/2902)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 589 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 590 | - Improve performance of `share_room_key`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 591 | ([#2862](https://github.com/matrix-org/matrix-rust-sdk/pull/2862)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 592 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 593 | - `get_missing_sessions`: Don't block waiting for `/keys/query` requests on |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 594 | blacklisted servers, and improve performance. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 595 | ([#2845](https://github.com/matrix-org/matrix-rust-sdk/pull/2845)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 596 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 597 | - Generalize `olm::Session::encrypt` to accept any value implementing |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 598 | `Serialize` for the `value` parameter, instead of specifically |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 599 | `serde_json::Value`. Note that references to `Serialize`-implementing types |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 600 | themselves implement `Serialize`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 601 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 602 | - Change the argument to `OlmMachine::receive_sync_changes` to be an |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 603 | `EncryptionSyncChanges` struct packing all the arguments instead of many |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 604 | single arguments. The new `next_batch_token` field there should be the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 605 | `next_batch` value read from the latest sync response. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 606 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 607 | - Handle missing devices in `/keys/claim` responses. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 608 | ([#2805](https://github.com/matrix-org/matrix-rust-sdk/pull/2805)) |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 609 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 610 | - Add the higher level decryption method `decrypt_session_data` to the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 611 | `BackupDecryptionKey` type. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 612 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 613 | - Add a higher level method to create signatures for the backup info. The |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 614 | `OlmMachine::backup_machine()::sign_backup()` method can be used to add |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 615 | signatures to a `RoomKeyBackupInfo`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 616 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 617 | - Remove the `backups_v1` feature, backups support is now enabled by default. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 618 | - Use the `Signatures` type as the return value for the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 619 | `MegolmV1BackupKey::signatures()` method. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 620 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 621 | - Add two new methods to import room keys, |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 622 | `OlmMachine::store()::import_exported_room_keys()` for file exports and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 623 | `OlmMachine::backup_machine()::import_backed_up_room_keys()` for backups. The |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 624 | `OlmMachine::import_room_keys()` method is now deprecated. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 625 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 626 | - The parameter order of `OlmMachine::encrypt_room_event_raw` and |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 627 | `OutboundGroupSession::encrypt` has changed, `content` is now last |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 628 | - The parameter type of `content` has also changed, from `serde_json::Value` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 629 | to `&Raw<AnyMessageLikeEventContent>` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 630 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 631 | - Change the return value of `bootstrap_cross_signing` so it returns an extra |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 632 | keys upload request. The three requests must be sent in the order they |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 633 | appear in the return tuple. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 634 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 635 | - Stop logging large quantities of data about the `Store` during olm |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 636 | decryption. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 637 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 638 | - Remove spurious "Unknown outgoing secret request" warning which was logged |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 639 | for every outgoing secret request. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 640 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 641 | - Clean up the logging of to-device messages in `share_room_key`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 642 | - Expose new `OlmMachine::get_room_event_encryption_info` method. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 643 | - Add support for secret storage. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 644 | - Add initial support for MSC3814 - dehydrated devices. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 645 | - Mark our `OwnUserIdentity` as verified if we successfully import the matching |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 646 | private keys. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 647 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 648 | - The `OlmMachine::export_cross_signing_keys()` method now returns a `Result`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 649 | This removes an `unwrap()` from the codebase. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 650 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 651 | - Add support for the `hkdf-hmac-sha256.v2` SAS message authentication code. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 652 | - Ensure that the correct short authentication strings are used when accepting a |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 653 | SAS verification with the `Sas::accept()` method. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 654 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 655 | - Add a new optional `message-ids` feature which adds a unique ID to the content |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 656 | of `m.room.encrypted` event contents which get sent out. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 657 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 658 | - Disable the automatic-key-forwarding feature by default. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 659 | - Add a new variant to the `VerificationRequestState` enum called |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 660 | `Transitioned`. This enum variant is used when a `VerificationRequest` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 661 | transitions into a concrete `Verification` object. The concrete `Verification` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 662 | object is given as associated data in the `Transitioned` enum variant. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 663 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 664 | - Replace the libolm backup encryption code with a native Rust version. This |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 665 | adds WASM support to the backups_v1 feature. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 666 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 667 | - Add new API `store::Store::room_keys_received_stream` to provide |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 668 | updates of room keys being received. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 669 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 670 | - Add new method `identities::device::Device::first_time_seen_ts` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 671 | that allows to get a local timestamp of when the device was first seen by |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 672 | the sdk (in seconds since epoch). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 673 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 674 | - When rejecting a key-verification request over to-device messages, send the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 675 | `m.key.verification.cancel` to the device that made the request, rather than |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 676 | broadcasting to all devices. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 677 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 678 | - Expose `VerificationRequest::time_remaining`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 679 | - For verification-via-emojis, return the word "Aeroplane" rather than |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 680 | "Airplane", for consistency with the Matrix spec. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 681 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 682 | - Fix handling of SAS verification start events once we have shown a QR code. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 683 | - Fix a bug which could cause generated one-time-keys not to be persisted. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 684 | - Fix parsing error for `POST /_matrix/client/v3/keys/signatures/upload` |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 685 | responses generated by Synapse. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 686 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 687 | - Add new API `OlmMachine::query_keys_for_users` for generating out-of-band key |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 688 | queries. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 689 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 690 | - Rename "recovery key" to "backup decryption key" to avoid confusion with the |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 691 | secret-storage key which is also known as a recovery key. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 692 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 693 | This affects the `matrix_sdk_crypto::store::RecoveryKey` struct itself (now |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 694 | renamed to `BackupDecryptionKey`, as well as |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 695 | `BackupMachine::save_recovery_key` (now `save_decryption_key`). |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 696 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 697 | - Change the returned success value type of `BackupMachine::backup` from |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 698 | `OutgoingRequest` to `(OwnedTransactionId, KeysBackupRequest)`. |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 699 | |
7ff8adafe9e4 | atagen | 2026-10-22 12:30 UTC | 700 | [https-github-com-matrix-org-matrix-rust-sdk-pull-5980]: https://github.com/matrix-org/matrix-rust-sdk/pull/5980 |