Commit Graph

13223 Commits

Author SHA1 Message Date
Benjamin Bouvier
ebc7396334 refactor(sdk): remove unused TimelineEvent ctor
It was intended for test purposes, but it seems it's unused, so let's
get rid of it.
2025-06-02 16:24:25 +02:00
Benjamin Bouvier
c7234b6f13 doc: make the self type clearer in doc comment of TimelineEvent 2025-06-02 16:24:25 +02:00
Richard van der Hoff
56be9dec59 multiverse: expand user names when inviting (#5146)
When the user does an `/invite`, if the target user doesn't start with
an `@`, try expanding it as a user on the local server.

This makes it much easier when repeatedly testing inviting!
2025-06-02 14:41:20 +01:00
Richard van der Hoff
2fa6a98052 multiverse: write logs to session dir (#5145)
Rather than always writing the logs to `/tmp`, write them to the session
directory. The session directory defaults to `/tmp` so by default this
will do the same as before, but if you override the session path on the
commandline, the logs will get stored alongside the stores and caches.

This is particularly useful when running two instances of multiverse,
and you want them to put their logs in different places.
2025-06-02 14:41:11 +01:00
Yousef Moazzam
f03407fdb9 test: remove unnecessary server timestamp fields on events 2025-06-02 14:59:23 +02:00
Yousef Moazzam
fd4fd3c4f9 test: add timeline events in bulk to room builder 2025-06-02 14:59:23 +02:00
Yousef Moazzam
a9513e6f73 test: remove import of unused sync_timeline_event! macro in timeline subscribe test module 2025-06-02 14:59:23 +02:00
Yousef Moazzam
5f0bcef5ce test: create events with EventFactory in profile updates test 2025-06-02 14:59:23 +02:00
Yousef Moazzam
96049f41a5 test: create events with EventFactory in event filter test 2025-06-02 14:59:23 +02:00
Daniel Salinas
ba8998623e Fix annotations on comments for new StreamExt
Hook up use of new extension in matrix-sdk-ffi crate
2025-06-02 12:26:52 +02:00
Daniel Salinas
d6bf3019f9 StreamExt that supports wasm platforms
The .boxed() method requires a Send trait that makes it
unusable on Wasm platforms. This re-exports the existing StreamExt,
while providing a new extension for the wasm family of targets.
2025-06-02 12:26:52 +02:00
Damir Jelić
ef037631a1 refactor(crypto): Simplify the checking of device keys when decrypting Olm events 2025-05-30 15:45:27 +02:00
Damir Jelić
42ade32bea feat(sdk): Fallback to the device keys in the Olm event for room key bundles
This makes it possible to correctly accept a historic room key bundle if
we previously didn't know about the device of the sender of the bundle.
2025-05-30 15:45:27 +02:00
Damir Jelić
37d7e26929 feat(sdk): Ensure that we have all the devices of a user we invite
This makes it possible to correctly share a historic room key bundle with the
invited user without sharing another room with the user.
2025-05-30 15:45:27 +02:00
Robin
e51dceb399 refactor(widget): Improve wording of ApiVersion docs 2025-05-30 15:32:35 +02:00
Robin
cee0129225 feat(widget): Distinguish room state and timeline events
This is an implementation of an update to MSC2762 (https://github.com/matrix-org/matrix-spec-proposals/pull/4237). It changes the widget driver to split state updates out into an `update_state` action and use the `send_event` action exclusively for forwarding timeline events. Accordingly, `read_events` now always reads from /messages, never the state store.
2025-05-30 15:32:35 +02:00
Robin
ef36665d7d doc(widget): Note that capability renegotiation is unimplemented 2025-05-30 15:32:35 +02:00
Robin
e45e357841 refactor(widget): Extract method for processing requested capabilities 2025-05-30 15:32:35 +02:00
Robin
6657501ef4 refactor(widget): Extract method for acquire capabilities response 2025-05-30 15:32:35 +02:00
Robin
69e8f1e86c refactor(widget): Extract method for message-like event reading response 2025-05-30 15:32:35 +02:00
Robin
e613fc269f refactor(widget): Remove 'Matrix' from some identifiers
Just making these a bit less verbose and more consistent with surrounding identifiers.
2025-05-30 15:32:35 +02:00
Robin
5c7566c6c9 refactor(widget): Allow state events to be converted to filter inputs
So that when I need to do this (in later commits) I don't have to cast.
2025-05-30 15:32:35 +02:00
Robin
aba0adf18d refactor(tests): Move some JSON into static items
I want to use this JSON in multiple tests.
2025-05-30 15:32:35 +02:00
Robin
2c8e71e560 refactor(tests): Allow converting EventBuilder to state 2025-05-30 15:32:35 +02:00
Robin
6f683d3cde refactor(tests): Accept more types for sync builder state events
Refactoring the test event implementation to use the From trait rather than ad-hoc methods along the way.
2025-05-30 15:32:35 +02:00
Jonas Platte
9242d1869a refactor: Use native async fn in traits for BackingStore matrix-sdk-ffi/20250603 2025-05-30 10:48:06 +02:00
Daniel Salinas
59d632fd45 feat(wasm): Improve wasm join handle to implement more tokio methods (#5088)
This change adds support for the abort/abort_handle/is_finished methods
onto the JoinHandle shim for Wasm targets.

Signed-off-by: Daniel Salinas
2025-05-29 14:22:38 +00:00
Richard van der Hoff
c55652d327 crypto: changelog fixes (#5136)
Put one change in the right place in the changelog, and add missing PR
links.
2025-05-29 14:22:00 +01:00
Jonas Platte
0220689964 refactor: Wrap EncryptionInfo in Arc
It's >100 bytes large and often optional, so it makes sense to put it
on the heap to reduce the size of structs with such optional fields,
and the stack size of functions with such optional parameters.
It's also cloned in a couple places in the UI crate, so it probably
makes sense to just always refcount it.

This started as a clippy suggestion to box PendingEdit inside
AggregationKind::Edit.
2025-05-29 14:08:10 +02:00
Jonas Platte
d8969db30a refactor: Increase readability of WidgetMachine::process
Based on a clippy suggestion.
2025-05-29 13:19:59 +02:00
Jonas Platte
8eec683793 refactor: Use inline format arguments more
Automated with cargo clippy --fix --workspace --all-targets.
2025-05-29 13:19:59 +02:00
Jonas Platte
4705389ab7 refactor: Use native async fn in traits for testing traits 2025-05-29 11:45:16 +02:00
Damir Jelić
db931c5d5c chore: Bump our decancer version
This removes the paste dependency decancer had. We still need to have a
denyc exception for paste because of rmp-serde and ratatui.
2025-05-29 11:40:37 +02:00
Jonas Platte
9a0b56ad1a refactor(ci): Don't rerun most CI jobs when un-drafting a PR
This only makes sense to do for workflows that branch off of
github.event.pull_request.draft, which only bindings_ci.yml does at this
point in time.
2025-05-29 11:05:03 +02:00
Jonas Platte
3c20ee41d6 chore: Fix clippy lints 2025-05-29 10:59:56 +02:00
Jorge Martín
ed245a0cf0 refactor(ffi): When mapping ffi::StateEventContent, log any unsupported event types
The same was done for unsupported message-like event contents.
2025-05-29 09:54:39 +02:00
Jorge Martín
4626c4caaf refactor(ffi): When mapping ffi::MessageLikeEventContent, log any unsupported event types
At the moment, the logs just say 'Unsupported Event Type', which is not that helpful.
2025-05-29 09:54:39 +02:00
Ivan Enderlin
7cda6d2ea6 chore(sdk): Add more logs for Room::leave.
This patch adds a bit more logs in `Room::leave` to understand what's
happening for some users.
2025-05-28 14:03:05 +02:00
Jorge Martín
2ec15984a8 test: Improve NotificationClient tests using the modern test utils 2025-05-28 12:32:58 +02:00
Yousef Moazzam
01f035d574 Test: Replace sync_timeline_event! with EventFactory for events in event item tests (#5093)
Part of #3716

I did notice that the `sender` and `member` methods have some overlap in
what values get set for the "sender" and "state key", and I tried to
make sure that in my changes to use `EventFactory` the original event
configuration is being replicated, so please do double-check me on that
note in particular.

Signed-off-by: Yousef Moazzam <yousefmoazzam@hotmail.co.uk>
2025-05-28 10:48:25 +02:00
Damir Jelić
53b01fb8a5 test: Enable the historic room key bundle storage test, except on WASM
The test was ignored since the functionality was only implemented for
the memory and SQLite store. This caused a bug in the SQLite
implementation to go unnoticed.

Let's just disable it for WASM since this is the only place where we
didn't yet implement the necessary methods.
2025-05-27 18:15:36 +02:00
Jorge Martín
79c47b4470 fix(sdk): Handle 520 HTTP status code as a permanent error
The status code is usually returned by Cloudflare to indicate an unknown server error, so we should cancel the upload and let the user retry if they want to.
2025-05-27 17:56:44 +02:00
Damir Jelić
089abec866 fix(sdk): Don't require the invite details to be present when accepting an room invite 2025-05-27 17:46:10 +02:00
Damir Jelić
064fd6cb0b fix(sqlite): Use the correct column name for the sender of bundled room keys 2025-05-27 17:46:10 +02:00
Damir Jelić
60d3b3d56b test: Finish up the shared history integration test 2025-05-27 17:46:10 +02:00
Damir Jelić
995838d9d3 refactor(tests): Move the shared history test into its own module 2025-05-27 17:46:10 +02:00
Damir Jelić
1d4d4bc741 refactor(tests): Create a submodule for the end-to-end encryption integration tests 2025-05-27 17:46:10 +02:00
Damir Jelić
41a5fd90f4 feat(tests): Add a macro to assert that a TimelineEventKind was encrypted 2025-05-27 17:46:10 +02:00
Damir Jelić
3d9d619f8b feat(sdk): Import the room keys we download from the shared history bundle 2025-05-27 17:46:10 +02:00
Damir Jelić
af38f0d1ee refactor(crypto): Move the room key bundle import method under the store 2025-05-27 17:46:10 +02:00