Jonas Platte
65a9931ce4
feat(sdk): Attach profile information to timeline items
2023-01-16 13:39:06 +01:00
Jonas Platte
5d632d37ff
refactor(sdk): Move locking of timeline_items into handle_remote_event
2023-01-16 13:39:06 +01:00
Jonas Platte
809e9bce6c
refactor(sdk): Add trait ProfileProvider for use in TimelineInner
2023-01-16 13:39:06 +01:00
Jonas Platte
fa1b3c36a5
refactor(sdk): Make TimelineInner fields private
2023-01-16 13:38:18 +01:00
Jonas Platte
a89fa84bb6
test(sdk): Simplify TestTimeline construction
2023-01-16 13:38:18 +01:00
Jonas Platte
8e3c9fd6e1
refactor(sdk): Use regular struct update syntax for EventTimelineItem
...
The previous solution was annoying to maintain and only more efficient
without compiler optimizations.
2023-01-16 13:38:17 +01:00
Jonas Platte
e0b0b632ec
chore: Fix a typo
2023-01-16 11:31:03 +01:00
Jonas Platte
4febe45364
refactor(base): Make AmbiguityChange(s) non-exhaustive
...
They are meant to be consumed, but not created, by other crates.
2023-01-16 11:31:03 +01:00
Jonas Platte
70de11a73a
refactor: Remove unused Deserialize, Serialize implementations
2023-01-16 11:31:03 +01:00
Jonas Platte
58f2d53293
doc(sdk): Update spec link
2023-01-16 11:31:03 +01:00
Doug
6540b9bb49
feat(bindings): Expose read receipts to FFI
2023-01-16 10:58:40 +01:00
Jonas Platte
6c53842599
chore: Bump ruma, vodozemac
2023-01-16 10:34:06 +01:00
Jonas Platte
663d043abb
refactor: Always use Debug for logging enum or identifier values
2023-01-16 10:34:06 +01:00
Damir Jelić
386cbce344
Revert "feat(ffi): add subscribe_and_add_timeline_listener helper fn"
...
This reverts commit ba4e304cad .
2023-01-13 14:55:39 +01:00
Damir Jelić
ece9252a3d
chore(crypto): Add the sender and event type to the to-device handling span
2023-01-13 12:46:07 +01:00
Damir Jelić
c13cb4957e
chore(crypto): Don't use a JsOption needlessly.
2023-01-13 12:46:07 +01:00
Damir Jelić
1f34a016e5
chore(crypto): Add the to-device message id to the logs if there is one
2023-01-13 11:58:42 +01:00
Damir Jelić
b8dd704658
refactor(crypto): Move the to-device event handling into a separate method
2023-01-13 11:58:42 +01:00
Benjamin Kampmann
273e96265f
Merge pull request #1335 from gnunicorn/ben-sliding-sync-integration-test
...
Various smaller fixes on sliding-sync for elem-x:
- Infrastructure and smoke test only for integration testing sliding-sync
- Expose Pop and Clear on VecDiff
- Expose adding views during sliding sync live runtime incl integration tests
- bug fix on replacing only in-window-items in the insert-code (was leading to a wrong list setting), including integration test
2023-01-13 10:11:30 +00:00
Jonas Platte
0e3ea58aa4
Revert unrelated change
2023-01-13 10:51:52 +01:00
Benjamin Kampmann
ba4e304cad
feat(ffi): add subscribe_and_add_timeline_listener helper fn
2023-01-13 08:09:10 +00:00
Benjamin Kampmann
723e3a3135
tests(sliding-sync): minor style improvements
2023-01-12 19:53:57 +01:00
Kévin Commaille
1c754e663d
fix(sdk): Make pagination strategy implement Send
...
Required when `PaginationOptions` must implement `Send`,
e.g. with `tokio::runtime::Runtime::spawn`.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-01-12 19:24:47 +01:00
Damir Jelić
846844e67b
fixup! chore(sdk): Re-export the AmbiguityChange type
2023-01-12 19:12:01 +01:00
Damir Jelić
51d96213ba
chore(sdk): Re-export the AmbiguityChange type
...
This was forgotten to be re-exposed after it was moved to the base
crate.
2023-01-12 19:12:01 +01:00
Damir Jelić
80868919ae
fix(crypto): Make the device update logic a bit more strict and obvious
...
When updating a device after we receive new device keys from a
/keys/query call we implicitly check that the user and device id match
since we need to fetch the device using the mentioned ids.
This moves the check into the update method as well to make it more
explicit. We also prevent upgrades of the Ed25519 key since we don't
support any different key type anyways.
2023-01-12 17:55:06 +01:00
Damir Jelić
e3e9898f88
fixup! test(crypto): Check that we sign and verify fallback keys properly
2023-01-12 17:53:22 +01:00
Damir Jelić
f2055f8069
test(crypto): Check that we sign and verify fallback keys properly
2023-01-12 17:53:22 +01:00
Damir Jelić
151f87a417
chore(crypto): Improve some docs
...
Co-authored-by: Denis Kasak <dkasak@termina.org.uk >
2023-01-12 17:37:06 +01:00
Damir Jelić
0e4f4d69b8
feat(crypto): Handle the failures field in the /keys/claim response
2023-01-12 17:37:06 +01:00
Damir Jelić
8db84a3c9e
feat(crypto): Handle the failures field in the /keys/query response
2023-01-12 17:37:06 +01:00
Damir Jelić
1b18402707
feat(crypto): Add a TTL-cache that will handle failures for some requests
2023-01-12 17:37:06 +01:00
Benjamin Kampmann
6ec8ff6363
ci(coverage): ignore new sliding-sync-integration-tests for now
2023-01-12 13:51:59 +01:00
Benjamin Kampmann
906c09987f
style(sliding-sync): minor style refinements
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
c93a9ef9a3
fix(sliding-sync): Simply room_range checking
...
Co-authored-by: Jonas Platte <jplatte+git@posteo.de >
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
51f2e773a0
fix(ffi): add Pop and Clear to VecDiff for sliding-sync
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
3c6c5f4fae
ci: disable broken sliding-sync-integration-test-runs
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
a8d49b86df
feat(sliding-sync): adding views on live sliding-sync
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
2949dcc773
docs: Add a Readme to explain usage
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
b790bf9397
test(sliding-sync): add integration test covering #1333
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
91941a5360
fix(sliding-sync): ensure we are only replacing items in the requested range
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
fabf0d40bc
test: add test for moving window and rooms
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
08bec243ff
ci(sliding-sync): add sliding sync integration test
2023-01-12 13:24:16 +01:00
Benjamin Kampmann
60d82fde38
test: add sliding-sync integration-testing facilities
2023-01-12 13:24:16 +01:00
Jonas Platte
866158f6ff
chore(sdk): Add logging for when timeline events are not handled
2023-01-11 17:14:09 +01:00
Kévin Commaille
f883293168
chore: Update Ruma
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-01-11 16:05:02 +01:00
Damir Jelić
c6e883da68
fix(sdk): Pass in to-device events to the OlmMachine unconditionally
...
The sliding sync proxy seems to have started to omit the e2ee extension
completely if no changes happened to the one-time key counts.
Our sync response processing assumed that, if there are some to-device
events that need to be passed to the OlmMachine, then we'll have some
data in the e2ee extension of the response as well. In other words, it
wouldn't pass in the to-device events to the OlmMachine if the e2ee
field of the sync response is `None`.
Since the assumption isn't true, we're going to pass in default values
for the one-time key counts when the e2ee extension field of the
response is `None`.
2023-01-11 14:18:40 +01:00
Damir Jelić
cdfb51a606
refactor!(sdk): Add the experimental prefix to the sliding-sync feature
2023-01-11 11:54:32 +01:00
Damir Jelić
3e88905518
chore(sdk): Make the timeline feature a dependency of the sliding sync one
2023-01-11 11:54:32 +01:00
Damir Jelić
156c351023
chore(crypto): Instrument the receive_sync_changes method
...
This is mainly done so we create a span with the name of the function,
since we can filter logs by the name of the span we're now able to
enable logs for this method only.
2023-01-11 11:17:58 +01:00