Commit Graph

15118 Commits

Author SHA1 Message Date
Richard van der Hoff
eda8d1df38 Enable encrypted-history-sharing-on-invite by default (#6497)
MSC4268 is now canon, and we are ready to roll it out.


Part of https://github.com/element-hq/element-meta/issues/3208

<!-- description of the changes in this PR -->

- [X] I've documented the public API Changes in the appropriate
`CHANGELOG.md` files.
- [ ] This PR was made with the help of AI.
2026-04-27 06:55:11 +01:00
dependabot[bot]
bf4c35e9ab chore(deps): bump rustls-webpki from 0.103.12 to 0.103.13
Bumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.12 to 0.103.13.
- [Release notes](https://github.com/rustls/webpki/releases)
- [Commits](https://github.com/rustls/webpki/compare/v/0.103.12...v/0.103.13)

---
updated-dependencies:
- dependency-name: rustls-webpki
  dependency-version: 0.103.13
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-24 19:59:47 +02:00
Ivan Enderlin
b127fa73a1 chore(sdk): reload_from_storage emits an EventsOrigin::Cache.
This patch updates
`PinnedEventCacheStateLockWriteGuard::reload_from_storage`. It calls
`notify_subscribers` with `EventsOrigin::Sync`. This patch changes for
`EventsOrigin::Cache`. All events are indeed loaded from the store, so
the cache.
2026-04-24 12:55:10 +02:00
Michael Goldenberg
4599c0ce53 doc(sdk): update change log
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-24 12:40:10 +02:00
Michael Goldenberg
96e9efc2e4 doc(crypto): update change log
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-24 12:40:10 +02:00
Michael Goldenberg
7ca8cbbb81 refactor(sdk): re-introduce old crypto store generation logic
This (partially) reverts commit 7a45e91d40
This (partially) reverts commit f64f740972

Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-04-24 12:40:10 +02:00
Michael Goldenberg
ca1f2ac28e Revert "refactor(crypto): remove old store generation logic"
This reverts commit 946179fd28.
2026-04-24 12:40:10 +02:00
ganfra
ba68c450f3 feat(sdk): stop_live_location_share checks beacon_info.live (#6493)
Cannot stop a not-live location share.
2026-04-24 07:39:26 +00:00
Joonas Tuomi
211c9a7e05 fix: set recursion limit to 256 (#6489)
Signed-off-by: Joonas Tuomi <github@joonastuomi.fi>
2026-04-24 07:01:24 +00:00
Jorge Martín
ee9c5c98b9 doc: Add changelog entries 2026-04-24 08:35:18 +02:00
Jorge Martín
b46c808d4f refactor: handle possible StoreError from Room::active_service_members 2026-04-24 08:35:18 +02:00
Jorge Martín
5cc1dca7fa feat(ffi): Expose active_service_members_count in the room infos 2026-04-24 08:35:18 +02:00
Jorge Martín
60eab6344c feat(sdk-base): Add Room::active_service_members
There is an existing `Room::service_members` function that returns the set of user ids for member events in a room. However, those are just extracted from the associated member hints event and don't check if the service members are in the room.

For service members being useful to tell apart rooms from DMs we need to know how many service members are active in the room, so we needed this new function.
2026-04-24 08:35:18 +02:00
ganfra
fb9e110ba4 feat(ffi): expose beacon_id through ffi so client can identify the current share 2026-04-23 21:41:39 +03:00
Mauro
823bc60498 chore: rename LiveLocationShares to LiveLocationObserver (#6446)
name says it all. The previous name was just too confusing, and since
this object acts as a service for the room to publish live location
share updates, I think the `RoomLiveLocationService` is a more
appropriate name
2026-04-23 15:19:07 +02:00
ganfra
f92ccd8d40 feat(ffi): expose BeaconError from sdk to ffi 2026-04-23 11:25:24 +02:00
Jorge Martín
2c2e0f1b15 doc: Add doc comments and changelog entries 2026-04-22 17:26:51 +02:00
Jorge Martín
f314578df5 feat(ffi): Add Client::get_dm_rooms
Expose the new function in the FFI layer
2026-04-22 17:26:51 +02:00
Jorge Martín
739289cd82 feat(ui): Add Client::get_dm_rooms
This function returns an iterator with all the available rooms that match the behaviour previously in `Client::get_dm`. `Client::get_dm` now just calls this function and returns the first item.
2026-04-22 17:26:51 +02:00
Kévin Commaille
1d7d6c943b feat(sdk): Add an expiry to the cached homeserver capabilities
I believe that it is a footgun to cache the data indefinitely by default
so this copies the same behavior as for the supported versions in the
ClientCaches: it sets an expiry duration of 1 day and refreshes the data
in the background when it has expired.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-22 14:21:34 +03:00
Damir Jelić
917f9ee298 chore: Bump vodozemac 2026-04-22 12:30:38 +02:00
Andy Balaam
c7d44ddad3 Change in to into
Signed-off-by: Andy Balaam <mail@artificialworlds.net>
2026-04-22 10:52:25 +01:00
Kévin Commaille
1a170ddf90 fix(common): The expiry duration of TtlValue is 1 day
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-22 10:52:25 +01:00
Kévin Commaille
696d1cacbe refactor(common): Don't check expiry for TtlValue::into_data()
This API is no longer in use so we can remove it. We also rename
`into_data_unchecked()` to `into_data()`.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-22 10:52:25 +01:00
Kévin Commaille
c6d1cf20b6 feat(sdk): Refresh well-known cache in the background
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-22 10:52:25 +01:00
Jonas Platte
38f34e66eb Collapse an else { if ... }
as suggested by clippy.
2026-04-22 08:52:04 +02:00
Jonas Platte
8fa411aaa0 Clean up a lint 2026-04-22 08:52:04 +02:00
Jonas Platte
b4b3b5258c Clean up some imports 2026-04-22 08:52:04 +02:00
Andy Balaam
fd6cb6647f Support stable prefix for MSC4287 m.key_backup 2026-04-21 14:17:26 +01:00
Andy Balaam
103ff7d3ec Use stable identifier for m.shared_history 2026-04-21 13:47:19 +01:00
Andy Balaam
efa28a1ffd Use stable identifiers for m.room_key_bundle and m.history_not_shared 2026-04-21 13:47:19 +01:00
Andy Balaam
c4640897d4 Test for serialization and deserialization of a room key bundle 2026-04-21 13:47:19 +01:00
Benjamin Bouvier
0487a143ed test(integration): workaround non-working subscription to make the test pass in CI 2026-04-21 14:43:55 +02:00
Benjamin Bouvier
7ab97d59b8 test(integration): add an integration test for computing latest events in a few rooms 2026-04-21 14:43:55 +02:00
Benjamin Bouvier
940862ebed chore: bump the integration testing synapse version to v1.151.0 2026-04-21 14:43:55 +02:00
Jorge Martín
e507eaabf6 feat(ffi): Expose ffi::NotificationRoomInfo::service_members
This is needed in some clients to know if a direct room is a DM or not
2026-04-21 13:22:58 +02:00
Jorge Martín
a2bbc33920 doc(ffi): Add changelog entry matrix-sdk-ffi/20260421 2026-04-21 10:38:14 +01:00
Jorge Martín
db787c28b8 refactor(sdk-crypto): Fix several issues related to the newly enabled experimental-push-secrets feature 2026-04-21 10:38:14 +01:00
Jorge Martín
a3d6114ddd refactor(ffi): Use the shared default features for the Kotlin bindings
This should align them with iOS.
2026-04-21 10:38:14 +01:00
Jorge Martín
58a139bf96 feat(ffi): Enable experimental-push-secrets feature by default 2026-04-21 10:38:14 +01:00
Kévin Commaille
012bc03014 refactor: Use TaskMonitor::spawn_finite_task
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-21 11:18:43 +02:00
Kévin Commaille
38adf952bd chore: Fix typo
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-21 11:18:43 +02:00
Kévin Commaille
99d675d85a feat(sdk): Refresh supported versions cache in the background
The previous behavior was making the data unavailable as soon as it is
expired, forcing the user to make a request to access fresh data. This
change keeps the data after it is expired, allowing the function to
return quickly, and triggers a background task to refresh it so that
later calls will be able to use the updated data.

This is a step towards #6090. While it's not clear in the issue what
should be the trigger for the background refreshes, this implements at
least the background refresh while keeping the expiry time as a trigger.

The next steps are to apply this to other cached values and shorten the
expiry time to something like 1 day, which should be more helpful.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-21 11:18:43 +02:00
Kévin Commaille
be5eebaa35 refactor(base): Move and rename TtlStoreValue
Its is now available as `matrix_sdk_common::ttl_cache::TtlValue`,
allowing to use it outside of a store.

It also supports deserializing data without a timestamp, to allow to
add an expiration time to data that was already persisted.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-21 11:18:43 +02:00
Benjamin Bouvier
cf4d3cb492 doc(ffi): clarify when to call Client::enable_automatic_backpagination
Since the boolean is read only once when subscribing the event cache,
let's make it clear when the FFI function should be called (based on
most prominent types used at the FFI layer).
2026-04-21 10:14:52 +02:00
dependabot[bot]
ad5241b2e5 chore(deps): bump bnjbvr/cargo-machete
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete) from e82b6af0d3610e62ddf49bf7c62e662d7e31db0d to ac30a525c0a8d163a92d727b3ff079ee3f6ecb08.
- [Release notes](https://github.com/bnjbvr/cargo-machete/releases)
- [Changelog](https://github.com/bnjbvr/cargo-machete/blob/main/CHANGELOG.md)
- [Commits](e82b6af0d3...e82b6af0d3)

---
updated-dependencies:
- dependency-name: bnjbvr/cargo-machete
  dependency-version: e82b6af0d3610e62ddf49bf7c62e662d7e31db0d
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 10:13:59 +02:00
dependabot[bot]
d083c56ccb chore(deps): bump codecov/codecov-action from 5.5.2 to 6.0.0
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.2 to 6.0.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](671740ac38...57e3a136b7)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 10:02:08 +02:00
dependabot[bot]
eb493de1b8 chore(deps): bump actions/cache from 5.0.4 to 5.0.5
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.4 to 5.0.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](668228422a...27d5ce7f10)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 10:01:44 +02:00
dependabot[bot]
6aa4fdaed4 chore(deps): bump actions/upload-pages-artifact from 4.0.0 to 5.0.0
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4.0.0 to 5.0.0.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](7b1f4a764d...fc324d3547)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 09:59:22 +02:00
dependabot[bot]
9c6bbd98a7 chore(deps): bump taiki-e/install-action from 2.68.26 to 2.75.10
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.68.26 to 2.75.10.
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/install-action/compare/v2.68.26...85b24a67ef0c632dfefad70b9d5ce8fddb040754)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.75.10
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 09:47:28 +02:00