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
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
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
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
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
Benjamin Bouvier
a1f32d741f
refactor(ffi): remove unused struct
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
3621acb445
refactor(sdk): move the high-level search helpers back to the SDK crate
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
83989c030a
feat(ffi): allow enabling search with a search index store
2026-04-20 12:18:52 +02:00
Ivan Enderlin
1bff8cbe5d
chore(ffi): Do not log errors in ClientError::from_str.
...
This patch stops logging errors in `ClientError::from_str` as it was an
artifact of some old debugging sessions.
2026-04-20 11:33:15 +02:00
Ivan Enderlin
9bb67e8422
fix(ffi): Use the ERROR log level for errors.
...
This patch changes a `warn!` to an `error!` in `ClientError`. There are
errors, let's use the proper log level here.
2026-04-20 11:33:15 +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
Johannes Marbach
63f5be6935
feat(sync): Allow setting a custom Sliding Sync connection ID and timeline limit on RoomListService
...
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org >
2026-04-15 11:06:57 +02:00
Jorge Martín
9c28ee7041
feat(ffi): Add ffi::Client::set_avatar_url
...
This method uses `Account::set_avatar_url` under the hood to update the user's avatar to the provided MXC url
2026-04-14 12:08:47 +02:00
ganfra
96d63b7c8d
doc: update changelogs
2026-04-13 16:57:57 +02:00
ganfra
260eaeea2b
feat (live location): rewrite live location shares subscription logic
2026-04-13 16:57:57 +02:00
Hubert Chathi
45fa860b6b
add secret pushing feature to FFI
2026-04-10 14:52:39 +01:00
Daniel Salinas
d47306045f
Add cfg around inadvertent use of sqlite in matrix-sdk-ffi crate
...
Several new functions implicitly rely on the sqlite config.
sqlite might not be present if you are using the indexedb store, in which case
these functions are likely irrelevant.
This change conditionalizes their compilation.
2026-04-10 14:11:36 +02:00
Philippe Bertin
ba461598b2
feat(ffi): expose latest json
...
Signed-off-by: Philippe Bertin <pbertin@teladochealth.com >
2026-04-09 15:57:29 +02:00
Stanislav Skobelkin
0233d03d4e
fix(ffi): Export Eq and Hash traits in enums used as HashMap keys
...
matrix_sdk_ffi::ruma::TagName and matrix_sdk_ffi::event::TimelineEventType enums
that are used as HashMap keys by matrix_sdk_ffi::ruma::Tag and
matrix_sdk_ffi::room::power_levels::RoomPowerLevels respectively should probably
export Eq and Hash traits, so that we can generate bindings for languages that
implement uniffi's record/HashMap type using a hash table (e.g.
std::unordered_map in C++)
Signed-off-by: Stanislav Skobelkin <stanislav@skobelk.in >
2026-04-09 12:12:57 +02:00
Damir Jelić
725f74cbe8
fix(ffi): Correctly return that the backup is complete if the backup key is valid
2026-04-09 12:01:04 +02:00
Damir Jelić
34a35ad32a
feat(ffi): Allow passing in a SecretsBundle after logging in ( #6212 )
...
This allows people to get a secrets bundle out of band or out of a database and import it
after logging in a new client.
Mainly targeted to support the Element Classic -> Element X migration.
Signed-off-by: Damir Jelić <poljar@termina.org.uk >
Co-authored-by: Benoit Marty <benoitm@matrix.org >
2026-04-08 14:07:57 +00:00
Jonas Platte
94d8674709
refactor(ffi): Deduplicate thumbnail conversion code
2026-04-08 07:58:36 +02:00
Jonas Platte
dfc4e03d5b
refactor(ffi): Replace nested match with if-let chain
2026-04-08 07:58:36 +02:00
Jonas Platte
14b8248e4b
refactor(ffi): Extract closure as fn to reduce indentation
2026-04-08 07:58:36 +02:00
Jonas Platte
447c89aed4
refactor(ffi): Merge separate impl blocks
2026-04-08 07:58:36 +02:00
Michael Goldenberg
41edb08283
doc(ffi): update change log
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2026-04-07 09:44:34 -04:00
Michael Goldenberg
44aad14732
doc: update references to tls features
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2026-04-07 09:44:34 -04:00
Michael Goldenberg
c8c9a94995
feat(ffi): remove rustls-tls feature flag
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2026-04-07 09:44:33 -04:00
Michael Goldenberg
89c50c7ecd
feat(ffi): remove support for native-tls
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2026-04-07 09:44:33 -04:00
Jonas Platte
12cd1effdc
refactor(ffi): Fix new clippy lints
2026-04-07 12:39:12 +02:00
Jonas Platte
3a14b73258
chore(ffi): Rerun cargo fmt
2026-04-07 12:39:12 +02:00
Jonas Platte
d97f4ab8b3
chore(ffi): Upgrade to Rust edition 2024
2026-04-07 12:39:12 +02:00
Bryant Mairs
3539487c49
feat: expose call_intent for m.rtc.notification
...
This allows for notifications to use the intent for deciding how to
render the message (e.g. whether to call it a "call" or a "video call").
Signed-off-by: Bryant Mairs <bryant@mai.rs >
2026-04-07 10:26:26 +02:00
Kévin Commaille
30de5372eb
Upgrade Ruma after api::Error breaking change
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-04-07 10:17:42 +02:00
Kévin Commaille
ba451b67c9
Upgrade Ruma after RoomAliases removal
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-04-07 10:17:42 +02:00
Valere Fedronic
fcce02fc11
feat(widget): Support for avatars in calls via msc4039 ( #6354 )
...
Allows to get the avatars in Element Call widget !
Using
[MSC4039](https://github.com/nordeck/matrix-spec-proposals/blob/nic/feat/widgetapi-upload-files/proposals/4039-widget-api-media.md )
Counter part of web support:
- https://github.com/element-hq/element-web/pull/32755
- https://github.com/element-hq/element-call/pull/3780
Needs a EC PR to support passing data as base64 via the widget json API
- https://github.com/element-hq/element-call/pull/3818
2026-04-02 13:35:22 +03:00
Bertin Philippe
32e9626e0f
feat(ffi): expose event types and content ( #6387 )
...
Signed-off-by: Philippe Bertin <pbertin@teladochealth.com >
2026-04-02 09:14:57 +02:00
Kévin Commaille
644c5e8a4c
Upgrade Ruma to commit after PushCondition breaking changes
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-04-01 10:20:21 +01:00
Kévin Commaille
34d5e6da2a
Upgrade Ruma to commit after UserIdentifier breaking changes
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-04-01 10:20:21 +01:00
Kévin Commaille
5936a7285f
Upgrade Ruma to commit after push Action breaking changes
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-04-01 10:20:21 +01:00
Benjamin Bouvier
9913cce946
Merge branch 'main' into bnjbvr/automatic-backpagination-unread-counts
2026-03-31 15:55:44 +02:00
Jorge Martín
5d2eab119d
feat: Improve getting homeserver capabilities
...
This extracts the `/capabilities` logic to its own `HomeserverCapabilities` component in the SDK that can be manually asked to fetch, cache locally and return these capabilities.
2026-03-31 15:25:37 +02:00
Benjamin Bouvier
950fcd289d
refactor(ffi): only start with a reset diff if the timeline isn't empty
2026-03-31 11:17:34 +02:00
Bertin Philippe
2214aded9d
feat(ffi): expose Client.sync() ( #6359 )
...
### Expose sync v2 API through FFI via `Client.sync()` and
`Client.sync_once()` #6348
Mobile clients can now sync using the traditional `/sync` v2 endpoint
through the FFI bindings, without requiring Sliding Sync (MSC4186)
support on the homeserver.
This PR introduces a new API (non-breaking change).
#### Implementation notes
I chose to expose only the **list of room IDs** (invited, joined, left,
knocked) in the `SyncResponse`, rather than forwarding the full per-room
event payloads. This keeps the FFI surface simple. Clients that need
room details can query them through the existing `Room` APIs after being
notified of changes via the listener.
Two entry points are provided:
- **`Client.sync(settings, listener)`** starts a continuous sync loop,
returning a `TaskHandle` for cancellation. The `SyncListener` callback
fires after each successful sync response.
- **`Client.sync_once(settings)`** performs a single sync call, useful
for initial sync or one-off use cases.
`SyncSettings` exposes `timeout_ms` and `full_state`.
Signed-off-by: Philippe Bertin <pbertin@teladochealth.com >
2026-03-31 10:40:54 +02:00