dragonfly1033
683f0f4027
feat(multiverse): Add room creation to multiverse
2025-08-08 12:33:48 +01:00
Damir Jelić
c783ed8a6f
Log a special error when try to upload duplicate one-time keys
2025-08-08 10:35:52 +02:00
Damir Jelić
139673810f
Remember the public Curve25519 key of the sender of the historic room key bundle
2025-08-08 09:19:19 +02:00
Kévin Commaille
669ebf2408
refactor(base): Don't take room ID in Notification::push_notification_from_event_if
...
It is already in the `PushConditionRoomCtx`, so we don't need an extra
argument for it.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-07 16:02:56 +02:00
dragonfly1033
992774b8b5
Add the matrix-sdk-search crate
...
A new crate with a basic API for a creating, populating and searching a
room message index.
Signed-off-by: Shrey Patel shreyp@element.io
2025-08-07 16:01:41 +02:00
Kévin Commaille
9d90a92b4c
doc(base): Use different Result type in doc example
...
`anyhow::Ok(())` doesn't work under WASM because it requires the error
types to be `Send + Sync`.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-07 15:11:30 +02:00
Michael Goldenberg
d79975e0e3
refactor(indexeddb): simplify IndexeddbEventCacheStoreTransaction::get_events_by_related_event
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
2e598c0532
refactor(indexeddb): remove unnecessary fn IndexedEventRelationKey::with_related_event_id
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
5a3ef30fdc
refactor(indexeddb): remove redundant room id arg on relevant serializer and transaction fns
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
05178ccaf9
refactor(indexeddb): make room id a key component rather than fixed arg to IndexedKey::encode
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
65b9bd20a8
refactor(indexeddb): express IndexedKeyRange::All as IndexedKeyRange::Bound to loosen constraints on various functions
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
35505f9130
refactor(indexeddb): remove room id argument from Indexed::to_indexed
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
a6d630216d
refactor(indexeddb): add room id to event_cache_store::types::Gap
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
159c9b4547
refactor(indexeddb): add room id to event_cache_store::types::GenericEvent
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
aead1a4489
refactor(indexeddb): add room id to event_cache_store::types::Chunk
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
7fee1c7fd7
refactor(indexeddb): add traits for constructing prefix key bounds
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
ab9bfb2d61
refactor(indexeddb): add reusable const and static values to construct key component bounds
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
de5f00fd33
refactor(indexeddb): use references in IndexedEventRelationKey::KeyComponents
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
33c16b2979
refactor(indexeddb): use references in IndexedEventIdKey::KeyComponents
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Michael Goldenberg
e9dcdb7176
refactor(indexeddb): add lifetime to IndexedKey::KeyComponents
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-08-07 12:53:32 +02:00
Benjamin Bouvier
0a3fe939c5
refactor(event cache): don't panic when loading a linked chunk's latest event fails
...
This can happen because of an OS-level error, so let's try to handle it
in a slightly cleaner way. At the moment, it will bubble up and only be
logged, but we might try to find a better way to handle this at the
top-level.
2025-08-07 12:17:15 +02:00
Benjamin Bouvier
37e07ea331
refactor(test): use the matrix mock server in test_notification_client_with_context
2025-08-07 11:59:36 +02:00
Benjamin Bouvier
e4e3ff63f5
refactor(notification client): extract the common filtering out of events in a common helper
2025-08-07 11:59:36 +02:00
Benjamin Bouvier
8409e52654
doc(base): tweak some doc comment around notifications
2025-08-07 11:59:36 +02:00
Benjamin Bouvier
e8096ee518
refactor(notification client): simplify get_notification_with_sliding_sync
2025-08-07 11:59:36 +02:00
Jonas Platte
6814e70aa4
refactor: Simplify some methods of FailuresCache
...
Follow-up to #5490 .
2025-08-07 10:00:53 +02:00
multisme
efa4539a91
refactor(client): have upload_encrypted_file own the Client instance ( #5470 )
...
Signed-off-by: multi multiestunhappydev@gmail.com
2025-08-07 09:51:23 +02:00
Jonas Platte
42d2b93489
refactor: Introduce TestResult and use it in a couple random places
2025-08-06 22:21:39 +00:00
Kévin Commaille
872713c4bc
Add setting to ignore the timeout sync setting on first sync ( #5481 )
...
The `timeout` setting on the `/sync` endpoint is the maximum allowed
time for the server to send its response, because this is a poll-based
API. It means that if there is no new data to show, the server will wait
until the end of `timeout` before returning a response.
It can be an undesirable behavior when starting a client and informing
the user that we are "catching up" while waiting for the first response.
By not setting a `timeout` on the first request to `/sync`, the
homeserver should reply immediately, whether the response is empty or
not.
---------
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
Signed-off-by: Ivan Enderlin <ivan@mnt.io >
Co-authored-by: Ivan Enderlin <ivan@mnt.io >
2025-08-06 16:48:44 +02:00
Kévin Commaille
feb22d4370
Move serde functions to module and use #[serde(with = "")]
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-06 16:44:51 +02:00
Kévin Commaille
6520c9b16e
Add changelog
...
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-06 16:44:51 +02:00
Kévin Commaille
cd6fe271ba
refactor(crypto): Make deprecated sender_key and device_id optional in RoomEncryptedEventContent and RoomKeyRequestContent
...
They were deprecated in Matrix 1.3 and are now optional.
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-06 16:44:51 +02:00
Jonas Platte
5f447bbb17
chore: Fix new clippy lints
2025-08-06 16:38:08 +02:00
Jonas Platte
94e7ddd1ab
chore: Upgrade matrix-sdk to edition 2024 and format
2025-08-06 16:38:08 +02:00
Jonas Platte
6ac4a8431d
chore: Prepare matrix-sdk-common for edition 2024
...
Cherry-picked some changes from cargo fix --edition.
2025-08-06 16:38:08 +02:00
Benjamin Bouvier
b585963abb
test(notification client): check msc4306 behavior in the notification client too
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
5719fde701
feat(client): add a global toggle for enabling thread subscriptions support
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
2914d7a727
feat(threads): provide has_thread_subscription_fn to push condition context
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
0cdec9d912
refactor(threads): flatten the ThreadStatus enum
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
d180d49c07
refactor(threads): do not store the unsubscribed state in the DB
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
bcee5badae
refactor(threads): adapt to Ruma API changes related to async evaluation of push rules
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
ebb7059d55
refactor(threads): adapt to Ruma API changes for thread subscriptions
2025-08-06 15:28:43 +02:00
Benjamin Bouvier
8d3b1d3c7e
chore: update Ruma
2025-08-06 15:28:43 +02:00
Kévin Commaille
056e90db25
feat(sdk): Use state_after in sync v2 ( #5488 )
...
It is supposed to be an improvement over `state`, since it allows the
server to send updates to the state that might not be reflected in the
timeline.
This is also the same behavior as in Simplified Sliding Sync.
This is MSC4222 that was accepted and is about to get merged in the
spec.
---------
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr >
2025-08-06 13:42:49 +01:00
Kévin Commaille
787861eb35
fix: Upgrade Ruma
...
This brings 2 important bug fixes:
- Make deprecated fields of `m.room.encrypted` optional: it seems that there are events without these fields in the wild.
- Fix deserialization of `RedactedRoomJoinRulesEventContent`. This was found by a bug report in Fractal that caused the same error as #3557 when restoring the client. So maybe we could consider that this bug is fixed? It is still possible that there is another deserialization error.
There is also a breaking change in the format of the `state` field in response to `GET /v3/sync`.
2025-08-05 16:04:34 +02:00
dependabot[bot]
f081416baa
chore(deps): bump crate-ci/typos from 1.34.0 to 1.35.0
...
Bumps [crate-ci/typos](https://github.com/crate-ci/typos ) from 1.34.0 to 1.35.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.34.0...v1.35.0 )
---
updated-dependencies:
- dependency-name: crate-ci/typos
dependency-version: 1.35.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-05 10:02:48 +02:00
Jorge Martín
8a6cc7bc22
refactor(sdk): Only log the power levels computing error for joined rooms
2025-08-05 09:54:26 +02:00
Jorge Martín
61258e823f
test: Fix and add tests for computing the push conditions requiring the room creation event
2025-08-05 09:54:26 +02:00
Jorge Martín
e86aab68b4
fix(sdk): Make sure we log the error when we can't compute the power levels of a room
2025-08-05 09:54:26 +02:00
Jorge Martín
48f1bc0780
fix(notification_client): Add m.room.create to the required sliding sync state
...
With this missing, power levels couldn't be computed, and some push rules didn't take effect.
2025-08-05 09:54:26 +02:00