Benjamin Bouvier
6aea4c827a
feat(ffi): allow setting the media retention policy from the FFI layer
2025-03-04 18:10:59 +01:00
Benjamin Bouvier
ac3250c58b
refactor(event cache): use u64 instead of usize in MediaCachePolicy
...
This is more predictible and we're still far from 128-bits wide cpu,
right? RIGHT?
2025-03-04 18:10:59 +01:00
Benjamin Bouvier
6fe0880e11
feat(ffi): add a method to clear all the non-critical caches of a client
2025-03-04 18:10:59 +01:00
Stefan Ceriu
78282bf1e1
chore(sdk-base): fix typos following typos crate bump to 1.30.0
2025-03-04 11:28:36 +02:00
dependabot[bot]
43d25127c3
chore(deps): bump crate-ci/typos from 1.29.7 to 1.30.0
...
Bumps [crate-ci/typos](https://github.com/crate-ci/typos ) from 1.29.7 to 1.30.0.
- [Release notes](https://github.com/crate-ci/typos/releases )
- [Changelog](https://github.com/crate-ci/typos/blob/master/CHANGELOG.md )
- [Commits](https://github.com/crate-ci/typos/compare/v1.29.7...v1.30.0 )
---
updated-dependencies:
- dependency-name: crate-ci/typos
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-04 11:28:36 +02:00
bitfriend
c33c61a256
feat(ci): Implement CI to detect long path in pushed commit
2025-03-03 16:57:36 +00:00
Benjamin Bouvier
def4be5a9f
refactor(event cache): make use of Chunk::num_items when deciding whether to drop a previous empty event chunk
2025-03-03 16:04:15 +01:00
Benjamin Bouvier
9bc0d8b0d9
refactor(event cache): rename Chunk::len to Chunk::num_items
2025-03-03 16:04:15 +01:00
Benjamin Bouvier
0924b2e343
refactor(event cache): get rid of EmptyChunkRule::Keep which is only used in testing
...
This isn't useful to keep, since it's only used in testing. Worst case,
we can revert this commit in the future.
2025-03-03 16:04:15 +01:00
Benjamin Bouvier
8b6e75980b
refactor(event cache): don't keep an empty events chunk before a gap
...
The linked chunk always starts with an empty events chunk. If we receive
a gap from sync, then we will immediately push a gap chunk; in this
case, it might be better to replace the events chunk with a gap chunk.
This is equivalent to removing the empty events chunk, after pushing
back the first one (we can't do it before, otherwise we might get rid of
the only chunk in the linked chunk, which breaks the invariant that a
linked chunk is never empty).
2025-03-03 16:04:15 +01:00
dependabot[bot]
5fd0cb0ddb
chore(deps): bump bnjbvr/cargo-machete from 0.7.1 to 0.8.0
...
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete ) from 0.7.1 to 0.8.0.
- [Release notes](https://github.com/bnjbvr/cargo-machete/releases )
- [Changelog](https://github.com/bnjbvr/cargo-machete/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bnjbvr/cargo-machete/compare/v0.7.1...v0.8.0 )
---
updated-dependencies:
- dependency-name: bnjbvr/cargo-machete
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-03-03 15:38:57 +01:00
Benjamin Bouvier
b5edc86a52
refactor(event cache): rename clear to clear_pending
2025-03-03 14:56:33 +01:00
Benjamin Bouvier
d09655989d
feat(event cache): don't include useless updates when clearing/resetting a linked chunk
2025-03-03 14:56:33 +01:00
Benjamin Bouvier
83415ac6ca
refactor(event cache): clear all pending updates when resetting/shrinking a linked chunk
2025-03-03 14:56:33 +01:00
Kévin Commaille
cc7fb63c6d
refactor(sdk): Remove clone_request method
...
http::Request implements Clone since http 1.0.0
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-03-03 14:32:34 +01:00
Benjamin Bouvier
f5195222a7
refactor(ffi): move the TimelineEventTypeFilter to timeline/configuration
...
Pure code motion, nothing else.
2025-03-03 12:40:54 +01:00
Benjamin Bouvier
cecf15a34a
refactor(ffi): unify a bit more Room::timeline_with_configuration and RoomListItem::init_timeline
...
The two last missing pieces will be the UTD hook and loading events from
the persistent storage.
2025-03-03 12:40:54 +01:00
Damir Jelić
95b53d7e01
chore: Tweak the weekly-report command to include PR numbers
2025-02-28 15:51:38 +01:00
Andy Balaam
8cd70854ba
refactor(crypto): Keep a long-lived DecryptionRetryTask in TimelineController
2025-02-28 12:35:04 +00:00
Andy Balaam
dbaa36ec3e
refactor(timeline): Share should_retry logic between the two places we use it
2025-02-28 12:35:04 +00:00
Andy Balaam
8976233905
refactor(timeline): Move the code to find which events to redecrypt into the async task
2025-02-28 12:35:04 +00:00
Andy Balaam
82d47d800c
refactor(timeline): Pass requests to retry decryption through a channel, instead of spawning a task directly
2025-02-28 12:35:04 +00:00
Andy Balaam
e84ad97edf
refactor(timeline): Adjust tests that retry decryption to wait with timeouts
2025-02-28 12:35:04 +00:00
Andy Balaam
d447342cbd
refactor(timeline): Split finding retry indices into its own function
2025-02-28 12:35:04 +00:00
Andy Balaam
c74ecff3f0
refactor(timeline): Move finding retry indices into DecryptionRetryTask
2025-02-28 12:35:04 +00:00
Andy Balaam
a0282ec71b
refactor(timeline): Move the decryption retrying into a separate struct
2025-02-28 12:35:04 +00:00
Ivan Enderlin
a67f9d5bbf
chore(sdk): Log all updates.
2025-02-28 13:07:45 +01:00
Benjamin Bouvier
f7297edd61
refactor(event cache): get rid of get_or_wait_for_token
...
Also the tests, they were not quite useful to port to the new mechanism
because they made little sense.
2025-02-28 13:00:35 +01:00
Benjamin Bouvier
87a6037924
refactor(event cache): consolidate logic around returning the previous gap token
2025-02-28 13:00:35 +01:00
Benjamin Bouvier
ee710e34dd
test(event cache): turn test into failing regression test
2025-02-28 13:00:35 +01:00
Benjamin Bouvier
55143e1790
refactor(event cache): call /messages directly in the room pagination
...
And don'y rely on the `Paginator`. This simplifies the code a bit,
avoids a few methods on the `Paginator`, and makes it more
straightforward the pagination happens.
2025-02-28 12:24:59 +01:00
Damir Jelić
7a0bf9b9b9
chore(sdk): Don't repeat a log line about the list of users for a /keys/query
...
The crypto crate already logs this, so no need to repeat the whole list
of users in the main crate.
2025-02-27 16:33:13 +01:00
Damir Jelić
b422b93c78
chore(crypto): Lower a very noisy log line
...
This partially reverts: 66fcaeb2ba
2025-02-27 16:33:13 +01:00
Benjamin Bouvier
4742aa298a
fix(event cache): wait for the initial previous-batch token, if there wasn't any
2025-02-27 10:28:02 +01:00
Benjamin Bouvier
f9f389d9ec
chore(event cache): remove unused errors
2025-02-26 17:20:45 +01:00
Hanadi
7dba05f4c5
feat(sdk): Add Room::report_room
...
solves this https://github.com/matrix-org/matrix-rust-sdk/issues/4681
- add room report_room api from
https://spec.matrix.org/latest/client-server-api/#post_matrixclientv3roomsroomidreport
- expose report_room on room ffi
---------
Signed-off-by: hanadi92 <hanadi.tamimi@gmail.com >
2025-02-26 16:55:57 +01:00
Kévin Commaille
f02a7d15ab
test(sdk): Run integration tests for experimental-oidc feature too
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 16:08:00 +01:00
Kévin Commaille
54ab46dcb4
test(oidc): Use MatrixMockServer for cross-signing test
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 14:31:46 +01:00
Kévin Commaille
9b406cff87
test(oidc): Use mock server and client as much as possible
...
We keep the mock backend for endpoints that require an ID token for now,
as it would involve generating them on the fly.
And since support for ID tokens is going to be removed, it is not worth
it to implement that.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 14:31:46 +01:00
Kévin Commaille
5791ac9b76
test(oidc): Add an OauthMockServer and use it for qrcode login tests
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 14:31:46 +01:00
Kévin Commaille
6026b0c4b7
test(oidc): Use MatrixMockServer for qrcode login tests
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 14:31:46 +01:00
Kévin Commaille
52909b0eeb
test(oidc): Simplify qrcode login tests
...
Since it only uses OAuth 2.0 now, we can remove the ID token and JWKS.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-02-26 14:31:46 +01:00
Benjamin Bouvier
1feb77bbef
doc(event cache): tweak paginate_backwards_with_network doc comment
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
2e1b051a4d
refactor(event cache): split handling a successful network pagination into its own function
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
15fd892b63
chore(event cache): remove the sync_ prefix from timeline_events_diff
...
And simplify pluralization, use more natural terms (new instead of
next), etc.
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
4833403d65
refactor(event cache): simplify signature of RoomEventCacheState::with_events_mut
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
061a2f739a
refactor(event cache): handle pagination status in a single location
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
86b5cb4dba
refactor(event cache): split disk and network paginations into smaller functions
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
74bc3dfb6e
refactor(event cache): don't hold onto a live instance of the paginator in RoomEventCache
...
Instead of keeping state for the `Paginator` instance, we create one
when needs be, in the `run_backwards_impl` method, and initialize it
with a previous-batch token. This is simpler than keeping one alive, and
making sure that we reset it in the right places.
2025-02-26 14:09:08 +01:00
Benjamin Bouvier
7841ed8637
refactor(event cache): remove RoomPagination::hit_timeline_end()
...
The event cache doesn't use the paginator for forwards pagination, so it
doesn't make sense to expose this method. Moreover, the event cache
always listens to sync in real-time, so technically it's always hit the
timeline end.
As a proof of this, this method wasn't even tested.
2025-02-26 14:09:08 +01:00