chore: Release matrix-sdk version 0.8.0 (#4291)
Co-authored-by: Ivan Enderlin <ivan@mnt.io>
This commit is contained in:
Generated
+9
-9
@@ -2882,7 +2882,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk"
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"anymap2",
|
||||
@@ -2958,7 +2958,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-base"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"as_variant",
|
||||
"assert_matches",
|
||||
@@ -2994,7 +2994,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-common"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"assert_matches",
|
||||
"async-trait",
|
||||
@@ -3022,7 +3022,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-crypto"
|
||||
version = "0.7.2"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"anyhow",
|
||||
@@ -3145,7 +3145,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-indexeddb"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"assert_matches",
|
||||
@@ -3213,7 +3213,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-qrcode"
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"byteorder",
|
||||
"image",
|
||||
@@ -3225,7 +3225,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-sqlite"
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"assert_matches",
|
||||
"async-trait",
|
||||
@@ -3252,7 +3252,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-store-encryption"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64 0.22.1",
|
||||
@@ -3298,7 +3298,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "matrix-sdk-ui"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"as_variant",
|
||||
|
||||
+9
-9
@@ -79,17 +79,17 @@ vodozemac = { version = "0.8.0", features = ["insecure-pk-encryption"] }
|
||||
wiremock = "0.6.0"
|
||||
zeroize = "1.6.0"
|
||||
|
||||
matrix-sdk = { path = "crates/matrix-sdk", version = "0.7.0", default-features = false }
|
||||
matrix-sdk-base = { path = "crates/matrix-sdk-base", version = "0.7.0" }
|
||||
matrix-sdk-common = { path = "crates/matrix-sdk-common", version = "0.7.0" }
|
||||
matrix-sdk-crypto = { path = "crates/matrix-sdk-crypto", version = "0.7.0" }
|
||||
matrix-sdk = { path = "crates/matrix-sdk", version = "0.8.0", default-features = false }
|
||||
matrix-sdk-base = { path = "crates/matrix-sdk-base", version = "0.8.0" }
|
||||
matrix-sdk-common = { path = "crates/matrix-sdk-common", version = "0.8.0" }
|
||||
matrix-sdk-crypto = { path = "crates/matrix-sdk-crypto", version = "0.8.0" }
|
||||
matrix-sdk-ffi-macros = { path = "bindings/matrix-sdk-ffi-macros", version = "0.7.0" }
|
||||
matrix-sdk-indexeddb = { path = "crates/matrix-sdk-indexeddb", version = "0.7.0", default-features = false }
|
||||
matrix-sdk-qrcode = { path = "crates/matrix-sdk-qrcode", version = "0.7.0" }
|
||||
matrix-sdk-sqlite = { path = "crates/matrix-sdk-sqlite", version = "0.7.0", default-features = false }
|
||||
matrix-sdk-store-encryption = { path = "crates/matrix-sdk-store-encryption", version = "0.7.0" }
|
||||
matrix-sdk-indexeddb = { path = "crates/matrix-sdk-indexeddb", version = "0.8.0", default-features = false }
|
||||
matrix-sdk-qrcode = { path = "crates/matrix-sdk-qrcode", version = "0.8.0" }
|
||||
matrix-sdk-sqlite = { path = "crates/matrix-sdk-sqlite", version = "0.8.0", default-features = false }
|
||||
matrix-sdk-store-encryption = { path = "crates/matrix-sdk-store-encryption", version = "0.8.0" }
|
||||
matrix-sdk-test = { path = "testing/matrix-sdk-test", version = "0.7.0" }
|
||||
matrix-sdk-ui = { path = "crates/matrix-sdk-ui", version = "0.7.0", default-features = false }
|
||||
matrix-sdk-ui = { path = "crates/matrix-sdk-ui", version = "0.8.0", default-features = false }
|
||||
|
||||
# Default release profile, select with `--release`
|
||||
[profile.release]
|
||||
|
||||
@@ -2,24 +2,80 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
# unreleased
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Add more invalid characters for room aliases.
|
||||
|
||||
- Use the `DisplayName` struct to protect against homoglyph attacks.
|
||||
|
||||
|
||||
### Features
|
||||
- Add `BaseClient::room_key_recipient_strategy` field
|
||||
- Replace the `Notification` type from Ruma in `SyncResponse` and `StateChanges` by a custom one
|
||||
- The ambiguity maps in `SyncResponse` are moved to `JoinedRoom` and `LeftRoom`
|
||||
- `AmbiguityCache` contains the room member's user ID
|
||||
|
||||
- `AmbiguityCache` contains the room member's user ID.
|
||||
|
||||
- [**breaking**] `Media::get_thumbnail` and `MediaFormat::Thumbnail` allow to
|
||||
request an animated thumbnail They both take a `MediaThumbnailSettings`
|
||||
instead of `MediaThumbnailSize`.
|
||||
|
||||
- Consider knocked members to be part of the room for display name
|
||||
disambiguation.
|
||||
|
||||
- `Client::cross_process_store_locks_holder_name` is used everywhere:
|
||||
- `StoreConfig::new()` now takes a
|
||||
`cross_process_store_locks_holder_name` argument.
|
||||
- `StoreConfig` no longer implements `Default`.
|
||||
- `BaseClient::new()` has been removed.
|
||||
- `BaseClient::clone_with_in_memory_state_store()` now takes a
|
||||
`cross_process_store_locks_holder_name` argument.
|
||||
- `BaseClient` no longer implements `Default`.
|
||||
- `EventCacheStoreLock::new()` no longer takes a `key` argument.
|
||||
- `BuilderStoreConfig` no longer has
|
||||
`cross_process_store_locks_holder_name` field for `Sqlite` and
|
||||
`IndexedDb`.
|
||||
|
||||
- Make `ObservableMap::stream` works on `wasm32-unknown-unknown`.
|
||||
|
||||
- Allow aborting media uploads.
|
||||
|
||||
- Replace the `Notification` type from Ruma in `SyncResponse` and `StateChanges`
|
||||
by a custom one.
|
||||
|
||||
- Introduce a `DisplayName` struct which normalizes and sanitizes
|
||||
display names.
|
||||
|
||||
|
||||
### Refactor
|
||||
|
||||
- [**breaking**] Rename `DisplayName` to `RoomDisplayName`.
|
||||
|
||||
- Rename `AmbiguityMap` to `DisplayNameUsers`.
|
||||
|
||||
- Move `event_cache_store/` to `event_cache/store/` in `matrix-sdk-base`.
|
||||
|
||||
- Move `linked_chunk` from `matrix-sdk` to `matrix-sdk-common`.
|
||||
|
||||
- Move `Event` and `Gap` into `matrix_sdk_base::event_cache`.
|
||||
|
||||
- The ambiguity maps in `SyncResponse` are moved to `JoinedRoom` and `LeftRoom`.
|
||||
|
||||
- `Store::get_rooms` and `Store::get_rooms_filtered` are way faster because they
|
||||
don't acquire the lock for every room they read.
|
||||
|
||||
- `Store::get_rooms`, `Store::get_rooms_filtered` and `Store::get_room` are
|
||||
renamed `Store::rooms`, `Store::rooms_filtered` and `Store::room`.
|
||||
- `Client::get_rooms` and `Client::get_rooms_filtered` are renamed
|
||||
|
||||
- [**breaking**] `Client::get_rooms` and `Client::get_rooms_filtered` are renamed
|
||||
`Client::rooms` and `Client::rooms_filtered`.
|
||||
- `Client::get_stripped_rooms` has finally been removed.
|
||||
- `Media::get_thumbnail` and `MediaFormat::Thumbnail` allow to request an animated thumbnail
|
||||
- They both take a `MediaThumbnailSettings` instead of `MediaThumbnailSize`.
|
||||
- The `StateStore` methods to access data in the media cache where moved to a separate
|
||||
`EventCacheStore` trait.
|
||||
- The `instant` module was removed, use the `ruma::time` module instead.
|
||||
|
||||
- [**breaking**] `Client::get_stripped_rooms` has finally been removed.
|
||||
|
||||
- [**breaking**] The `StateStore` methods to access data in the media cache
|
||||
where moved to a separate `EventCacheStore` trait.
|
||||
|
||||
- [**breaking**] The `instant` module was removed, use the `ruma::time` module instead.
|
||||
|
||||
# 0.7.0
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ name = "matrix-sdk-base"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
rust-version = { workspace = true }
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
|
||||
@@ -2,3 +2,10 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
### Refactor
|
||||
|
||||
- Move `linked_chunk` from `matrix-sdk` to `matrix-sdk-common`.
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ name = "matrix-sdk-common"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
rust-version = { workspace = true }
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
default-target = "x86_64-unknown-linux-gnu"
|
||||
|
||||
@@ -1,6 +1,70 @@
|
||||
# UNRELEASED
|
||||
# Changelog
|
||||
|
||||
Changes:
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
### Features
|
||||
|
||||
- Pin identity when we withdraw verification.
|
||||
|
||||
- Expose new method `OlmMachine::room_keys_withheld_received_stream`, to allow
|
||||
applications to receive notifications about received `m.room_key.withheld`
|
||||
events.
|
||||
([#3660](https://github.com/matrix-org/matrix-rust-sdk/pull/3660)),
|
||||
([#3674](https://github.com/matrix-org/matrix-rust-sdk/pull/3674))
|
||||
|
||||
- Expose new method `OlmMachine::clear_crypto_cache()`, with FFI bindings.
|
||||
([#3462](https://github.com/matrix-org/matrix-rust-sdk/pull/3462))
|
||||
|
||||
- Expose new method `OlmMachine::upload_device_keys()`.
|
||||
([#3457](https://github.com/matrix-org/matrix-rust-sdk/pull/3457))
|
||||
|
||||
- Expose new method `CryptoStore::import_room_keys`.
|
||||
([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
|
||||
|
||||
- Expose new method `BackupMachine::backup_version`.
|
||||
([#3320](https://github.com/matrix-org/matrix-rust-sdk/pull/3320))
|
||||
|
||||
- Add data types to parse the QR code data for the QR code login defined in.
|
||||
[MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
|
||||
|
||||
- Expose new method `CryptoStore::clear_caches`.
|
||||
([#3338](https://github.com/matrix-org/matrix-rust-sdk/pull/3338))
|
||||
|
||||
- Expose new method `OlmMachine::device_creation_time`.
|
||||
([#3275](https://github.com/matrix-org/matrix-rust-sdk/pull/3275))
|
||||
|
||||
- Log more details about the Olm session after encryption and decryption.
|
||||
([#3242](https://github.com/matrix-org/matrix-rust-sdk/pull/3242))
|
||||
|
||||
- When Olm message decryption fails, report the error code(s) from the failure.
|
||||
([#3212](https://github.com/matrix-org/matrix-rust-sdk/pull/3212))
|
||||
|
||||
- Expose new methods `OlmMachine::set_room_settings` and
|
||||
`OlmMachine::get_room_settings`.
|
||||
([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
|
||||
|
||||
- Add new properties `session_rotation_period` and
|
||||
`session_rotation_period_msgs` to `store::RoomSettings`.
|
||||
([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
|
||||
|
||||
- Fix bug which caused `SecretStorageKey` to incorrectly reject secret storage
|
||||
keys whose metadata lacked check fields.
|
||||
([#3046](https://github.com/matrix-org/matrix-rust-sdk/pull/3046))
|
||||
|
||||
- Add new API `Device::encrypt_event_raw` that allows
|
||||
to encrypt an event to a specific device.
|
||||
([#3091](https://github.com/matrix-org/matrix-rust-sdk/pull/3091))
|
||||
|
||||
- Add new API `store::Store::export_room_keys_stream` that provides room
|
||||
keys on demand.
|
||||
|
||||
- Include event timestamps on logs from event decryption.
|
||||
([#3194](https://github.com/matrix-org/matrix-rust-sdk/pull/3194))
|
||||
|
||||
|
||||
### Refactor
|
||||
|
||||
- Add new method `OlmMachine::try_decrypt_room_event`.
|
||||
([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116))
|
||||
@@ -8,14 +72,14 @@ Changes:
|
||||
- Add reason code to `matrix_sdk_common::deserialized_responses::UnableToDecryptInfo`.
|
||||
([#4116](https://github.com/matrix-org/matrix-rust-sdk/pull/4116))
|
||||
|
||||
- The `UserIdentity` struct has been renamed to `OtherUserIdentity`
|
||||
- [**breaking**] The `UserIdentity` struct has been renamed to `OtherUserIdentity`.
|
||||
([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036]))
|
||||
|
||||
- The `UserIdentities` enum has been renamed to `UserIdentity`
|
||||
- [**breaking**] The `UserIdentities` enum has been renamed to `UserIdentity`.
|
||||
([#4036](https://github.com/matrix-org/matrix-rust-sdk/pull/4036]))
|
||||
|
||||
- Change the withheld code for keys not shared due to the `IdentityBasedStrategy`, from `m.unauthorised`
|
||||
to `m.unverified`.
|
||||
- Change the withheld code for keys not shared due to the
|
||||
`IdentityBasedStrategy`, from `m.unauthorised` to `m.unverified`.
|
||||
([#3985](https://github.com/matrix-org/matrix-rust-sdk/pull/3985))
|
||||
|
||||
- Improve logging for undecryptable Megolm events.
|
||||
@@ -59,47 +123,47 @@ Changes:
|
||||
|
||||
Breaking changes:
|
||||
|
||||
- `VerificationRequestState::Transitioned` now includes a new field
|
||||
- [**breaking**] `VerificationRequestState::Transitioned` now includes a new field
|
||||
`other_device_data` of type `DeviceData`.
|
||||
([#4153](https://github.com/matrix-org/matrix-rust-sdk/pull/4153))
|
||||
|
||||
- `OlmMachine::decrypt_room_event` now returns a `DecryptedRoomEvent` type,
|
||||
- [**breaking**] `OlmMachine::decrypt_room_event` now returns a `DecryptedRoomEvent` type,
|
||||
instead of the more generic `TimelineEvent` type.
|
||||
|
||||
- **NOTE**: this version causes changes to the format of the serialised data in
|
||||
- [**breaking**] **NOTE**: this version causes changes to the format of the serialised data in
|
||||
the CryptoStore, meaning that, once upgraded, it will not be possible to roll
|
||||
back applications to earlier versions without breaking user sessions.
|
||||
|
||||
- Renamed `VerificationLevel::PreviouslyVerified` to
|
||||
- [**breaking**] Renamed `VerificationLevel::PreviouslyVerified` to
|
||||
`VerificationLevel::VerificationViolation`.
|
||||
|
||||
- `OlmMachine::decrypt_room_event` now takes a `DecryptionSettings` argument,
|
||||
which includes a `TrustRequirement` indicating the required trust level for
|
||||
the sending device. When it is called with `TrustRequirement` other than
|
||||
`TrustRequirement::Unverified`, it may return the new
|
||||
`MegolmError::SenderIdentityNotTrusted` variant if the sending device does not
|
||||
satisfy the required trust level.
|
||||
- [**breaking**] `OlmMachine::decrypt_room_event` now takes a
|
||||
`DecryptionSettings` argument, which includes a `TrustRequirement` indicating
|
||||
the required trust level for the sending device. When it is called with
|
||||
`TrustRequirement` other than `TrustRequirement::Unverified`, it may return
|
||||
the new `MegolmError::SenderIdentityNotTrusted` variant if the sending device
|
||||
does not satisfy the required trust level.
|
||||
([#3899](https://github.com/matrix-org/matrix-rust-sdk/pull/3899))
|
||||
|
||||
- Change the structure of the `SenderData` enum to separate variants for
|
||||
previously-verified, unverified and verified.
|
||||
- [**breaking**] Change the structure of the `SenderData` enum to separate
|
||||
variants for previously-verified, unverified and verified.
|
||||
([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877))
|
||||
|
||||
- Where `EncryptionInfo` is returned it may include the new `PreviouslyVerified`
|
||||
variant of `VerificationLevel` to indicate that the user was previously
|
||||
verified and is no longer verified.
|
||||
- [**breaking**] Where `EncryptionInfo` is returned it may include the new
|
||||
`PreviouslyVerified` variant of `VerificationLevel` to indicate that the user
|
||||
was previously verified and is no longer verified.
|
||||
([#3877](https://github.com/matrix-org/matrix-rust-sdk/pull/3877))
|
||||
|
||||
- Expose new methods `OwnUserIdentity::was_previously_verified`,
|
||||
- [**breaking**] Expose new methods `OwnUserIdentity::was_previously_verified`,
|
||||
`OwnUserIdentity::withdraw_verification`, and
|
||||
`OwnUserIdentity::has_verification_violation`, which track whether our own
|
||||
identity was previously verified.
|
||||
([#3846](https://github.com/matrix-org/matrix-rust-sdk/pull/3846))
|
||||
|
||||
- Add a new `error_on_verified_user_problem` property to
|
||||
- [**breaking**] Add a new `error_on_verified_user_problem` property to
|
||||
`CollectStrategy::DeviceBasedStrategy`, which, when set, causes
|
||||
`OlmMachine::share_room_key` to fail with an error if any verified users on
|
||||
the recipient list have unsigned devices, or are no lonver verified.
|
||||
the recipient list have unsigned devices, or are no longer verified.
|
||||
|
||||
When `CallectStrategy::IdentityBasedStrategy` is used,
|
||||
`OlmMachine::share_room_key` will fail with an error if any verified users on
|
||||
@@ -109,103 +173,43 @@ Breaking changes:
|
||||
Also remove `CollectStrategy::new_device_based`: callers should construct a
|
||||
`CollectStrategy::DeviceBasedStrategy` directly.
|
||||
|
||||
`EncryptionSettings::new` now takes a `CollectStrategy` argument, instead of
|
||||
a list of booleans.
|
||||
`EncryptionSettings::new` now takes a `CollectStrategy` argument, instead of a
|
||||
list of booleans.
|
||||
([#3810](https://github.com/matrix-org/matrix-rust-sdk/pull/3810))
|
||||
([#3816](https://github.com/matrix-org/matrix-rust-sdk/pull/3816))
|
||||
([#3896](https://github.com/matrix-org/matrix-rust-sdk/pull/3896))
|
||||
|
||||
- Remove the method `OlmMachine::clear_crypto_cache()`, crypto stores are not
|
||||
supposed to have any caches anymore.
|
||||
- [**breaking**] Remove the method `OlmMachine::clear_crypto_cache()`, crypto
|
||||
stores are not supposed to have any caches anymore.
|
||||
|
||||
- Add a `custom_account` argument to the `OlmMachine::with_store()` method, this
|
||||
allows users to learn their identity keys before they get access to the user
|
||||
and device ID.
|
||||
- [**breaking**] Add a `custom_account` argument to the
|
||||
`OlmMachine::with_store()` method, this allows users to learn their identity
|
||||
keys before they get access to the user and device ID.
|
||||
([#3451](https://github.com/matrix-org/matrix-rust-sdk/pull/3451))
|
||||
|
||||
- Add a `backup_version` argument to `CryptoStore`'s
|
||||
- [**breaking**] Add a `backup_version` argument to `CryptoStore`'s
|
||||
`inbound_group_sessions_for_backup`,
|
||||
`mark_inbound_group_sessions_as_backed_up` and
|
||||
`inbound_group_session_counts` methods.
|
||||
([#3253](https://github.com/matrix-org/matrix-rust-sdk/pull/3253))
|
||||
`mark_inbound_group_sessions_as_backed_up` and `inbound_group_session_counts`
|
||||
methods. ([#3253](https://github.com/matrix-org/matrix-rust-sdk/pull/3253))
|
||||
|
||||
- Rename the `OlmMachine::invalidate_group_session` method to
|
||||
`OlmMachine::discard_room_key`
|
||||
- [**breaking**] Rename the `OlmMachine::invalidate_group_session` method to
|
||||
`OlmMachine::discard_room_key`.
|
||||
|
||||
- Move `OlmMachine::export_room_keys` to `matrix_sdk_crypto::store::Store`.
|
||||
- [**breaking**] Move `OlmMachine::export_room_keys` to `matrix_sdk_crypto::store::Store`.
|
||||
(Call it with `olm_machine.store().export_room_keys(...)`.)
|
||||
|
||||
- Add new `dehydrated` property to `olm::account::PickledAccount`.
|
||||
- [**breaking**] Add new `dehydrated` property to `olm::account::PickledAccount`.
|
||||
([#3164](https://github.com/matrix-org/matrix-rust-sdk/pull/3164))
|
||||
|
||||
- Remove deprecated `OlmMachine::import_room_keys`.
|
||||
- [**breaking**] Remove deprecated `OlmMachine::import_room_keys`.
|
||||
([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
|
||||
|
||||
- Add the `SasState::Created` variant to differentiate the state between the
|
||||
- [**breaking**] Add the `SasState::Created` variant to differentiate the state between the
|
||||
party that sent the verification start and the party that received it.
|
||||
|
||||
Deprecations:
|
||||
|
||||
- Deprecate `BackupMachine::import_backed_up_room_keys`.
|
||||
- [**breaking**] Deprecate `BackupMachine::import_backed_up_room_keys`.
|
||||
([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
|
||||
|
||||
Additions:
|
||||
|
||||
- Expose new method `OlmMachine::room_keys_withheld_received_stream`, to allow
|
||||
applications to receive notifications about received `m.room_key.withheld`
|
||||
events.
|
||||
([#3660](https://github.com/matrix-org/matrix-rust-sdk/pull/3660)),
|
||||
([#3674](https://github.com/matrix-org/matrix-rust-sdk/pull/3674))
|
||||
|
||||
- Expose new method `OlmMachine::clear_crypto_cache()`, with FFI bindings
|
||||
([#3462](https://github.com/matrix-org/matrix-rust-sdk/pull/3462))
|
||||
|
||||
- Expose new method `OlmMachine::upload_device_keys()`.
|
||||
([#3457](https://github.com/matrix-org/matrix-rust-sdk/pull/3457))
|
||||
|
||||
- Expose new method `CryptoStore::import_room_keys`.
|
||||
([#3448](https://github.com/matrix-org/matrix-rust-sdk/pull/3448))
|
||||
|
||||
- Expose new method `BackupMachine::backup_version`.
|
||||
([#3320](https://github.com/matrix-org/matrix-rust-sdk/pull/3320))
|
||||
|
||||
- Add data types to parse the QR code data for the QR code login defined in
|
||||
[MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
|
||||
|
||||
- Expose new method `CryptoStore::clear_caches`.
|
||||
([#3338](https://github.com/matrix-org/matrix-rust-sdk/pull/3338))
|
||||
|
||||
- Expose new method `OlmMachine::device_creation_time`.
|
||||
([#3275](https://github.com/matrix-org/matrix-rust-sdk/pull/3275))
|
||||
|
||||
- Log more details about the Olm session after encryption and decryption.
|
||||
([#3242](https://github.com/matrix-org/matrix-rust-sdk/pull/3242))
|
||||
|
||||
- When Olm message decryption fails, report the error code(s) from the failure.
|
||||
([#3212](https://github.com/matrix-org/matrix-rust-sdk/pull/3212))
|
||||
|
||||
- Expose new methods `OlmMachine::set_room_settings` and
|
||||
`OlmMachine::get_room_settings`.
|
||||
([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
|
||||
|
||||
- Add new properties `session_rotation_period` and
|
||||
`session_rotation_period_msgs` to `store::RoomSettings`.
|
||||
([#3042](https://github.com/matrix-org/matrix-rust-sdk/pull/3042))
|
||||
|
||||
- Fix bug which caused `SecretStorageKey` to incorrectly reject secret storage
|
||||
keys whose metadata lacked check fields.
|
||||
([#3046](https://github.com/matrix-org/matrix-rust-sdk/pull/3046))
|
||||
|
||||
- Add new API `Device::encrypt_event_raw` that allows
|
||||
to encrypt an event to a specific device.
|
||||
([#3091](https://github.com/matrix-org/matrix-rust-sdk/pull/3091))
|
||||
|
||||
- Add new API `store::Store::export_room_keys_stream` that provides room
|
||||
keys on demand.
|
||||
|
||||
- Include event timestamps on logs from event decryption.
|
||||
([#3194](https://github.com/matrix-org/matrix-rust-sdk/pull/3194))
|
||||
|
||||
|
||||
# 0.7.2
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ name = "matrix-sdk-crypto"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
rust-version = { workspace = true }
|
||||
version = "0.7.2"
|
||||
version = "0.8.0"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
rustdoc-args = ["--cfg", "docsrs"]
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
# UNRELEASED
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
### Features
|
||||
|
||||
- Improve the efficiency of objects stored in the crypto store.
|
||||
([#3645](https://github.com/matrix-org/matrix-rust-sdk/pull/3645), [#3651](https://github.com/matrix-org/matrix-rust-sdk/pull/3651))
|
||||
@@ -11,3 +13,6 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
- `save_change` performance improvement, all encryption and serialization
|
||||
is done now outside of the db transaction.
|
||||
### Bug Fixes
|
||||
|
||||
- Use the `DisplayName` struct to protect against homoglyph attacks.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "matrix-sdk-indexeddb"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
description = "Web's IndexedDB Storage backend for matrix-sdk"
|
||||
license = "Apache-2.0"
|
||||
|
||||
@@ -2,3 +2,6 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
No notable changes in this release.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "matrix-sdk-qrcode"
|
||||
description = "Library to encode and decode QR codes for interactive verifications in Matrix land"
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
authors = ["Damir Jelić <poljar@termina.org.uk>"]
|
||||
edition = "2021"
|
||||
homepage = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
|
||||
@@ -2,3 +2,15 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Use the `DisplayName` struct to protect against homoglyph attacks.
|
||||
|
||||
|
||||
### Refactor
|
||||
|
||||
- Move `event_cache_store/` to `event_cache/store/` in `matrix-sdk-base`.
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "matrix-sdk-sqlite"
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
edition = "2021"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
description = "Sqlite storage backend for matrix-sdk"
|
||||
|
||||
@@ -2,3 +2,6 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
No notable changes in this release.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "matrix-sdk-store-encryption"
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
edition = "2021"
|
||||
description = "Helpers for encrypted storage keys for the Matrix SDK"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
|
||||
@@ -2,29 +2,40 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
# unreleased
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
Breaking changes:
|
||||
### Bug Fixes
|
||||
|
||||
- `Timeline::edit` now takes a `RoomMessageEventContentWithoutRelation`.
|
||||
- `Timeline::send_attachment` now takes an `impl Into<PathBuf>` for the path of
|
||||
the file to send.
|
||||
- `Timeline::item_by_transaction_id` has been renamed to `Timeline::local_item_by_transaction_id`
|
||||
(always returns local echoes).
|
||||
|
||||
Bug fixes:
|
||||
- Disable `share_pos()` inside `RoomListService`.
|
||||
|
||||
- `UtdHookManager` no longer re-reports UTD events as late decryptions.
|
||||
([#3480](https://github.com/matrix-org/matrix-rust-sdk/pull/3480))
|
||||
|
||||
- Messages that we were unable to decrypt no longer display a red padlock.
|
||||
([#3956](https://github.com/matrix-org/matrix-rust-sdk/issues/3956))
|
||||
|
||||
Other changes:
|
||||
|
||||
- `UtdHookManager` no longer reports UTD events that were already reported in a
|
||||
previous session.
|
||||
([#3519](https://github.com/matrix-org/matrix-rust-sdk/pull/3519))
|
||||
|
||||
### Features
|
||||
|
||||
- Add `m.room.join_rules` to the required state.
|
||||
|
||||
- `EncryptionSyncService` and `Notification` are using
|
||||
`Client::cross_process_store_locks_holder_name`.
|
||||
|
||||
|
||||
### Refactor
|
||||
|
||||
- [**breaking**] `Timeline::edit` now takes a `RoomMessageEventContentWithoutRelation`.
|
||||
|
||||
- [**breaking**] `Timeline::send_attachment` now takes an `impl Into<PathBuf>`
|
||||
for the path of the file to send.
|
||||
|
||||
- [**breaking**] `Timeline::item_by_transaction_id` has been renamed to
|
||||
`Timeline::local_item_by_transaction_id` (always returns local echoes).
|
||||
|
||||
|
||||
# 0.7.0
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[package]
|
||||
name = "matrix-sdk-ui"
|
||||
description = "GUI-centric utilities on top of matrix-rust-sdk (experimental)."
|
||||
version = "0.7.0"
|
||||
version = "0.8.0"
|
||||
edition = "2021"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
license = "Apache-2.0"
|
||||
|
||||
+165
-43
@@ -1,51 +1,14 @@
|
||||
# unreleased
|
||||
# Changelog
|
||||
|
||||
Breaking changes:
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
- Renamed `VerificationLevel::PreviouslyVerified` to `VerificationLevel::VerificationViolation`.
|
||||
- Add a `PreviouslyVerified` variant to `VerificationLevel` indicating that the identity is unverified and previously it was verified.
|
||||
- Replace the `Notification` type from Ruma in `SyncResponse` and `Client::register_notification_handler`
|
||||
by a custom one
|
||||
- `Room::can_user_redact` and `Member::can_redact` are split between `*_redact_own` and `*_redact_other`
|
||||
- The ambiguity maps in `SyncResponse` are moved to `JoinedRoom` and `LeftRoom`
|
||||
- `AmbiguityCache` contains the room member's user ID
|
||||
- Replace `impl MediaEventContent` with `&impl MediaEventContent` in
|
||||
`Media::get_file`/`Media::remove_file`/`Media::get_thumbnail`/`Media::remove_thumbnail`
|
||||
- A custom sliding sync proxy set with `ClientBuilder::sliding_sync_proxy` now takes precedence over a discovered proxy.
|
||||
- `Client::get_profile` was moved to `Account` and renamed to `Account::fetch_user_profile_of`. `Account::get_profile` was renamed to `Account::fetch_user_profile`.
|
||||
- The `HttpError::UnableToCloneRequest` error variant has been removed because it was never used or
|
||||
generated by the SDK.
|
||||
- The `Error::InconsistentState` error variant has been removed because it was never used or
|
||||
generated by the SDK.
|
||||
- The widget capabilities in the FFI now need two additional flags: `update_delayed_event`, `send_delayed_event`.
|
||||
- `Room::event` now takes an optional `RequestConfig` to allow for tweaking the network behavior.
|
||||
- The `instant` module was removed, use the `ruma::time` module instead.
|
||||
- Add `ClientBuilder::sqlite_store_with_cache_path` to build a client that stores caches in a different directory to state/crypto.
|
||||
- The `body` parameter in `get_media_file` has been replaced with a `filename` parameter now that Ruma has a `filename()` method.
|
||||
## [0.8.0] - 2024-11-19
|
||||
|
||||
Additions:
|
||||
### Bug Fixes
|
||||
|
||||
- new `UserIdentity::pin` method.
|
||||
- new `ClientBuilder::with_decryption_trust_requirement` method.
|
||||
- new `ClientBuilder::with_room_key_recipient_strategy` method
|
||||
- new `Room.set_account_data` and `Room.set_account_data_raw` RoomAccountData setters, analogous to the GlobalAccountData
|
||||
- new `RequestConfig.max_concurrent_requests` which allows to limit the maximum number of concurrent requests the internal HTTP client issues (all others have to wait until the number drops below that threshold again)
|
||||
- Expose new method `Client::Oidc::login_with_qr_code()`.
|
||||
([#3466](https://github.com/matrix-org/matrix-rust-sdk/pull/3466))
|
||||
- Add the `ClientBuilder::add_root_certificates()` method which re-exposes the
|
||||
`reqwest::ClientBuilder::add_root_certificate()` functionality.
|
||||
- Add `Room::get_user_power_level(user_id)` and `Room::get_suggested_user_role(user_id)` to be able to fetch power level info about an user without loading the room member list.
|
||||
- Add new method `discard_room_key` on `Room` that allows to discard the current
|
||||
outbound session for that room. Can be used by clients as a dev tool like the `/discardsession` command.
|
||||
- Add a new `LinkedChunk` data structure to represents all events per room ([#3166](https://github.com/matrix-org/matrix-rust-sdk/pull/3166)).
|
||||
- Add new methods for tracking (on device only) the user's recently visited rooms called `Account::track_recently_visited_room(roomId)` and `Account::get_recently_visited_rooms()`
|
||||
- Add `send_call_notification` and `send_call_notification_if_needed` methods. This allows to implement sending ring events on call start.
|
||||
- The `get_media_content`, `get_media_file` and `get_file` methods of the
|
||||
`Media` api now support the new authenticated media endpoints.
|
||||
- WidgetDriver: Support the `"delay"` field in the `send_event` widget actions.
|
||||
This allows to send delayed events, as defined in [MSC4157](https://github.com/matrix-org/matrix-spec-proposals/pull/4157)
|
||||
- Add more invalid characters for room aliases.
|
||||
|
||||
Bug fixes:
|
||||
- Match the right status code in `Client::is_room_alias_available`.
|
||||
|
||||
- Fix a bug where room keys were considered to be downloaded before backups were
|
||||
enabled. This bug only affects the
|
||||
@@ -53,6 +16,165 @@ Bug fixes:
|
||||
made to download a room key, if a decryption failure with a given room key
|
||||
would have been encountered before the backups were enabled.
|
||||
|
||||
### Documentation
|
||||
|
||||
- Improve documentation of `Client::observe_events`.
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
|
||||
- Add `create_room_alias` function.
|
||||
|
||||
- `Client::cross_process_store_locks_holder_name` is used everywhere:
|
||||
- `StoreConfig::new()` now takes a
|
||||
`cross_process_store_locks_holder_name` argument.
|
||||
- `StoreConfig` no longer implements `Default`.
|
||||
- `BaseClient::new()` has been removed.
|
||||
- `BaseClient::clone_with_in_memory_state_store()` now takes a
|
||||
`cross_process_store_locks_holder_name` argument.
|
||||
- `BaseClient` no longer implements `Default`.
|
||||
- `EventCacheStoreLock::new()` no longer takes a `key` argument.
|
||||
- `BuilderStoreConfig` no longer has
|
||||
`cross_process_store_locks_holder_name` field for `Sqlite` and
|
||||
`IndexedDb`.
|
||||
|
||||
- `EncryptionSyncService` and `Notification` are using `Client::cross_process_store_locks_holder_name`.
|
||||
|
||||
- Allow passing a custom `RequestConfig` to an upload request.
|
||||
|
||||
- Retry uploads if they've failed with transient errors.
|
||||
|
||||
- Implement `EventHandlerContext` for tuples.
|
||||
|
||||
- Introduce a mechanism similar to `Client::add_event_handler` and
|
||||
`Client::add_room_event_handler` but with a reactive programming pattern. Add
|
||||
`Client::observe_events` and `Client::observe_room_events`.
|
||||
|
||||
```rust
|
||||
// Get an observer.
|
||||
let observer =
|
||||
client.observe_events::<SyncRoomMessageEvent, (Room, Vec<Action>)>();
|
||||
|
||||
// Subscribe to the observer.
|
||||
let mut subscriber = observer.subscribe();
|
||||
|
||||
// Use the subscriber as a `Stream`.
|
||||
let (message_event, (room, push_actions)) = subscriber.next().await.unwrap();
|
||||
```
|
||||
|
||||
When calling `observe_events`, one has to specify the type of event (in the
|
||||
example, `SyncRoomMessageEvent`) and a context (in the example, `(Room,
|
||||
Vec<Action>)`, respectively for the room and the push actions).
|
||||
|
||||
- Implement unwedging for media uploads.
|
||||
|
||||
- Send state from state sync and not from timeline to widget ([#4254](https://github.com/matrix-org/matrix-rust-sdk/pull/4254))
|
||||
|
||||
- Allow aborting media uploads.
|
||||
|
||||
- Add `RoomPreviewInfo::num_active_members`.
|
||||
|
||||
- Use room directory search as another data source.
|
||||
|
||||
- Check if the user is allowed to do a room mention before trying to send a call
|
||||
notify event.
|
||||
([#4271](https://github.com/matrix-org/matrix-rust-sdk/pull/4271))
|
||||
|
||||
- Add `Client::cross_process_store_locks_holder_name()`.
|
||||
|
||||
- Add a `PreviouslyVerified` variant to `VerificationLevel` indicating that the
|
||||
identity is unverified and previously it was verified.
|
||||
|
||||
- New `UserIdentity::pin` method.
|
||||
|
||||
- New `ClientBuilder::with_decryption_trust_requirement` method.
|
||||
|
||||
- New `ClientBuilder::with_room_key_recipient_strategy` method
|
||||
|
||||
- New `Room.set_account_data` and `Room.set_account_data_raw` RoomAccountData
|
||||
setters, analogous to the GlobalAccountData
|
||||
|
||||
- New `RequestConfig.max_concurrent_requests` which allows to limit the maximum
|
||||
number of concurrent requests the internal HTTP client issues (all others have
|
||||
to wait until the number drops below that threshold again)
|
||||
|
||||
- Implement proper redact handling in the widget driver. This allows the Rust
|
||||
SDK widget driver to support widgets that rely on redacting.
|
||||
|
||||
|
||||
### Refactor
|
||||
- [**breaking**] Rename `DisplayName` to `RoomDisplayName`.
|
||||
|
||||
- Improve `is_room_alias_format_valid` so it's more strict.
|
||||
|
||||
- Remove duplicated fields in media event contents.
|
||||
|
||||
- Use `SendHandle` for media uploads too.
|
||||
|
||||
- Move `event_cache_store/` to `event_cache/store/` in `matrix-sdk-base`.
|
||||
|
||||
- Move `linked_chunk` from `matrix-sdk` to `matrix-sdk-common`.
|
||||
|
||||
- Move `Event` and `Gap` into `matrix_sdk_base::event_cache`.
|
||||
|
||||
- Move `formatted_caption_from` to the SDK, rename it.
|
||||
|
||||
- Tidy up and start commenting the widget code.
|
||||
|
||||
- Get rid of `ProcessingContext` and inline it in its callers.
|
||||
|
||||
- Get rid of unused `limits` parameter when constructing a `WidgetMachine`.
|
||||
|
||||
- Use a specialized mutex for locking access to the state store and
|
||||
`being_sent`.
|
||||
|
||||
- Renamed `VerificationLevel::PreviouslyVerified` to
|
||||
`VerificationLevel::VerificationViolation`.
|
||||
|
||||
- [**breaking**] Replace the `Notification` type from Ruma in `SyncResponse` and
|
||||
`Client::register_notification_handler` by a custom one.
|
||||
|
||||
- [**breaking**] The ambiguity maps in `SyncResponse` are moved to `JoinedRoom`
|
||||
and `LeftRoom`.
|
||||
|
||||
- [**breaking**] `Room::can_user_redact` and `Member::can_redact` are split
|
||||
between `*_redact_own` and `*_redact_other`.
|
||||
|
||||
- [**breaking**] `AmbiguityCache` contains the room member's user ID.
|
||||
|
||||
- [**breaking**] Replace `impl MediaEventContent` with `&impl MediaEventContent` in
|
||||
`Media::get_file`/`Media::remove_file`/`Media::get_thumbnail`/`Media::remove_thumbnail`
|
||||
|
||||
- [**breaking**] A custom sliding sync proxy set with
|
||||
`ClientBuilder::sliding_sync_proxy` now takes precedence over a discovered
|
||||
proxy.
|
||||
|
||||
- [**breaking**] `Client::get_profile` was moved to `Account` and renamed to
|
||||
`Account::fetch_user_profile_of`. `Account::get_profile` was renamed to
|
||||
`Account::fetch_user_profile`.
|
||||
|
||||
- [**breaking**] The `HttpError::UnableToCloneRequest` error variant has been
|
||||
removed because it was never used or generated by the SDK.
|
||||
|
||||
- [**breaking**] The `Error::InconsistentState` error variant has been removed
|
||||
because it was never used or generated by the SDK.
|
||||
|
||||
- [**breaking**] The widget capabilities in the FFI now need two additional
|
||||
flags: `update_delayed_event`, `send_delayed_event`.
|
||||
|
||||
- [**breaking**] `Room::event` now takes an optional `RequestConfig` to allow
|
||||
for tweaking the network behavior.
|
||||
|
||||
- [**breaking**] The `instant` module was removed, use the `ruma::time` module
|
||||
instead.
|
||||
|
||||
- [**breaking**] Add `ClientBuilder::sqlite_store_with_cache_path` to build a
|
||||
client that stores caches in a different directory to state/crypto.
|
||||
|
||||
- [**breaking**] The `body` parameter in `get_media_file` has been replaced with
|
||||
a `filename` parameter now that Ruma has a `filename()` method.
|
||||
|
||||
# 0.7.0
|
||||
|
||||
Breaking changes:
|
||||
|
||||
@@ -9,7 +9,7 @@ name = "matrix-sdk"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/matrix-org/matrix-rust-sdk"
|
||||
rust-version = { workspace = true }
|
||||
version = "0.7.1"
|
||||
version = "0.8.0"
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
features = ["docsrs"]
|
||||
|
||||
Reference in New Issue
Block a user