Benjamin Kampmann
950bb83f8d
style: use trace! instead of tracing::trace!
2023-01-24 10:30:07 +00:00
Benjamin Kampmann
a06aa43dd1
feat(sliding-sync): cache room data next to view for selective unfreezing
2023-01-24 10:30:07 +00:00
Benjamin Kampmann
a572f61edf
tests: additional ignored tests for future scenarios
2023-01-24 10:30:07 +00:00
Benjamin Kampmann
a964585e35
fix(sliding-sync): have views go live right at response processing
2023-01-24 10:30:07 +00:00
Benjamin Kampmann
71407a636c
fix(sliding-sync): use single replace on cold and empty views
...
Before we'd push one empty entry at a time, which lead to a lot of vecdiff updates pushed. With this
we now only push one event after the entire operation set has been applied on the fresh
or cold view.
2023-01-24 10:30:07 +00:00
Benjamin Kampmann
b7a8a93a73
chore(sliding-sync): additional tracing around unfreezing from cold cache
2023-01-24 10:30:07 +00:00
Damir Jelić
600fd62dc5
crypto(fix): Fail to decrypt if there's a key mismatch
...
A mismatch between the recorded Ed25519 and Curve25519 keys of the room
key and the identity keys of a Device used to be just a warning.
Considering that many clients will aggressively try to hide E2EE related
warnings let's upgrade this clear error into a full blown decryption
failure.
Co-authored-by: Denis Kasak <dkasak@termina.org.uk >
2023-01-24 09:14:42 +01:00
Damir Jelić
00d1437e5a
chore(crypto): Log the full error messages when decrypting room events
2023-01-23 15:03:03 +01:00
Damir Jelić
f774159e15
chore(crypto): Record the event id when decrypting a room event
2023-01-23 15:03:03 +01:00
Damir Jelić
a1fba86f75
chore(crypto): Log the session id when we receive a room key
2023-01-23 15:03:03 +01:00
Damir Jelić
3c4d1cfb47
fix(sled): Don't load the tracked users with the Account
...
We might have a lot of tracked users, clients will usually have 1-10
thousand tracked users. This might slow down client startup if there are
so many tracked users.
We don't need the tracked users until we sync or try to send a message,
so load them lazily when they are first needed.
2023-01-23 13:35:51 +01:00
Damir Jelić
3ab95c74c7
refactor!(crypto): Make the methods related to tracked users async
2023-01-23 13:35:51 +01:00
Damir Jelić
8c1a81eebc
chore: Fix the conventional commit type for documentation
...
The conventional commit specification recommends the "docs" type for
documentation related changes. This also matches the initial usage of
this type in our commit history.
While the default git-cliff config does specify a regex "^doc", where I
suspect our types have been taken from, this regex actually allows "doc"
as well as "docs" for the type.
Nevertheless, let's specify that we're using the one recommended in the
spec.
2023-01-20 20:30:06 +01:00
Richard van der Hoff
acfa8a4190
docs(bindings): Fix return type documentation for get_missing_sessions
2023-01-20 20:09:42 +01:00
Richard van der Hoff
c7f258d8b0
doc: Improve the documentation of "tracked users"
...
I had no idea what a tracked user was, so I've attempted to clarify this
somewhat for future readers.
Co-authored-by: Damir Jelić <poljar@termina.org.uk >
2023-01-20 14:02:02 +01:00
Jonas Platte
1e2fd02478
doc(base): Explain purpose of BaseClient#crypto_store
2023-01-20 10:56:09 +01:00
Stefan Ceriu
b0c70dc606
chore(bindings): Exclude the target folder from the debug swift package
...
… to improve package loading time.
2023-01-20 09:00:36 +00:00
Benjamin Kampmann
0fea33de4d
feat(ffi): expose server_versions on ClientBuilder
2023-01-19 21:31:57 +00:00
Damir Jelić
053b609899
chore(sdk): Add a prefix to the request id to make it easier to grep for them
2023-01-19 15:47:08 +01:00
Damir Jelić
a54a421f91
chore(sdk): Log the response/request sizes as well
2023-01-19 15:46:49 +01:00
Ivan Enderlin
9db09e22b2
feat(crypto-js): Request types have fields extracted from their “body” directly
...
feat(crypto-js): Request types have fields extracted from their “body” directly
2023-01-18 13:41:14 +01:00
Ivan Enderlin
94fadf74b9
feat(crypto-js): Rename RoomMessageRequest.content to .body.
2023-01-18 13:31:26 +01:00
Ivan Enderlin
7c01f8490f
test(crypto-js): Test `RoomMessageRequest.content.
2023-01-18 13:14:06 +01:00
Ivan Enderlin
ca00112804
test(crypto-js): Add test for in-room verification (w/ RoomMessageRequest).
2023-01-18 11:42:34 +01:00
Benjamin Kampmann
6c0ef2db51
refactor(ffi): refactor stoppable spawn to be more token-oriented
2023-01-18 10:08:58 +00:00
Benjamin Kampmann
938a03867b
feat(ffi): add subscribe_and_add_timeline_listener helper fn
...
re-applying the fixes from ##1346
2023-01-18 10:08:58 +00:00
Ivan Enderlin
90cce1a47c
chore(crypto-js): Improve documentation, and do a little clean up.
2023-01-18 10:58:59 +01:00
Ivan Enderlin
c427caf473
feat(crypto-js): Rename requests extra field to body.
2023-01-18 10:58:59 +01:00
Ivan Enderlin
3ad675db5c
feat(crypto-js): Extract RoomMessageRequest.event_type from EventContent.
2023-01-18 10:58:59 +01:00
Ivan Enderlin
efde81646b
feat(crypto-js): Extract RoomMessageRequest.content as a JSON-encoded string.
2023-01-18 10:58:59 +01:00
Ivan Enderlin
8f9859c41c
feat(crypto-js): Rename the body fields to extra to avoid confusion with HTTP terminology.
2023-01-18 10:58:58 +01:00
Ivan Enderlin
6248e2bc68
test(crypto-js): Update tests according to previous commit.
2023-01-18 10:58:58 +01:00
Ivan Enderlin
c0ccd55df8
feat(crypto-js): request! differentiates “extracted” and “grouped” fields.
2023-01-18 10:58:58 +01:00
Ivan Enderlin
b125b2e9da
test(crypto-js): Update tests according to previous commit.
2023-01-18 10:58:58 +01:00
Ivan Enderlin
3c838b2f4a
feat(crypto-js): Request types have fields from their “body” directly.
2023-01-18 10:58:58 +01:00
Jonas Platte
f4fba3efb7
fix(bindings): Add user_id to RoomMembership
...
Without that, it is useless.
2023-01-18 09:58:36 +01:00
Jonas Platte
e64b2f65da
Revert "refactor(bindings): Fetch latest event earlier"
...
This reverts commit 7d1372195c .
2023-01-18 09:31:45 +01:00
Doug
9e12a88e03
feat(bindings): Allow setting the store passphrase in the bindings
...
Co-authored-by: Damir Jelić <poljar@termina.org.uk >
2023-01-18 06:45:21 +00:00
Anderas
0af38d9a76
fix(crypto): Mark our own identity as verified if we have the private part of the identity
...
Co-authored-by: Denis Kasak <dkasak@termina.org.uk >
Co-authored-by: Damir Jelić <poljar@termina.org.uk >
2023-01-17 18:41:00 +00:00
Damir Jelić
ade3a09848
chore(base): Remove a leftover unwrap
2023-01-17 19:13:29 +01:00
Damir Jelić
3641e0d540
docs(crypto): Note that the in-room verification events need to be decrypted
2023-01-17 18:11:53 +01:00
Damir Jelić
e1d8c72d3a
chore(crypto): Improve some docs
...
Co-authored-by: Jonas Platte <jplatte@matrix.org >
2023-01-17 18:11:53 +01:00
Damir Jelić
c8d9581f8b
refactor!(crypto): Don't process in-room verification implicitly
2023-01-17 18:11:53 +01:00
Kévin Commaille
8cc632ffd1
feat(sdk): Add support for state events in the timeline
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-01-17 12:10:19 +01:00
Kévin Commaille
1b7f4b4b42
fix(test): Fix position of prev_content in JSON
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2023-01-17 12:10:19 +01:00
Damir Jelić
928871d16e
chore(sdk): Log the request body for sliding sync requests
2023-01-16 17:02:46 +01:00
Damir Jelić
87f5b251f5
chore(sdk): Add a request id counter to our HTTP client
...
This solves the issue of correlating different log lines that are talking
about the same request/response cycle. Plaintext logs would show this as
a flat structure, while something like Jaeger would show you a nice
tree. This allows you to reconstruct the tree in plaintext logs.
2023-01-16 17:02:46 +01:00
Damir Jelić
e76272a68b
chore(sdk): Improve the HTTP request sending logs
2023-01-16 17:02:46 +01:00
Damir Jelić
b30c74cb01
chore(crypto): Bump the to-device event logging to debug
2023-01-16 16:23:58 +01:00
Jonas Platte
686541155f
feat(sdk): Add display_name_ambiguous to timeline::Profile
2023-01-16 15:35:29 +01:00