You may be wondering what happened to the 0.15.0 release, and you’re right to ask. Unfortunately, it had to be yanked after a problematic Git dependency slipped through during publishing.
This created a situation where some SDK crates were successfully released as 0.15.0, while others failed to publish. To avoid confusion and maintain consistency, the entire 0.15.0 release was yanked.
What's Changed
Features
- Add
Client::get_store_sizes()so to query the size of the existing stores, if available. (#5911) - Add
QRCodeLoginError::NotFoundfor non-existing / expired rendezvous sessions
(#5898) - Add
QRCodeGrantLoginError::NotFoundfor non-existing / expired rendezvous sessions
(#5898) - Improve logging around key history bundles when joining a room.
(#5866) - Expose the power level required to modify
m.space.childon
room::power_levels::RoomPowerLevelChanges.
(#5857) - Add the
Client::server_versions_cached()method.
(#5853) - Extend
authentication::oauth::OAuth::grant_login_with_qr_codeto support granting
login by scanning a QR code on the existing device.
(#5818) - Add a new
RequestConfig::skip_auth()option. This is useful to ensure that
certain request won't ever include an authorization header.
(#5822) - Add support for extended profile fields with
Account::fetch_profile_field_of(),
Account::fetch_profile_field_of_static(),Account::set_profile_field()and
Account::delete_profile_field().
(#5771) - [breaking] Remove the
matrix-sdk-cryptore-export.
(#5769) - Allow
Client::get_dm_room()to be called without thee2e-encryptioncrate feature.
(#5787) - [breaking] Add
encryption::secret_storage::SecretStorageError::ImportErrorto indicate
an error that occurred when importing a secret from secret storage.
(#5647) - [breaking] Add
authentication::oauth::qrcode::login::LoginProgress::SyncingSecretsto
indicate that secrets are being synced between the two devices.
(#5760) - Add
authentication::oauth::OAuth::grant_login_with_qr_codeto reciprocate a login by
generating a QR code on the existing device.
(#5801) - [breaking]
OAuth::login_with_qr_codenow returns a builder that allows performing the flow with either the
current device scanning or generating the QR code. Additionally, new errorsSecureChannelError::CannotReceiveCheckCode
andQRCodeLoginError::ServerResetwere added.
(#5711) - [breaking]
ThreadedEventsLoader::newnow takes optionaltokensparameter to customise where the pagination
begins (#5678. - Make
PaginationTokenspub, as well as itspreviousandnexttokens so they can be assigned from other files
(#5678. - Add new API to decline calls (MSC4310):
Room::make_decline_call_eventandRoom::subscribe_to_call_decline_events
(#5614)
Refactor
-
[breaking]:
Client::server_vendor_info()requires to enable the
federation-apifeature.
(#5912) -
[breaking]:
Client::reset_server_info()has been split into
reset_supported_versions()andreset_well_known().
(#5910) -
[breaking]:
Client::send()has extra bounds where
Request::Authentication: AuthScheme<Input<'a> = SendAccessToken<'a>>and
Request::PathBuilder: SupportedPathBuilder. This method should still work for any request to the
Client-Server API. This allows to drop theHttpError::NotClientRequesterror in favor of a
compile-time error.
(#5781,
#5789,
#5815) -
[breaking]: The
waveformfield was moved fromAttachmentInfo::VoicetoBaseAudioInfo,
allowing to set it for any audio message. Its format also changed, and it is now a list off32
between 0 and 1.
(#5732) -
[breaking] The
captionandformatted_captionfields and methods ofAttachmentConfig,
GalleryConfigandGalleryItemInfohave been merged into a single field that uses
TextMessageEventContent.
(#5733) -
The Matrix SDK crate now uses the 2024 edition of Rust.
(#5677) -
[breaking] Make
LoginProgress::EstablishingSecureChannelgeneric in order to reuse it
for the currently missing QR login flow.
(#5750) -
[breaking] The
new_virtual_element_call_widgetnow uses apropsand aconfigparameter instead of onlyprops.
This splits the configuration of the widget into required properties ("widget_id", "parent_url"...) so the widget can work
and optional config parameters ("skip_lobby", "header", "...").
The config option should in most cases only provide the"intent"property.
All other config options will then be chosen by EC based on platform +intent.Before:
new_virtual_element_call_widget( VirtualElementCallWidgetProperties { widget_id: "my_widget_id", // required property skip_lobby: Some(true), // optional configuration preload: Some(true), // optional configuration // ... } )
Now:
new_virtual_element_call_widget( VirtualElementCallWidgetProperties { widget_id: "my_widget_id", // required property // ... only required properties }, VirtualElementCallWidgetConfig { intend: Intend.StartCallDM, // defines the default values for all other configuration skip_lobby: Some(false), // overwrite a specific default value ..VirtualElementCallWidgetConfig::default() // set all other config options to `None`. Use defaults from intent. } )
(#5560)
Bugfix
- A new local
LatestEventValuewas always created asLocalIsSending. It
must be created asLocalCannotBeSentif a previous localLatestEventValue
exists and isLocalCannotBeSent.
(#5908) - Switch QR login implementation from
std::time::Instanttoruma::time::Instantwhich
is compatible with Wasm.
(#5889)