Jorge Martín
5f4912c273
Use suggestions to simplify the callback blocks
2026-05-26 15:01:29 +02:00
Jorge Martín
662e2fe872
WIP
2026-05-26 12:18:05 +02:00
Mauro Romito
3a44b50518
docs: changelog added
2026-05-26 12:33:08 +03:00
Mauro Romito
55262807e1
feat (bindings): expose tile_server to FFI
2026-05-26 12:33:08 +03:00
dependabot[bot]
235151de39
chore(deps): bump zizmorcore/zizmor-action from 0.5.3 to 0.5.6
...
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action ) from 0.5.3 to 0.5.6.
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases )
- [Commits](b1d7e1fb5d...5f14fd08f7 )
---
updated-dependencies:
- dependency-name: zizmorcore/zizmor-action
dependency-version: 0.5.6
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-26 10:33:30 +02:00
dependabot[bot]
460dcbbf02
chore(deps): bump crate-ci/typos from 1.46.1 to 1.46.2
...
Bumps [crate-ci/typos](https://github.com/crate-ci/typos ) from 1.46.1 to 1.46.2.
- [Release notes](https://github.com/crate-ci/typos/releases )
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md )
- [Commits](5374cbf686...aca895bf05 )
---
updated-dependencies:
- dependency-name: crate-ci/typos
dependency-version: 1.46.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-26 10:26:54 +02:00
Jorge Martín
7b6cc76361
Update rpassword to v7.5.1 to fix clippy
...
This was happening for non-linux targets. Fixed in https://github.com/conradkleinespel/rpassword/pull/128
2026-05-26 10:24:40 +02:00
dependabot[bot]
13247c3201
chore(deps): bump taiki-e/install-action from 2.77.6 to 2.79.1
...
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action ) from 2.77.6 to 2.79.1.
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](c070f87102...b550161ef8 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.79.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-26 09:43:47 +03:00
Ivan Enderlin
1205c2b212
doc(sdk): Add the changelog file.
2026-05-22 11:23:24 +02:00
Ivan Enderlin
eb6d5c330c
test(sdk): Add a test to ensure no Client cyclic reference with ThreadSubscriptionCatchup.
2026-05-22 11:23:24 +02:00
Ivan Enderlin
b01ce21a24
fix(sdk): Remove a cyclic reference of Client in ThreadSubscriptionCatchup.
...
This patch fixes cyclic reference of `Client` in
`ThreadSubscriptionCatchup`.
`ThreadSubscriptionCatchup` starts a task that call
`thread_subscriptions_catchup_task`. This function captures a clone of
`ThreadSubscriptionCatchup` (why not…) which contains a `WeakClient`,
all good, no cycle here! However, the real task (not the function)
captures `Client` to call `enabled_thread_subscriptions` to know
if the function `thread_subscriptions_catchup_task` must be called.
Consequently, the task captures a clone of `Client`, boom, we have
a cycle.
This patch fixes the problem by spawning the task if and only if
`Client::enabled_thread_subscriptions` returns `Ok(true)`. This check is
done outside the task. It seems saner and avoid creating this cycle.
Consequently, the `ThreadSubscriptionCatchup::new` method becomes
`async`, which is perfectly fine as it was already wrapper inside an
`async` block when initialised by the `Client`.
2026-05-22 11:23:24 +02:00
Michael Goldenberg
b847983dbf
refactor(base): hold state store lock while processing sync response
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2026-05-21 12:34:28 +02:00
Daniel Anderson
8675cb2841
feat(ffi): expose append parameter on Client::set_pusher
...
Forwards the new SDK append flag across the FFI boundary so multi-profile
clients can register pushers without overwriting each other.
Breaking change: Client::set_pusher now takes an append: bool parameter.
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com >
2026-05-21 12:53:08 +03:00
Daniel Anderson
d3c499ddbc
feat(sdk): expose append parameter on Pusher::set
...
Forwards the Matrix spec's append flag on POST /_matrix/client/v3/pushers/set
through Pusher::set. When true, the homeserver keeps any existing pusher
with the same app_id and pushkey registered for other users instead of
replacing it. Needed for multi-profile clients on a single device.
Breaking change: Pusher::set now takes an append: bool parameter.
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com >
2026-05-21 12:53:08 +03:00
ganfra
4ca424f5f2
revert "only start with a timeline reset diff if the timeline isn't empty"
2026-05-21 09:40:09 +02:00
Damir Jelić
82c24a891b
fix(sdk): Make the pinned events sorting deterministic
...
The previous sorting logic relied on SystemTime::now, which introduces
non-deterministic behavior which might result in a panic.
2026-05-20 16:54:20 +02:00
Hugh Nimmo-Smith
3372ca3577
test(sdk): explicitly assert homserver URL swap for QR login
2026-05-20 15:56:33 +02:00
Daniel Anderson
10c0a86e99
feat(ffi): expose RoomInfo::fully_read_event_id
...
`m.fully_read` is now available on the FFI `RoomInfo` record
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com >
2026-05-20 11:46:20 +03:00
Daniel Anderson
a80fa910da
feat(base): expose m.fully_read event ID on RoomInfo
...
Persist `m.fully_read` on `BaseRoomInfo` and expose it
on `RoomInfo::fully_read_event_id` and `Room::fully_read_event_id`.
The `m.fully_read` response processor now stores the event ID
on the room info and emits `RoomInfoNotableUpdateReasons::FULLY_READ`
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com >
2026-05-20 11:46:20 +03:00
Daniel Anderson
4b1ae064c7
feat(base): add FULLY_READ notable update reason
...
Add `RoomInfoNotableUpdateReasons::FULLY_READ`, used for
when the `m.fully_read` marker for a room changes.
Breaking change: the backing bitflag widens from `u8` to `u16`
for the new flag to not alter the existing bit positions.
Signed-off-by: Daniel Anderson <daniel.anderson@toptal.com >
2026-05-20 11:46:20 +03:00
Jorge Martín
4a26af89f2
feat(ffi): Expose SqliteStoreBuilder::key in the FFI layer
...
This allows clients to provide a raw key instead of a passphrase for the key used to encrypt and decrypt data in the store DBs.
Using a raw key with enough entropy should be safe, and we can skip the key derivation performed in the passphrase, which slows down session restoration (it's now 50% faster in my local tests).
2026-05-19 16:05:15 +02:00
Ivan Enderlin
7677f09099
doc: Update the PR template to match the recent changelog modifications.
2026-05-19 10:49:12 +02:00
dependabot[bot]
80ecdc17c8
chore(deps): bump crate-ci/typos from 1.46.0 to 1.46.1
...
Bumps [crate-ci/typos](https://github.com/crate-ci/typos ) from 1.46.0 to 1.46.1.
- [Release notes](https://github.com/crate-ci/typos/releases )
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md )
- [Commits](bbaefadf97...5374cbf686 )
---
updated-dependencies:
- dependency-name: crate-ci/typos
dependency-version: 1.46.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-19 09:29:49 +02:00
dependabot[bot]
56a37273c7
chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.17 to 2.0.18
...
Bumps [EmbarkStudios/cargo-deny-action](https://github.com/embarkstudios/cargo-deny-action ) from 2.0.17 to 2.0.18.
- [Release notes](https://github.com/embarkstudios/cargo-deny-action/releases )
- [Commits](91bf2b620e...6c8f9facfa )
---
updated-dependencies:
- dependency-name: EmbarkStudios/cargo-deny-action
dependency-version: 2.0.18
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-19 09:25:36 +02:00
dependabot[bot]
10c98c77fd
chore(deps): bump taiki-e/install-action from 2.76.0 to 2.77.6
...
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action ) from 2.76.0 to 2.77.6.
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](711e1c3275...c070f87102 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.77.6
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-19 09:25:09 +02:00
dependabot[bot]
3a1806a900
chore(deps): bump CodSpeedHQ/action from 4.15.0 to 4.15.1
...
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action ) from 4.15.0 to 4.15.1.
- [Release notes](https://github.com/codspeedhq/action/releases )
- [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md )
- [Commits](c381be0bfd...3194d9a39c )
---
updated-dependencies:
- dependency-name: CodSpeedHQ/action
dependency-version: 4.15.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-19 09:24:47 +02:00
Ivan Enderlin
b6d0f8a0a7
chore: Fix rumdl errors and warnings by hand.
2026-05-18 15:05:52 +02:00
Ivan Enderlin
7d31912f0d
chore: Run rumdl check --fix.
2026-05-18 15:05:52 +02:00
Ivan Enderlin
e8fe0f3642
chore: Configure rumdl.
...
This patch adds configuration for `rumdl` (https://github.com/rvben/rumdl ).
2026-05-18 15:05:52 +02:00
Ivan Enderlin
56de50cef4
doc: Fix changelog entries format.
...
The list style is no more necessary.
matrix-sdk-ffi/20260519
2026-05-18 09:06:24 +02:00
Damir Jelić
929551152e
chore: Remove the rustrover image as it isn't used anymore
2026-05-15 16:23:59 +02:00
Kévin Commaille
edb5d41597
refactor(sdk): Make RumaApiError a type alias of UiaaResponse
...
They have similar variants containing the same data so it's not useful
to have separate types.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-05-15 12:04:54 +02:00
Kévin Commaille
6a551f31e2
refactor(sdk): Simplify some error matching
...
By using helper methods on error types.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-05-15 12:04:54 +02:00
Kévin Commaille
44a12a7849
refactor(sdk): Use upstream method to match unsupported endpoint error
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2026-05-15 12:04:54 +02:00
Artem Pylypchuk
c895e92c26
fix: manually drop room if it's last in Arc
2026-05-15 11:57:23 +02:00
Jorge Martín
7c13b60e28
fix: Refresh timeline items when their sender's avatar URL changes
...
This is similar to what happens when a user display name changes, its ambiguity is calculated and if it changes, it reloads the associated timeline events.
In fact, this change tries to follow the same strategy as `AmbiguityCache`.
2026-05-15 11:56:27 +02:00
Damir Jelić
e5a50089c2
chore: Migrate changelogs to towncrier fragments
2026-05-15 11:15:38 +02:00
Damir Jelić
2a8d75e43f
chore: Add the changelog fragment directories
2026-05-14 15:56:14 +02:00
Damir Jelić
3e34794147
chore: Update our contributing guide for the new changelog format
2026-05-14 15:56:14 +02:00
Damir Jelić
8fb918e062
chore: Update our changelogs so towncrier knows where to insert changelogs
2026-05-14 15:56:14 +02:00
Damir Jelić
045d178d63
chore: Update the release hook to call towncrier
2026-05-14 15:56:14 +02:00
Damir Jelić
36658b4e8c
chore: Add a towncrier config
2026-05-14 15:56:14 +02:00
Benoit Marty
c253114b05
fix: can_be_replied_to() returns false for LiveLocation events.
2026-05-13 13:38:12 +01:00
dependabot[bot]
f50309786e
chore(deps): bump taiki-e/install-action from 2.75.23 to 2.76.0
...
Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action ) from 2.75.23 to 2.76.0.
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](481c34c1cf...711e1c3275 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.76.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-13 10:24:24 +02:00
dependabot[bot]
32faffeca7
chore(deps): bump rpassword from 7.4.0 to 7.5.0
...
Bumps [rpassword](https://github.com/conradkleinespel/rpassword ) from 7.4.0 to 7.5.0.
- [Release notes](https://github.com/conradkleinespel/rpassword/releases )
- [Commits](https://github.com/conradkleinespel/rpassword/compare/v7.4.0...v7.5.0 )
---
updated-dependencies:
- dependency-name: rpassword
dependency-version: 7.5.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-05-13 10:23:41 +02:00
Stefan Ceriu
6792416efb
chore(timeline): replace duplicate read receipt panic with plain error
2026-05-12 17:25:48 +03:00
Stefan Ceriu
2497f0ebd3
chore(stores): switch from pause/resume semantics to close and reopen ones
2026-05-12 17:25:48 +03:00
Stefan Ceriu
e72841ab79
change(stores): remove the default pause/resume implementations and replace them with concrete ones.
2026-05-12 17:25:48 +03:00
Stefan Ceriu
3f6887a69e
chore(doc): update the documentation around pausing an resuming stores
2026-05-12 17:25:48 +03:00
Stefan Ceriu
e46cd9870d
feat(client): expose a client pause/resume mechanism throughout the SDK
...
This patch exposes the pause/resume mechanism for SDK stores all the way up to
the FFI `Client`, so apps can temporarily release SQLite resources when moving
to the background and re-acquire them on resume.
The main use case is iOS backgrounding, where keeping SQLite file descriptors and
locks open can contribute to `0xdead10cc` terminations by the operating system.
2026-05-12 17:25:48 +03:00