ganfra
f92ccd8d40
feat(ffi): expose BeaconError from sdk to ffi
Benchmarks / Run Benchmarks (crypto_bench) (push) Failing after 1m29s
Benchmarks / Run Benchmarks (event_cache) (push) Failing after 6s
Benchmarks / Run Benchmarks (linked_chunk) (push) Failing after 6s
Benchmarks / Run Benchmarks (room_list) (push) Failing after 7s
Benchmarks / Run Benchmarks (store_bench) (push) Failing after 7s
Benchmarks / Run Benchmarks (timeline) (push) Failing after 7s
Bindings tests / xtask (push) Failing after 2m6s
Bindings tests / Run Complement Crypto tests (push) Failing after 0s
Rust tests / xtask (push) Failing after 42s
Rust tests / 🐧 [m], experimental-encrypted-state-events (push) Has been skipped
Rust tests / 🐧 [m], markdown (push) Has been skipped
Rust tests / 🐧 [m], no-encryption (push) Has been skipped
Rust tests / 🐧 [m], no-encryption-and-sqlite (push) Has been skipped
Rust tests / 🐧 [m], no-sqlite (push) Has been skipped
Rust tests / 🐧 [m], search (push) Has been skipped
Rust tests / 🐧 [m], socks (push) Has been skipped
Rust tests / 🐧 [m], sqlite-cryptostore (push) Has been skipped
Rust tests / 🐧 [m], sso-login (push) Has been skipped
Rust tests / 🐧 [m]-examples (push) Has been skipped
Rust tests / 🐧 [m]-crypto (push) Has been skipped
Rust tests / 🕸️ [m]-indexeddb (push) Has been skipped
Rust tests / 🕸️ [m]-base (push) Has been skipped
Rust tests / 🕸️ [m]-common (push) Has been skipped
Rust tests / 🕸️ [m], indexeddb stores (push) Has been skipped
Rust tests / 🕸️ [m], indexeddb stores, no crypto (push) Has been skipped
Rust tests / 🕸️ [m], no-default (push) Has been skipped
Rust tests / 🕸️ [m]-qrcode (push) Has been skipped
Rust tests / 🕸️ [m]-ui (push) Has been skipped
Rust tests / Lint (push) Has been skipped
Rust tests / 🐧 all crates, 🦀 beta (push) Failing after 1m4s
Rust tests / 🐧 all crates, 🦀 stable (push) Failing after 31s
Rust tests / Spell Check with Typos (push) Failing after 1m43s
Rust tests / Integration test (features: default) (push) Failing after 1m20s
Rust tests / Integration test (features: experimental-encrypted-state-events) (push) Failing after 36s
Code Coverage / xtask (push) Failing after 29s
Code Coverage / Code Coverage (push) Has been skipped
Documentation / All crates (push) Failing after 2m1s
Rust version / msrv (push) Failing after 40s
Lint GHA workflows with zizmor / Run zizmor (push) Failing after 9m53s
Bindings tests / Test UniFFI bindings generation (push) Has been skipped
Bindings tests / matrix-rust-components-kotlin (push) Has been skipped
Bindings tests / Generate Crypto FFI Apple XCFramework (push) Has been cancelled
Rust tests / 🍏 all crates, 🦀 stable (push) Has been cancelled
Bindings tests / matrix-rust-components-swift (push) Has been cancelled
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
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
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
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
db787c28b8
refactor(sdk-crypto): Fix several issues related to the newly enabled experimental-push-secrets feature
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
8b14a8920c
doc(sdk): add a module doc code example for search
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
98b36fe5e0
chore: update changelogs
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
ce01854078
refactor(sdk): Room::search_messages and Client::search_messages
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
7f8c9b0244
refactor(search): pass the number of results per batch in the ctors
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
3621acb445
refactor(sdk): move the high-level search helpers back to the SDK crate
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
3789374951
refactor(sdk): move search related functions to a message_search module
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
e54a36a1ca
refactor(search): simplify global search more by avoiding is_done tracking
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
cf95c3f4cc
refactor(search): avoid using a HashMap for linear iteration
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
6ccfc92139
refactor(search): simplify code around global search
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
4ee20befa3
chore: address first batch of review comments
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
4348d9de23
chore: add changelog entries for search!
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
477ee70e1c
feat(ffi): bindings for search
2026-04-20 12:18:52 +02:00
Benjamin Bouvier
6fa832cfc8
feat(search): higher-level Search API
2026-04-20 12:18:52 +02:00
Andy Balaam
0e120549ce
Remove unneeded TODO in RoomKeyBundleContent
...
Quoting @poljar:
> If you follow the stack till you get where the secret key is, you end up here:
> https://github.com/ruma/ruma/blob/6282fd8838fd2c84f252f85973d8a43577ced91a/crates/ruma-events/src/room.rs#L269-L273
> And that is now zeroized.
> So yeah, the TODO was resolved in Ruma.
2026-04-17 16:18:36 +02:00
Damir Jelić
1e74c48351
fix(thread): Only apply valid edits in the thread summary
2026-04-17 12:34:47 +02:00
Damir Jelić
9e242abda9
test(latest-event): Check that we don't apply invalid edits in the latest event
2026-04-17 12:34:47 +02:00
Damir Jelić
62ff895ce8
fix(latest-event): Don't apply invalid edits on the latest event
2026-04-17 12:34:47 +02:00
Damir Jelić
d0d22ece78
refactor(latest-event): Ensure we have access to the event JSON when deciding on a latest event
2026-04-17 12:34:47 +02:00
Damir Jelić
d49d86e8b0
fix(ui): Follow the spec more closely in how we reject invalid edits
2026-04-17 12:34:47 +02:00
Damir Jelić
b226191bf4
test(common): Add some tests to validate the edit validation logic
2026-04-17 12:34:47 +02:00
Damir Jelić
21d7cd1b9d
feat(common): Add a function to validate edits
2026-04-17 12:34:47 +02:00
Ivan Enderlin
b066260554
doc(ui): Add #6459 in the `CHANGELOG.md.
2026-04-17 11:02:21 +02:00
Ivan Enderlin
dbc6e3c3aa
fix(ui): Fix a possible panic in Switch by updating async-rx.
...
This patch updates `async-rx` to fix a possible panic in `Switch`. It
now requires the outer stream to implement `FusedStream` (for the moment).
2026-04-17 11:02:21 +02:00
Benoit Marty
3293c94451
feat(ffi): Expose Client.request_openid_token() in order to let sdk clients request an openId token
2026-04-17 08:29:43 +00:00
Andy Balaam
53385798f6
Changelog update for #6457
2026-04-17 09:15:58 +01:00
Andy Balaam
d49736455b
Discard room key if someone leaves a room for a non-leave reason e.g. ban
2026-04-17 09:15:58 +01:00
Andy Balaam
d5c7c886a1
Add a note helping to understand that an existing test is sufficient to cover e.g. Ban events as well as Leave
2026-04-17 09:15:58 +01:00
Ivan Enderlin
b9b40c0ef2
doc(sdk): Add #6453 in the `CHANGELOG.md.
2026-04-15 17:49:46 +02:00
Ivan Enderlin
99d60bcc70
fix(sdk): Fix an infinite loop when loading pinned events from the storage.
...
This patch fixes a critical infinite loop when loading pinned events
from the storage if and only if there is more than one chunk for the
pinned events.
The previous implementation was broken in two ways:
1. if there was no previous chunk, then `prev` was set to `None`, but
`previous` was never updated, so it was loop forever,
2. `load_previous_chunk` was called with the `last_chunk.previous` chunk
identifier, which is incorrect: it must be called with the last chunk
identifier, not the previous': otherwise it skips one chunk every time.
This patch adds a test to ensure everything works as expected.
2026-04-15 17:49:46 +02:00