atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: crates/matrix-sdk-base/CHANGELOG.md

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
# Changelog
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
All notable changes to this project will be documented in this file.
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
<!-- changelog start -->
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
## [0.18.0](https://github.com/matrix-org/matrix-rust-sdk/tree/0.18.0) - 2026-06-02
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
### Added
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
- Add `Room::compute_joined_service_members` to compute the number of joined
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
  service members in a room. This is needed for calculating display names of
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
  `SpaceRoom`s with service members.
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
  ([#6561](https://github.com/matrix-org/matrix-rust-sdk/pulls/6561))
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
- Add `RoomInfo::fully_read_event_id` and `Room::fully_read_event_id` to expose
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
  the user's `m.fully_read` event ID.
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
  ([#6569](https://github.com/matrix-org/matrix-rust-sdk/pulls/6569))
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
### Changed
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
- `Client::sync_once` acquires the state store lock when processing a sync and
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
  response and holds it until processing has completed. This mimics the behavior
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
  of `SlidingSync::sync_once`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
  ([#6555](https://github.com/matrix-org/matrix-rust-sdk/pulls/6555))
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
- [**breaking**] `RoomInfoNotableUpdateReasons` is now a `u16` to include a
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
  `FULLY_READ` flag to notify on changes of the `m.fully_read` marker.
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
  ([#6569](https://github.com/matrix-org/matrix-rust-sdk/pulls/6569))
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
## [0.17.0] - 2026-05-08
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
7ff8adafe9e4atagen2026-10-22 12:30 UTC33
- Filter out service members from `Room::heroes`. This _should_ be done by the
7ff8adafe9e4atagen2026-10-22 12:30 UTC34
  homeservers, but some don't.
7ff8adafe9e4atagen2026-10-22 12:30 UTC35
  ([#6535](https://github.com/matrix-org/matrix-rust-sdk/pull/6535))
7ff8adafe9e4atagen2026-10-22 12:30 UTC36
- Room keys are now rotated whenever the client fully reloads the member list by
7ff8adafe9e4atagen2026-10-22 12:30 UTC37
  making a request to `/members`, which prevents clients using keys that may
7ff8adafe9e4atagen2026-10-22 12:30 UTC38
  have been shared under
7ff8adafe9e4atagen2026-10-22 12:30 UTC39
  [MSC4268](https://github.com/matrix-org/matrix-spec-proposals/pull/4268) even
7ff8adafe9e4atagen2026-10-22 12:30 UTC40
  if a gappy sync occurs.
7ff8adafe9e4atagen2026-10-22 12:30 UTC41
  ([#6339](https://github.com/matrix-org/matrix-rust-sdk/pull/6339))
7ff8adafe9e4atagen2026-10-22 12:30 UTC42
7ff8adafe9e4atagen2026-10-22 12:30 UTC43
- Fix invited/knocked rooms disappearing from the room list after
7ff8adafe9e4atagen2026-10-22 12:30 UTC44
  join → leave/kick → re-invite when using Sliding Sync. The SDK now always
7ff8adafe9e4atagen2026-10-22 12:30 UTC45
  emits a room update so the room is surfaced correctly again.
7ff8adafe9e4atagen2026-10-22 12:30 UTC46
  ([#6126](https://github.com/matrix-org/matrix-rust-sdk/pull/6126))
7ff8adafe9e4atagen2026-10-22 12:30 UTC47
7ff8adafe9e4atagen2026-10-22 12:30 UTC48
- [**breaking**] `BaseClient::room_info_notable_update_sender` has
7ff8adafe9e4atagen2026-10-22 12:30 UTC49
  moved into `BaseStateStore`. `BaseStateStore::derive_from_other`
7ff8adafe9e4atagen2026-10-22 12:30 UTC50
  and `BaseStateStore::get_or_create_room` no longer takes a
7ff8adafe9e4atagen2026-10-22 12:30 UTC51
  `room_info_notable_update_sender` argument.
7ff8adafe9e4atagen2026-10-22 12:30 UTC52
  ([#6130](https://github.com/matrix-org/matrix-rust-sdk/pull/6130))
7ff8adafe9e4atagen2026-10-22 12:30 UTC53
- [**breaking**] New `LatestEventValue::LocalHasBeenSent` variant to represent
7ff8adafe9e4atagen2026-10-22 12:30 UTC54
  a local event that has been sent successfully.
7ff8adafe9e4atagen2026-10-22 12:30 UTC55
  ([#5968](https://github.com/matrix-org/matrix-rust-sdk/pull/5968))
7ff8adafe9e4atagen2026-10-22 12:30 UTC56
7ff8adafe9e4atagen2026-10-22 12:30 UTC57
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC58
7ff8adafe9e4atagen2026-10-22 12:30 UTC59
- [**breaking**] Add `RoomSummary::active_service_members` field to act as a
7ff8adafe9e4atagen2026-10-22 12:30 UTC60
  cached value that will be computed when we sync members. Rename `Room::is_dm`
7ff8adafe9e4atagen2026-10-22 12:30 UTC61
  to `Room::compute_is_dm` since it will now also store the computed active
7ff8adafe9e4atagen2026-10-22 12:30 UTC62
  service members count in the new cached field. `Room::active_service_members`
7ff8adafe9e4atagen2026-10-22 12:30 UTC63
  is now `Room::update_active_service_members` for the same reason.
7ff8adafe9e4atagen2026-10-22 12:30 UTC64
  ([#6537](https://github.com/matrix-org/matrix-rust-sdk/pull/6537))
7ff8adafe9e4atagen2026-10-22 12:30 UTC65
- [**breaking**] Enforce atomic and synchronized updates to `RoomInfo`. Requires
7ff8adafe9e4atagen2026-10-22 12:30 UTC66
  `StateStore::save_changes` to acquire state store lock and replaces
7ff8adafe9e4atagen2026-10-22 12:30 UTC67
  `Room::set_room_info` with an atomic version, `Room::update_room_info`, which
7ff8adafe9e4atagen2026-10-22 12:30 UTC68
  is also synchronized by the state store lock.
7ff8adafe9e4atagen2026-10-22 12:30 UTC69
  ([#6478](https://github.com/matrix-org/matrix-rust-sdk/pull/6478))
7ff8adafe9e4atagen2026-10-22 12:30 UTC70
- Add `RoomMember::is_service_member` that automatically checks the room info
7ff8adafe9e4atagen2026-10-22 12:30 UTC71
  and retrieves this info.
7ff8adafe9e4atagen2026-10-22 12:30 UTC72
  ([#6536](https://github.com/matrix-org/matrix-rust-sdk/pull/6536))
7ff8adafe9e4atagen2026-10-22 12:30 UTC73
- [**breaking**] Add `DmRoomDefinition` enum, allowing clients to specify what a
7ff8adafe9e4atagen2026-10-22 12:30 UTC74
  DM room should look like. A `Room::is_dm` method was added to check if a room
7ff8adafe9e4atagen2026-10-22 12:30 UTC75
  is a DM room too, using this definition.
7ff8adafe9e4atagen2026-10-22 12:30 UTC76
  ([#6490](https://github.com/matrix-org/matrix-rust-sdk/pull/6490))
7ff8adafe9e4atagen2026-10-22 12:30 UTC77
- Add `Room::active_room_members`, returning a list of all the service room
7ff8adafe9e4atagen2026-10-22 12:30 UTC78
  members that are active in the room.
7ff8adafe9e4atagen2026-10-22 12:30 UTC79
  ([#6843](https://github.com/matrix-org/matrix-rust-sdk/pull/6483))
7ff8adafe9e4atagen2026-10-22 12:30 UTC80
- Add support in the `MemoryStore`'s implementation of `EventCacheStore` for
7ff8adafe9e4atagen2026-10-22 12:30 UTC81
  having duplicate events in a room, where each duplicate is in a different
7ff8adafe9e4atagen2026-10-22 12:30 UTC82
  `LinkedChunk`. This is useful, e.g., when an event is in a room and a
7ff8adafe9e4atagen2026-10-22 12:30 UTC83
  thread in that room.
7ff8adafe9e4atagen2026-10-22 12:30 UTC84
  (#[6200](https://github.com/matrix-org/matrix-rust-sdk/pull/6200))
7ff8adafe9e4atagen2026-10-22 12:30 UTC85
- Add `StateStore::upsert_thread_subscriptions()` method for bulk upserts.
7ff8adafe9e4atagen2026-10-22 12:30 UTC86
  ([#5848](https://github.com/matrix-org/matrix-rust-sdk/pull/5848))
7ff8adafe9e4atagen2026-10-22 12:30 UTC87
- The `LatestEventValue::LocalHasBeenSent` variant gains a new `event_id:
7ff8adafe9e4atagen2026-10-22 12:30 UTC88
  OwnedEventId` field.
7ff8adafe9e4atagen2026-10-22 12:30 UTC89
  ([#5977](https://github.com/matrix-org/matrix-rust-sdk/pull/5977))
7ff8adafe9e4atagen2026-10-22 12:30 UTC90
- [**breaking**] `RelationalLinkedChunk::apply_updates` returns an error rather
7ff8adafe9e4atagen2026-10-22 12:30 UTC91
  than panicking. This is necessary in order to ensure certain behaviors are
7ff8adafe9e4atagen2026-10-22 12:30 UTC92
  disallowed. ([#6061](https://github.com/matrix-org/matrix-rust-sdk/pull/6061))
7ff8adafe9e4atagen2026-10-22 12:30 UTC93
- Add `RoomInfo::active_room_call_consensus_intent()` method to get the call
7ff8adafe9e4atagen2026-10-22 12:30 UTC94
  intent for the current call, based on what members are advertising.
7ff8adafe9e4atagen2026-10-22 12:30 UTC95
  ([#6274](https://github.com/matrix-org/matrix-rust-sdk/pull/6274))
7ff8adafe9e4atagen2026-10-22 12:30 UTC96
- Add `Room::is_call` to check for Call rooms (MSC3417)
7ff8adafe9e4atagen2026-10-22 12:30 UTC97
  ([#6315](https://github.com/matrix-org/matrix-rust-sdk/pull/6315))
7ff8adafe9e4atagen2026-10-22 12:30 UTC98
7ff8adafe9e4atagen2026-10-22 12:30 UTC99
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC100
7ff8adafe9e4atagen2026-10-22 12:30 UTC101
- [**breaking**] `TtlStoreValue` was moved and renamed to
7ff8adafe9e4atagen2026-10-22 12:30 UTC102
  `matrix_sdk_common::ttl::TtlValue`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC103
  ([#6463](https://github.com/matrix-org/matrix-rust-sdk/pull/6463),
7ff8adafe9e4atagen2026-10-22 12:30 UTC104
  [#6484](https://github.com/matrix-org/matrix-rust-sdk/pull/6484))
7ff8adafe9e4atagen2026-10-22 12:30 UTC105
- [**breaking**] `Gap::prev_token` has been renamed to `Gap::token` since it's
7ff8adafe9e4atagen2026-10-22 12:30 UTC106
  now used for both the previous batch token and the next batch token.
7ff8adafe9e4atagen2026-10-22 12:30 UTC107
  ([#6236](https://github.com/matrix-org/matrix-rust-sdk/pull/6236))
7ff8adafe9e4atagen2026-10-22 12:30 UTC108
- [**breaking**] Invite acceptance details are no longer stored in `RoomInfo`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC109
  and the accessors `RoomInfo.invite_acceptance_details()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC110
  `Room::invite_acceptance_details` have been removed. Instead, equivalent
7ff8adafe9e4atagen2026-10-22 12:30 UTC111
  details are stored in the Crypto store, and, provided the `e2e-encryption`
7ff8adafe9e4atagen2026-10-22 12:30 UTC112
  feature is enabled, are accessible via
7ff8adafe9e4atagen2026-10-22 12:30 UTC113
  `BaseClient::get_pending_key_bundle_details_for_room`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC114
  ([#6199](https://github.com/matrix-org/matrix-rust-sdk/pull/6199))
7ff8adafe9e4atagen2026-10-22 12:30 UTC115
- [**breaking**] `once_cell` is no longer reexported from this crate. The types
7ff8adafe9e4atagen2026-10-22 12:30 UTC116
  that were stabilized in the Rust standard library can be used instead in most
7ff8adafe9e4atagen2026-10-22 12:30 UTC117
  cases. ([#6194](https://github.com/matrix-org/matrix-rust-sdk/pull/6194))
7ff8adafe9e4atagen2026-10-22 12:30 UTC118
- [**breaking**] All the `*StoreLock` structs use a `CrossProcessLockConfig` now <!-- rumdl-disable-line MD013 -->
7ff8adafe9e4atagen2026-10-22 12:30 UTC119
  instead of the previous `holder` value and so does `StoreConfig` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC120
  `BaseClient::clone_with_in_memory_state_store. Passing a `CrossProcessLockConfig::MultiProcess`
7ff8adafe9e4atagen2026-10-22 12:30 UTC121
  will keep the same behaviour we had where the client uses the cross process
7ff8adafe9e4atagen2026-10-22 12:30 UTC122
  lock and using `CrossProcessLockConfig::SingleProcess` will disable the cross process lock.
7ff8adafe9e4atagen2026-10-22 12:30 UTC123
  ([#6061](https://github.com/matrix-org/matrix-rust-sdk/pull/6061))
7ff8adafe9e4atagen2026-10-22 12:30 UTC124
- [**breaking**] The `StateStore::upsert_thread_subscription` method has been
7ff8adafe9e4atagen2026-10-22 12:30 UTC125
  removed in favor of a bulk method `StateStore::upsert_thread_subscriptions`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC126
- [**breaking**] The `message-ids` feature has been removed. It was already a
7ff8adafe9e4atagen2026-10-22 12:30 UTC127
  no-op and has now been eliminated entirely.
7ff8adafe9e4atagen2026-10-22 12:30 UTC128
  ([#5963](https://github.com/matrix-org/matrix-rust-sdk/pull/5963))
7ff8adafe9e4atagen2026-10-22 12:30 UTC129
7ff8adafe9e4atagen2026-10-22 12:30 UTC130
## [0.16.1] - 2026-05-08
7ff8adafe9e4atagen2026-10-22 12:30 UTC131
7ff8adafe9e4atagen2026-10-22 12:30 UTC132
No notable changes in this release.
7ff8adafe9e4atagen2026-10-22 12:30 UTC133
7ff8adafe9e4atagen2026-10-22 12:30 UTC134
## [0.16.0] - 2025-12-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC135
7ff8adafe9e4atagen2026-10-22 12:30 UTC136
### Security fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC137
7ff8adafe9e4atagen2026-10-22 12:30 UTC138
- Skip the serialization of custom join rules in the `RoomInfo` which prevented
7ff8adafe9e4atagen2026-10-22 12:30 UTC139
  the processing of sync responses containing events with custom join rules.
7ff8adafe9e4atagen2026-10-22 12:30 UTC140
  ([#5924](https://github.com/matrix-org/matrix-rust-sdk/pull/5924), Low,
7ff8adafe9e4atagen2026-10-22 12:30 UTC141
  [CVE-2025-66622](https://www.cve.org/CVERecord?id=CVE-2025-66622),
7ff8adafe9e4atagen2026-10-22 12:30 UTC142
  [GHSA-jj6p-3m75-g2p3](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-jj6p-3m75-g2p3)).
7ff8adafe9e4atagen2026-10-22 12:30 UTC143
7ff8adafe9e4atagen2026-10-22 12:30 UTC144
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC145
7ff8adafe9e4atagen2026-10-22 12:30 UTC146
- [**breaking**] `ServerInfo` has been renamed to `SupportedVersionsResponse`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC147
  and its `well_known` field has been removed. It is also wrapped in a
7ff8adafe9e4atagen2026-10-22 12:30 UTC148
  `TtlStoreValue` that handles the expiration of the data, rather than calling
7ff8adafe9e4atagen2026-10-22 12:30 UTC149
  `maybe_decode()`. Its constructor has been removed since all its fields are
7ff8adafe9e4atagen2026-10-22 12:30 UTC150
  now public.
7ff8adafe9e4atagen2026-10-22 12:30 UTC151
  ([#5910](https://github.com/matrix-org/matrix-rust-sdk/pull/5910))
7ff8adafe9e4atagen2026-10-22 12:30 UTC152
  - `StateStoreData(Key/Value)::ServerInfo` has been split into the
7ff8adafe9e4atagen2026-10-22 12:30 UTC153
    `SupportedVersions` and `WellKnown` variants.
7ff8adafe9e4atagen2026-10-22 12:30 UTC154
- [**breaking**] Upgrade Ruma to version 0.14.0.
7ff8adafe9e4atagen2026-10-22 12:30 UTC155
  ([#5882](https://github.com/matrix-org/matrix-rust-sdk/pull/5882))
7ff8adafe9e4atagen2026-10-22 12:30 UTC156
- `Client::sync_lock` has been renamed `Client::state_store_lock`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC157
  ([#5707](https://github.com/matrix-org/matrix-rust-sdk/pull/5707))
7ff8adafe9e4atagen2026-10-22 12:30 UTC158
7ff8adafe9e4atagen2026-10-22 12:30 UTC159
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC160
7ff8adafe9e4atagen2026-10-22 12:30 UTC161
- [**breaking**] The `EventCacheStore::get_room_events()` method has received
7ff8adafe9e4atagen2026-10-22 12:30 UTC162
  two new arguments. This allows users to load only events of a certain event
7ff8adafe9e4atagen2026-10-22 12:30 UTC163
  type and events that were encrypted using a certain room key identified by its
7ff8adafe9e4atagen2026-10-22 12:30 UTC164
  session ID.
7ff8adafe9e4atagen2026-10-22 12:30 UTC165
  ([#5817](https://github.com/matrix-org/matrix-rust-sdk/pull/5817))
7ff8adafe9e4atagen2026-10-22 12:30 UTC166
- `ComposerDraft` can now store attachments alongside text messages.
7ff8adafe9e4atagen2026-10-22 12:30 UTC167
  ([#5794](https://github.com/matrix-org/matrix-rust-sdk/pull/5794))
7ff8adafe9e4atagen2026-10-22 12:30 UTC168
7ff8adafe9e4atagen2026-10-22 12:30 UTC169
## [0.14.1] - 2025-09-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC170
7ff8adafe9e4atagen2026-10-22 12:30 UTC171
### Security fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC172
7ff8adafe9e4atagen2026-10-22 12:30 UTC173
- Fix a panic in the `RoomMember::normalized_power_level` method.
7ff8adafe9e4atagen2026-10-22 12:30 UTC174
  ([#5635](https://github.com/matrix-org/matrix-rust-sdk/pull/5635)) ( Low,
7ff8adafe9e4atagen2026-10-22 12:30 UTC175
  [CVE-2025-59047](https://www.cve.org/CVERecord?id=CVE-2025-59047),
7ff8adafe9e4atagen2026-10-22 12:30 UTC176
  [GHSA-qhj8-q5r6-8q6j](https://github.com/matrix-org/matrix-rust-sdk/security/advisories/GHSA-qhj8-q5r6-8q6j)).
7ff8adafe9e4atagen2026-10-22 12:30 UTC177
7ff8adafe9e4atagen2026-10-22 12:30 UTC178
## [0.14.0] - 2025-09-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC179
7ff8adafe9e4atagen2026-10-22 12:30 UTC180
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC181
7ff8adafe9e4atagen2026-10-22 12:30 UTC182
- Add `SyncResponse::RoomUpdates::is_empty` to check if there were any room
7ff8adafe9e4atagen2026-10-22 12:30 UTC183
  updates. ([#5593](https://github.com/matrix-org/matrix-rust-sdk/pull/5593))
7ff8adafe9e4atagen2026-10-22 12:30 UTC184
- Add `EncryptionState::StateEncrypted` to represent rooms supporting encrypted
7ff8adafe9e4atagen2026-10-22 12:30 UTC185
  state events. Feature-gated behind `experimental-encrypted-state-events`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC186
  ([#5523](https://github.com/matrix-org/matrix-rust-sdk/pull/5523))
7ff8adafe9e4atagen2026-10-22 12:30 UTC187
- [**breaking**] The `state` field of `JoinedRoomUpdate` and `LeftRoomUpdate`
7ff8adafe9e4atagen2026-10-22 12:30 UTC188
  now uses the `State` enum, depending on whether the state changes were
7ff8adafe9e4atagen2026-10-22 12:30 UTC189
  received in the `state` field or the `state_after` field.
7ff8adafe9e4atagen2026-10-22 12:30 UTC190
  ([#5488](https://github.com/matrix-org/matrix-rust-sdk/pull/5488))
7ff8adafe9e4atagen2026-10-22 12:30 UTC191
- [**breaking**] `RoomCreateWithCreatorEventContent` has a new field
7ff8adafe9e4atagen2026-10-22 12:30 UTC192
  `additional_creators` that allows to specify additional room creators beside
7ff8adafe9e4atagen2026-10-22 12:30 UTC193
  the user sending the `m.room.create` event, introduced with room version 12.
7ff8adafe9e4atagen2026-10-22 12:30 UTC194
  ([#5436](https://github.com/matrix-org/matrix-rust-sdk/pull/5436))
7ff8adafe9e4atagen2026-10-22 12:30 UTC195
- [**breaking**] The `RoomInfo` method now remembers the inviter at the time
7ff8adafe9e4atagen2026-10-22 12:30 UTC196
  when the `BaseClient::room_joined()` method was called. The caller is
7ff8adafe9e4atagen2026-10-22 12:30 UTC197
  responsible to remember the inviter before a server request to join the room
7ff8adafe9e4atagen2026-10-22 12:30 UTC198
  is made. The `RoomInfo::invite_accepted_at` method was removed, the
7ff8adafe9e4atagen2026-10-22 12:30 UTC199
  `RoomInfo::invite_details` method returns both the timestamp and the
7ff8adafe9e4atagen2026-10-22 12:30 UTC200
  inviter.
7ff8adafe9e4atagen2026-10-22 12:30 UTC201
  ([#5390](https://github.com/matrix-org/matrix-rust-sdk/pull/5390))
7ff8adafe9e4atagen2026-10-22 12:30 UTC202
7ff8adafe9e4atagen2026-10-22 12:30 UTC203
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC204
7ff8adafe9e4atagen2026-10-22 12:30 UTC205
- [**breaking**] The `Stripped` variants of `RawAnySyncOrStrippedTimelineEvent`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC206
  `RawAnySyncOrStrippedState` and `AnySyncOrStrippedState` use `StrippedState`
7ff8adafe9e4atagen2026-10-22 12:30 UTC207
  instead of `AnyStrippedStateEvent`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC208
  ([#5473](https://github.com/matrix-org/matrix-rust-sdk/pull/5473))
7ff8adafe9e4atagen2026-10-22 12:30 UTC209
- [**breaking**] The `stripped_state` field of `StateChanges` uses
7ff8adafe9e4atagen2026-10-22 12:30 UTC210
  `StrippedState` instead of `AnyStrippedStateEvent`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC211
  ([#5473](https://github.com/matrix-org/matrix-rust-sdk/pull/5473))
7ff8adafe9e4atagen2026-10-22 12:30 UTC212
- [**breaking**] `RelationalLinkedChunk::items` now takes a `RoomId` instead of
7ff8adafe9e4atagen2026-10-22 12:30 UTC213
  an `&OwnedLinkedChunkId` parameter.
7ff8adafe9e4atagen2026-10-22 12:30 UTC214
  ([#5445](https://github.com/matrix-org/matrix-rust-sdk/pull/5445))
7ff8adafe9e4atagen2026-10-22 12:30 UTC215
- [**breaking**] Add an `IsPrefix = False` bound to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC216
  `get_state_event_static()`, `get_state_event_static_for_key()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC217
  `get_state_events_static()`, `get_account_data_event_static()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC218
  `get_room_account_data_event_static` methods of `StateStoreExt`. These methods
7ff8adafe9e4atagen2026-10-22 12:30 UTC219
  only worked for events where the full event type is statically-known, and this
7ff8adafe9e4atagen2026-10-22 12:30 UTC220
  is now enforced at compile-time. The matching non-`static` methods of
7ff8adafe9e4atagen2026-10-22 12:30 UTC221
  `StateStore` can be used instead for event types with a variable suffix.
7ff8adafe9e4atagen2026-10-22 12:30 UTC222
  ([#5444](https://github.com/matrix-org/matrix-rust-sdk/pull/5444))
7ff8adafe9e4atagen2026-10-22 12:30 UTC223
- [**breaking**]
7ff8adafe9e4atagen2026-10-22 12:30 UTC224
  `SyncOrStrippedState<RoomPowerLevelsEventContent>::power_levels()` takes
7ff8adafe9e4atagen2026-10-22 12:30 UTC225
  `AuthorizationRules` and a list of creators, because creators can have
7ff8adafe9e4atagen2026-10-22 12:30 UTC226
  infinite power levels, as introduced in room version 12.
7ff8adafe9e4atagen2026-10-22 12:30 UTC227
  ([#5436](https://github.com/matrix-org/matrix-rust-sdk/pull/5436))
7ff8adafe9e4atagen2026-10-22 12:30 UTC228
- [**breaking**] `RoomMember::power_level()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC229
  `RoomMember::normalized_power_level()` now use `UserPowerLevel` to represent
7ff8adafe9e4atagen2026-10-22 12:30 UTC230
  power levels instead of `i64` to differentiate the infinite power level of
7ff8adafe9e4atagen2026-10-22 12:30 UTC231
  creators, as introduced in room version 12.
7ff8adafe9e4atagen2026-10-22 12:30 UTC232
  ([#5436](https://github.com/matrix-org/matrix-rust-sdk/pull/5436))
7ff8adafe9e4atagen2026-10-22 12:30 UTC233
- [**breaking**] The `creator()` methods of `Room` and `RoomInfo` have been
7ff8adafe9e4atagen2026-10-22 12:30 UTC234
  renamed to `creators()` and can now return a list of user IDs, to reflect that
7ff8adafe9e4atagen2026-10-22 12:30 UTC235
  a room can have several creators, as introduced in room version 12.
7ff8adafe9e4atagen2026-10-22 12:30 UTC236
  ([#5436](https://github.com/matrix-org/matrix-rust-sdk/pull/5436))
7ff8adafe9e4atagen2026-10-22 12:30 UTC237
- [**breaking**] `RoomInfo::room_version_or_default()` was replaced with
7ff8adafe9e4atagen2026-10-22 12:30 UTC238
  `room_version_rules_or_default()`. The room version should only be used for
7ff8adafe9e4atagen2026-10-22 12:30 UTC239
  display purposes. The rules contain flags for all the differences in behavior
7ff8adafe9e4atagen2026-10-22 12:30 UTC240
  between all known room versions.
7ff8adafe9e4atagen2026-10-22 12:30 UTC241
  ([#5337](https://github.com/matrix-org/matrix-rust-sdk/pull/5337))
7ff8adafe9e4atagen2026-10-22 12:30 UTC242
- [**breaking**] `MinimalStateEvent::redact()` takes `RedactionRules` instead of
7ff8adafe9e4atagen2026-10-22 12:30 UTC243
  a `RoomVersionId`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC244
  ([#5337](https://github.com/matrix-org/matrix-rust-sdk/pull/5337))
7ff8adafe9e4atagen2026-10-22 12:30 UTC245
- [**breaking**] The `event_id` field of `PredecessorRoom` was removed, due to
7ff8adafe9e4atagen2026-10-22 12:30 UTC246
  its removal in the Matrix specification with MSC4291.
7ff8adafe9e4atagen2026-10-22 12:30 UTC247
  ([#5419](https://github.com/matrix-org/matrix-rust-sdk/pull/5419))
7ff8adafe9e4atagen2026-10-22 12:30 UTC248
7ff8adafe9e4atagen2026-10-22 12:30 UTC249
## [0.13.0] - 2025-07-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC250
7ff8adafe9e4atagen2026-10-22 12:30 UTC251
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC252
7ff8adafe9e4atagen2026-10-22 12:30 UTC253
- The `RoomInfo` now remembers when an invite was explicitly accepted when the
7ff8adafe9e4atagen2026-10-22 12:30 UTC254
  `BaseClient::room_joined()` method was called. A new getter for this
7ff8adafe9e4atagen2026-10-22 12:30 UTC255
  timestamp exists, the `RoomInfo::invite_accepted_at()` method returns this
7ff8adafe9e4atagen2026-10-22 12:30 UTC256
  timestamp.
7ff8adafe9e4atagen2026-10-22 12:30 UTC257
  ([#5333](https://github.com/matrix-org/matrix-rust-sdk/pull/5333))
7ff8adafe9e4atagen2026-10-22 12:30 UTC258
- [**breaking**] The `BaseClient::new()` method now takes an additional
7ff8adafe9e4atagen2026-10-22 12:30 UTC259
  `ThreadingSupport` parameter controlling whether the client is supposed to do
7ff8adafe9e4atagen2026-10-22 12:30 UTC260
  extra processing for threads. Right now, it controls whether to exclude
7ff8adafe9e4atagen2026-10-22 12:30 UTC261
  in-thread events from the room unread counts, but it may be expanded in the
7ff8adafe9e4atagen2026-10-22 12:30 UTC262
  future to support more threading-related features.
7ff8adafe9e4atagen2026-10-22 12:30 UTC263
  ([#5325](https://github.com/matrix-org/matrix-rust-sdk/pull/5325))
7ff8adafe9e4atagen2026-10-22 12:30 UTC264
7ff8adafe9e4atagen2026-10-22 12:30 UTC265
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC266
7ff8adafe9e4atagen2026-10-22 12:30 UTC267
- The cached `ServerCapabilities` has been renamed to `ServerInfo` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC268
  additionally contains the well-known response alongside the existing server
7ff8adafe9e4atagen2026-10-22 12:30 UTC269
  versions. Despite the old name, it does not contain the server capabilities.
7ff8adafe9e4atagen2026-10-22 12:30 UTC270
  ([#5167](https://github.com/matrix-org/matrix-rust-sdk/pull/5167))
7ff8adafe9e4atagen2026-10-22 12:30 UTC271
- `Room::join_rule` and `Room::is_public` now return an `Option` to reflect that
7ff8adafe9e4atagen2026-10-22 12:30 UTC272
  the join rule state event might be missing, in which case they will return
7ff8adafe9e4atagen2026-10-22 12:30 UTC273
  `None`. ([#5278](https://github.com/matrix-org/matrix-rust-sdk/pull/5278))
7ff8adafe9e4atagen2026-10-22 12:30 UTC274
7ff8adafe9e4atagen2026-10-22 12:30 UTC275
## [0.12.0] - 2025-06-10
7ff8adafe9e4atagen2026-10-22 12:30 UTC276
7ff8adafe9e4atagen2026-10-22 12:30 UTC277
No notable changes in this release.
7ff8adafe9e4atagen2026-10-22 12:30 UTC278
7ff8adafe9e4atagen2026-10-22 12:30 UTC279
## [0.11.0] - 2025-04-11
7ff8adafe9e4atagen2026-10-22 12:30 UTC280
7ff8adafe9e4atagen2026-10-22 12:30 UTC281
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC282
7ff8adafe9e4atagen2026-10-22 12:30 UTC283
- [**breaking**] The `Client::subscribe_to_ignore_user_list_changes()`
7ff8adafe9e4atagen2026-10-22 12:30 UTC284
  method will now only trigger whenever the ignored user list has
7ff8adafe9e4atagen2026-10-22 12:30 UTC285
  changed from what was previously known, instead of triggering
7ff8adafe9e4atagen2026-10-22 12:30 UTC286
  every time an ignore-user-list event has been received from sync.
7ff8adafe9e4atagen2026-10-22 12:30 UTC287
  ([#4779](https://github.com/matrix-org/matrix-rust-sdk/pull/4779))
7ff8adafe9e4atagen2026-10-22 12:30 UTC288
- [**breaking**] The `MediaRetentionPolicy` can now trigger regular cleanups
7ff8adafe9e4atagen2026-10-22 12:30 UTC289
  with its new `cleanup_frequency` setting.
7ff8adafe9e4atagen2026-10-22 12:30 UTC290
  ([#4603](https://github.com/matrix-org/matrix-rust-sdk/pull/4603))
7ff8adafe9e4atagen2026-10-22 12:30 UTC291
  - `Clone` is a supertrait of `EventCacheStoreMedia`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC292
  - `EventCacheStoreMedia` has a new method `last_media_cleanup_time_inner`
7ff8adafe9e4atagen2026-10-22 12:30 UTC293
  - There are new `'static` bounds in `MediaService` for the media cache stores
7ff8adafe9e4atagen2026-10-22 12:30 UTC294
- `event_cache::store::MemoryStore` implements `Clone`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC295
- `BaseClient` now has a `handle_verification_events` field which is `true` by
7ff8adafe9e4atagen2026-10-22 12:30 UTC296
  default and can be negated so the `NotificationClient` won't handle received
7ff8adafe9e4atagen2026-10-22 12:30 UTC297
  verification events too, causing errors in the `VerificationMachine`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC298
- [**breaking**] `Room::is_encryption_state_synced` has been removed
7ff8adafe9e4atagen2026-10-22 12:30 UTC299
  ([#4777](https://github.com/matrix-org/matrix-rust-sdk/pull/4777))
7ff8adafe9e4atagen2026-10-22 12:30 UTC300
- [**breaking**] `Room::is_encrypted` is replaced by `Room::encryption_state`
7ff8adafe9e4atagen2026-10-22 12:30 UTC301
  which returns a value of the new `EncryptionState` enum
7ff8adafe9e4atagen2026-10-22 12:30 UTC302
  ([#4777](https://github.com/matrix-org/matrix-rust-sdk/pull/4777))
7ff8adafe9e4atagen2026-10-22 12:30 UTC303
7ff8adafe9e4atagen2026-10-22 12:30 UTC304
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC305
7ff8adafe9e4atagen2026-10-22 12:30 UTC306
- [**breaking**] `BaseClient::store` is renamed `state_store`
7ff8adafe9e4atagen2026-10-22 12:30 UTC307
  ([#4851](https://github.com/matrix-org/matrix-rust-sdk/pull/4851))
7ff8adafe9e4atagen2026-10-22 12:30 UTC308
- [**breaking**] `BaseClient::with_store_config` is renamed `new`
7ff8adafe9e4atagen2026-10-22 12:30 UTC309
  ([#4847](https://github.com/matrix-org/matrix-rust-sdk/pull/4847))
7ff8adafe9e4atagen2026-10-22 12:30 UTC310
- [**breaking**] `BaseClient::set_session_metadata` is renamed
7ff8adafe9e4atagen2026-10-22 12:30 UTC311
  `activate`, and `BaseClient::logged_in` is renamed `is_activated`
7ff8adafe9e4atagen2026-10-22 12:30 UTC312
  ([#4850](https://github.com/matrix-org/matrix-rust-sdk/pull/4850))
7ff8adafe9e4atagen2026-10-22 12:30 UTC313
- [**breaking] `DependentQueuedRequestKind::UploadFileWithThumbnail` was renamed
7ff8adafe9e4atagen2026-10-22 12:30 UTC314
  to `DependentQueuedRequestKind::UploadFileOrThumbnail`. Under the
7ff8adafe9e4atagen2026-10-22 12:30 UTC315
  `unstable-msc4274` feature,
7ff8adafe9e4atagen2026-10-22 12:30 UTC316
  `DependentQueuedRequestKind::UploadFileOrThumbnail` and `SentMediaInfo` were
7ff8adafe9e4atagen2026-10-22 12:30 UTC317
  generalized to allow chaining multiple dependent file / thumbnail uploads.
7ff8adafe9e4atagen2026-10-22 12:30 UTC318
  ([#4897](https://github.com/matrix-org/matrix-rust-sdk/pull/4897))
7ff8adafe9e4atagen2026-10-22 12:30 UTC319
- [**breaking**] `RoomInfo::prev_state` has been removed due to being useless.
7ff8adafe9e4atagen2026-10-22 12:30 UTC320
  ([#5054](https://github.com/matrix-org/matrix-rust-sdk/pull/5054))
7ff8adafe9e4atagen2026-10-22 12:30 UTC321
7ff8adafe9e4atagen2026-10-22 12:30 UTC322
## [0.10.0] - 2025-02-04
7ff8adafe9e4atagen2026-10-22 12:30 UTC323
7ff8adafe9e4atagen2026-10-22 12:30 UTC324
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC325
7ff8adafe9e4atagen2026-10-22 12:30 UTC326
- [**breaking**] `EventCacheStore` allows to control which media content is
7ff8adafe9e4atagen2026-10-22 12:30 UTC327
  allowed in the media cache, and how long it should be kept, with a
7ff8adafe9e4atagen2026-10-22 12:30 UTC328
  `MediaRetentionPolicy`:
7ff8adafe9e4atagen2026-10-22 12:30 UTC329
  - `EventCacheStore::add_media_content()` has an extra argument,
7ff8adafe9e4atagen2026-10-22 12:30 UTC330
    `ignore_policy`, which decides whether a media content should ignore the
7ff8adafe9e4atagen2026-10-22 12:30 UTC331
    `MediaRetentionPolicy`. It should be stored alongside the media content.
7ff8adafe9e4atagen2026-10-22 12:30 UTC332
  - `EventCacheStore` has four new methods: `media_retention_policy()`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC333
    `set_media_retention_policy()`, `set_ignore_media_retention_policy()` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC334
    `clean_up_media_cache()`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC335
  - `EventCacheStore` implementations should delegate media cache methods to the
7ff8adafe9e4atagen2026-10-22 12:30 UTC336
    methods of the same name of `MediaService` to use the
7ff8adafe9e4atagen2026-10-22 12:30 UTC337
    `MediaRetentionPolicy`. They need to implement the `EventCacheStoreMedia`
7ff8adafe9e4atagen2026-10-22 12:30 UTC338
    trait that can be tested with the
7ff8adafe9e4atagen2026-10-22 12:30 UTC339
    `event_cache_store_media_integration_tests!` macro.
7ff8adafe9e4atagen2026-10-22 12:30 UTC340
    ([#4571](https://github.com/matrix-org/matrix-rust-sdk/pull/4571))
7ff8adafe9e4atagen2026-10-22 12:30 UTC341
7ff8adafe9e4atagen2026-10-22 12:30 UTC342
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC343
7ff8adafe9e4atagen2026-10-22 12:30 UTC344
- [**breaking**] Replaced `Room::compute_display_name` with the reintroduced
7ff8adafe9e4atagen2026-10-22 12:30 UTC345
  `Room::display_name()`. The new method computes a display name, or return a
7ff8adafe9e4atagen2026-10-22 12:30 UTC346
  cached value from the previous successful computation. If you need a sync
7ff8adafe9e4atagen2026-10-22 12:30 UTC347
  variant, consider using `Room::cached_display_name()`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC348
  ([#4470](https://github.com/matrix-org/matrix-rust-sdk/pull/4470))
7ff8adafe9e4atagen2026-10-22 12:30 UTC349
- [**breaking**]: The reexported types `SyncTimelineEvent` and `TimelineEvent`
7ff8adafe9e4atagen2026-10-22 12:30 UTC350
  have been fused into a single type `TimelineEvent`, and its field
7ff8adafe9e4atagen2026-10-22 12:30 UTC351
  `push_actions` has been made `Option`al (it is set to `None` when we couldn't
7ff8adafe9e4atagen2026-10-22 12:30 UTC352
  compute the push actions, because we lacked some information).
7ff8adafe9e4atagen2026-10-22 12:30 UTC353
  ([#4568](https://github.com/matrix-org/matrix-rust-sdk/pull/4568))
7ff8adafe9e4atagen2026-10-22 12:30 UTC354
7ff8adafe9e4atagen2026-10-22 12:30 UTC355
## [0.9.0] - 2024-12-18
7ff8adafe9e4atagen2026-10-22 12:30 UTC356
7ff8adafe9e4atagen2026-10-22 12:30 UTC357
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC358
7ff8adafe9e4atagen2026-10-22 12:30 UTC359
- Introduced support for
7ff8adafe9e4atagen2026-10-22 12:30 UTC360
  [MSC4171](https://github.com/matrix-org/matrix-rust-sdk/pull/4335), enabling
7ff8adafe9e4atagen2026-10-22 12:30 UTC361
  the designation of certain users as service members. These flagged users are
7ff8adafe9e4atagen2026-10-22 12:30 UTC362
  excluded from the room display name calculation.
7ff8adafe9e4atagen2026-10-22 12:30 UTC363
  ([#4335](https://github.com/matrix-org/matrix-rust-sdk/pull/4335))
7ff8adafe9e4atagen2026-10-22 12:30 UTC364
7ff8adafe9e4atagen2026-10-22 12:30 UTC365
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC366
7ff8adafe9e4atagen2026-10-22 12:30 UTC367
- Fix an off-by-one error in the `ObservableMap` when the `remove()` method is
7ff8adafe9e4atagen2026-10-22 12:30 UTC368
  called. Previously, items following the removed item were not shifted left by
7ff8adafe9e4atagen2026-10-22 12:30 UTC369
  one position, leaving them at incorrect indices.
7ff8adafe9e4atagen2026-10-22 12:30 UTC370
  ([#4346](https://github.com/matrix-org/matrix-rust-sdk/pull/4346))
7ff8adafe9e4atagen2026-10-22 12:30 UTC371
7ff8adafe9e4atagen2026-10-22 12:30 UTC372
## [0.8.0] - 2024-11-19
7ff8adafe9e4atagen2026-10-22 12:30 UTC373
7ff8adafe9e4atagen2026-10-22 12:30 UTC374
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC375
7ff8adafe9e4atagen2026-10-22 12:30 UTC376
- Add more invalid characters for room aliases.
7ff8adafe9e4atagen2026-10-22 12:30 UTC377
- Use the `DisplayName` struct to protect against homoglyph attacks.
7ff8adafe9e4atagen2026-10-22 12:30 UTC378
7ff8adafe9e4atagen2026-10-22 12:30 UTC379
### Features
7ff8adafe9e4atagen2026-10-22 12:30 UTC380
7ff8adafe9e4atagen2026-10-22 12:30 UTC381
- Add `BaseClient::room_key_recipient_strategy` field
7ff8adafe9e4atagen2026-10-22 12:30 UTC382
- `AmbiguityCache` contains the room member's user ID.
7ff8adafe9e4atagen2026-10-22 12:30 UTC383
- [**breaking**] `Media::get_thumbnail` and `MediaFormat::Thumbnail` allow to
7ff8adafe9e4atagen2026-10-22 12:30 UTC384
  request an animated thumbnail They both take a `MediaThumbnailSettings`
7ff8adafe9e4atagen2026-10-22 12:30 UTC385
  instead of `MediaThumbnailSize`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC386
7ff8adafe9e4atagen2026-10-22 12:30 UTC387
- Consider knocked members to be part of the room for display name
7ff8adafe9e4atagen2026-10-22 12:30 UTC388
  disambiguation.
7ff8adafe9e4atagen2026-10-22 12:30 UTC389
7ff8adafe9e4atagen2026-10-22 12:30 UTC390
- `Client::cross_process_store_locks_holder_name` is used everywhere:
7ff8adafe9e4atagen2026-10-22 12:30 UTC391
- `StoreConfig::new()` now takes a
7ff8adafe9e4atagen2026-10-22 12:30 UTC392
  `cross_process_store_locks_holder_name` argument.
7ff8adafe9e4atagen2026-10-22 12:30 UTC393
- `StoreConfig` no longer implements `Default`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC394
- `BaseClient::new()` has been removed.
7ff8adafe9e4atagen2026-10-22 12:30 UTC395
- `BaseClient::clone_with_in_memory_state_store()` now takes a
7ff8adafe9e4atagen2026-10-22 12:30 UTC396
  `cross_process_store_locks_holder_name` argument.
7ff8adafe9e4atagen2026-10-22 12:30 UTC397
- `BaseClient` no longer implements `Default`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC398
- `EventCacheStoreLock::new()` no longer takes a `key` argument.
7ff8adafe9e4atagen2026-10-22 12:30 UTC399
- `BuilderStoreConfig` no longer has
7ff8adafe9e4atagen2026-10-22 12:30 UTC400
  `cross_process_store_locks_holder_name` field for `Sqlite` and
7ff8adafe9e4atagen2026-10-22 12:30 UTC401
  `IndexedDb`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC402
7ff8adafe9e4atagen2026-10-22 12:30 UTC403
- Make `ObservableMap::stream` works on `wasm32-unknown-unknown`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC404
- Allow aborting media uploads.
7ff8adafe9e4atagen2026-10-22 12:30 UTC405
- Replace the `Notification` type from Ruma in `SyncResponse` and `StateChanges`
7ff8adafe9e4atagen2026-10-22 12:30 UTC406
  by a custom one.
7ff8adafe9e4atagen2026-10-22 12:30 UTC407
7ff8adafe9e4atagen2026-10-22 12:30 UTC408
- Introduce a `DisplayName` struct which normalizes and sanitizes
7ff8adafe9e4atagen2026-10-22 12:30 UTC409
  display names.
7ff8adafe9e4atagen2026-10-22 12:30 UTC410
7ff8adafe9e4atagen2026-10-22 12:30 UTC411
### Refactor
7ff8adafe9e4atagen2026-10-22 12:30 UTC412
7ff8adafe9e4atagen2026-10-22 12:30 UTC413
- [**breaking**] Rename `DisplayName` to `RoomDisplayName`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC414
- Rename `AmbiguityMap` to `DisplayNameUsers`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC415
- Move `event_cache_store/` to `event_cache/store/` in `matrix-sdk-base`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC416
- Move `linked_chunk` from `matrix-sdk` to `matrix-sdk-common`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC417
- Move `Event` and `Gap` into `matrix_sdk_base::event_cache`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC418
- The ambiguity maps in `SyncResponse` are moved to `JoinedRoom` and `LeftRoom`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC419
- `Store::get_rooms` and `Store::get_rooms_filtered` are way faster because they
7ff8adafe9e4atagen2026-10-22 12:30 UTC420
  don't acquire the lock for every room they read.
7ff8adafe9e4atagen2026-10-22 12:30 UTC421
7ff8adafe9e4atagen2026-10-22 12:30 UTC422
- `Store::get_rooms`, `Store::get_rooms_filtered` and `Store::get_room` are
7ff8adafe9e4atagen2026-10-22 12:30 UTC423
  renamed `Store::rooms`, `Store::rooms_filtered` and `Store::room`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC424
7ff8adafe9e4atagen2026-10-22 12:30 UTC425
- [**breaking**] `Client::get_rooms` and `Client::get_rooms_filtered` are
7ff8adafe9e4atagen2026-10-22 12:30 UTC426
  renamed `Client::rooms` and `Client::rooms_filtered`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC427
7ff8adafe9e4atagen2026-10-22 12:30 UTC428
- [**breaking**] `Client::get_stripped_rooms` has finally been removed.
7ff8adafe9e4atagen2026-10-22 12:30 UTC429
- [**breaking**] The `StateStore` methods to access data in the media cache
7ff8adafe9e4atagen2026-10-22 12:30 UTC430
  where moved to a separate `EventCacheStore` trait.
7ff8adafe9e4atagen2026-10-22 12:30 UTC431
7ff8adafe9e4atagen2026-10-22 12:30 UTC432
- [**breaking**] The `instant` module was removed, use the `ruma::time` module
7ff8adafe9e4atagen2026-10-22 12:30 UTC433
  instead.
7ff8adafe9e4atagen2026-10-22 12:30 UTC434
7ff8adafe9e4atagen2026-10-22 12:30 UTC435
## 0.7.0
7ff8adafe9e4atagen2026-10-22 12:30 UTC436
7ff8adafe9e4atagen2026-10-22 12:30 UTC437
- Rename `RoomType` to `RoomState`
7ff8adafe9e4atagen2026-10-22 12:30 UTC438
- Add `RoomInfo::state` accessor
7ff8adafe9e4atagen2026-10-22 12:30 UTC439
- Remove `members` and `stripped_members` fields in `StateChanges`. Room member
7ff8adafe9e4atagen2026-10-22 12:30 UTC440
  events are now with other state events in `state` and `stripped_state`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC441
- `StateStore::get_user_ids` takes a `RoomMemberships` to be able to filter the
7ff8adafe9e4atagen2026-10-22 12:30 UTC442
  results by any membership state.
7ff8adafe9e4atagen2026-10-22 12:30 UTC443
  - `StateStore::get_joined_user_ids` and `StateStore::get_invited_user_ids` are
7ff8adafe9e4atagen2026-10-22 12:30 UTC444
    deprecated.
7ff8adafe9e4atagen2026-10-22 12:30 UTC445
- `Room::members` takes a `RoomMemberships` to be able to filter the results by
7ff8adafe9e4atagen2026-10-22 12:30 UTC446
  any membership state.
7ff8adafe9e4atagen2026-10-22 12:30 UTC447
  - `Room::active_members` and `Room::joined_members` are deprecated.
7ff8adafe9e4atagen2026-10-22 12:30 UTC448
- `RoomMember` has new methods:
7ff8adafe9e4atagen2026-10-22 12:30 UTC449
  - `can_ban`
7ff8adafe9e4atagen2026-10-22 12:30 UTC450
  - `can_invite`
7ff8adafe9e4atagen2026-10-22 12:30 UTC451
  - `can_kick`
7ff8adafe9e4atagen2026-10-22 12:30 UTC452
  - `can_redact`
7ff8adafe9e4atagen2026-10-22 12:30 UTC453
  - `can_send_message`
7ff8adafe9e4atagen2026-10-22 12:30 UTC454
  - `can_send_state`
7ff8adafe9e4atagen2026-10-22 12:30 UTC455
  - `can_trigger_room_notification`
7ff8adafe9e4atagen2026-10-22 12:30 UTC456
- Move `StateStore::get_member_event` to `StateStoreExt`
7ff8adafe9e4atagen2026-10-22 12:30 UTC457
- `StateStore::get_stripped_room_infos` is deprecated. All room infos should now
7ff8adafe9e4atagen2026-10-22 12:30 UTC458
  be returned by `get_room_infos`.
7ff8adafe9e4atagen2026-10-22 12:30 UTC459
- `BaseClient::get_stripped_rooms` is deprecated. Use `get_rooms_filtered` with
7ff8adafe9e4atagen2026-10-22 12:30 UTC460
  `RoomStateFilter::INVITED` instead.
7ff8adafe9e4atagen2026-10-22 12:30 UTC461
- Add methods to `StateStore` to be able to retrieve data in batch
7ff8adafe9e4atagen2026-10-22 12:30 UTC462
  - `get_state_events_for_keys`
7ff8adafe9e4atagen2026-10-22 12:30 UTC463
  - `get_profiles`
7ff8adafe9e4atagen2026-10-22 12:30 UTC464
  - `get_presence_events`
7ff8adafe9e4atagen2026-10-22 12:30 UTC465
  - `get_users_with_display_names`
7ff8adafe9e4atagen2026-10-22 12:30 UTC466
- Move `Session`, `SessionTokens` and associated methods to the `matrix-sdk`
7ff8adafe9e4atagen2026-10-22 12:30 UTC467
  crate.
7ff8adafe9e4atagen2026-10-22 12:30 UTC468
- Add `Room::subscribe_info`
7ff8adafe9e4atagen2026-10-22 12:30 UTC469
7ff8adafe9e4atagen2026-10-22 12:30 UTC470
## 0.5.1
7ff8adafe9e4atagen2026-10-22 12:30 UTC471
7ff8adafe9e4atagen2026-10-22 12:30 UTC472
### Bug fixes
7ff8adafe9e4atagen2026-10-22 12:30 UTC473
7ff8adafe9e4atagen2026-10-22 12:30 UTC474
- #664: Fix regression with push rules being applied to the own user_id only
7ff8adafe9e4atagen2026-10-22 12:30 UTC475
  instead of all but the own user_id
7ff8adafe9e4atagen2026-10-22 12:30 UTC476
7ff8adafe9e4atagen2026-10-22 12:30 UTC477
## 0.5.0