Commit Graph

12295 Commits

Author SHA1 Message Date
Damir Jelić
b41efb063e chore: Release matrix-sdk version 0.12.0 matrix-sdk-ffi-0.12.0 matrix-sdk-ui-0.12.0 matrix-sdk-0.12.0 matrix-sdk-sqlite-0.12.0 matrix-sdk-indexeddb-0.12.0 matrix-sdk-base-0.12.0 matrix-sdk-store-encryption-0.12.0 matrix-sdk-crypto-0.12.0 matrix-sdk-test-0.12.0 matrix-sdk-test-macros-0.12.0 matrix-sdk-qrcode-0.12.0 matrix-sdk-common-0.12.0 2025-06-10 13:33:01 +02:00
Damir Jelić
23db199262 Merge branch 'release-0.11' 2025-06-10 12:51:59 +02:00
Damir Jelić
76d1f8bd18 chore: Fix a PR link in the changelog file matrix-sdk-crypto-ffi-0.11.1 matrix-sdk-crypto-0.11.1 2025-06-10 12:37:32 +02:00
Damir Jelić
550f4c5fde Update crates/matrix-sdk-crypto/CHANGELOG.md
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Signed-off-by: Damir Jelić <poljar@termina.org.uk>
2025-06-10 12:37:32 +02:00
Damir Jelić
b3f07f4587 chore: Release matrix-sdk version 0.11.1 2025-06-10 12:37:32 +02:00
Damir Jelić
56980745b4 chore: Add a changelog entry for GHSA-x958-rvg6-956w 2025-06-10 12:37:32 +02:00
Richard van der Hoff
13c1d20482 fix(crypto): Check the sender of an event matches owner of session
Having decrypted an event with a given megolm session, we need to check that
the owner of that session actually matches the sender of an event, otherwise
there is a danger of the sender being spoofed to make it look like it was sent
by another user.

Security-Impact: High
CVE: CVE-2025-48937
GitHub-Advisory: GHSA-x958-rvg6-956w
2025-06-10 12:07:10 +02:00
Richard van der Hoff
7f3e144cb3 refactor (crypto): clarify some comments 2025-06-10 12:07:10 +02:00
Richard van der Hoff
fe8bd2fdf3 refactor(crypto): Break get_or_update_verification_state in two
Split this into `get_room_event_verification_state` and
`get_or_update_sender_data`, which I think is a bit clearer.
2025-06-10 12:07:10 +02:00
Benjamin Bouvier
7cdfb0d1c0 chore(sqlite): revert the busy_timeout pragmas
Internal Sentry reports tell us that enabling the busy_timeout seems to
have *increased* the number of "database is busy" errors, instead of
lowering those. As a result, we're going to disable the pragmas in all
the places where we enabled it before, and observe how the number of
"database is busy" errors evolves.
2025-06-10 11:13:28 +02:00
Benjamin Bouvier
d8652d27f8 feat(sdk): forbid ignoring the current user 2025-06-10 10:50:34 +02:00
Damir Jelić
aa67148247 refactor(xtask): Use a helper to append options for the release tasks 2025-06-10 09:47:42 +02:00
Damir Jelić
769fcdb1fb feat: Support releasing a specific package 2025-06-10 09:47:42 +02:00
Damir Jelić
0f4afb32f7 refactor(xtask): Use a helper to append options for the release tasks 2025-06-10 09:34:56 +02:00
Damir Jelić
398787253d feat: Support releasing a specific package 2025-06-10 09:34:56 +02:00
Benjamin Bouvier
7a6e29c347 feat(ui): don't mark each thread reply as an actual reply to the previous message, in threaded timelines
This correctly handles the reply fallback behavior:

- the behavior isn't changed for a live timeline,
- when a timeline is thread-focused, we will extract the `replied_to`
field if and only if the thread relation is *not* marked as behaving in
a fallback manner.

This makes it possible to distinguish actual in-thread replies.
2025-06-10 09:03:30 +02:00
Damir Jelić
6e628781c0 release: Add a changelog entry for the tracing-attributes issue 2025-06-09 20:29:09 +02:00
VerdeQuar
a75a2b4113 fix(crypto): Remove wildcard enum variant import
Signed-off-by: VerdeQuar <verdequar@gmail.com>
2025-06-09 20:29:09 +02:00
Damir Jelić
216e878231 Revert "feat(base): Detecting invalid states in room upgrades."
This reverts commit c7f6190cff.
2025-06-09 18:08:03 +02:00
Damir Jelić
e54b20fa68 Revert "doc(base): Improve documentation. "
This reverts commit 8e3ad22d92.
2025-06-09 18:08:03 +02:00
Damir Jelić
a120057ec3 Revert "fix(base): Revisit check_tombstone entirely."
This reverts commit 0478037b57.
2025-06-09 18:08:03 +02:00
dependabot[bot]
737bda44a2 chore(deps): bump crate-ci/typos from 1.32.0 to 1.33.1
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.32.0 to 1.33.1.
- [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.32.0...v1.33.1)

---
updated-dependencies:
- dependency-name: crate-ci/typos
  dependency-version: 1.33.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 17:45:37 +02:00
Benjamin Bouvier
df65c94974 chore(ui): apply review comments 2025-06-09 16:59:32 +02:00
Stefan Ceriu
39ee5112b4 chore(ui): add timeline threaded filtering tests 2025-06-09 16:59:32 +02:00
Stefan Ceriu
96afdeffad feat(ui): add TimelineFocus associated values for defining whether threaded events should be hidden on those particular timeline instances. 2025-06-09 16:59:32 +02:00
Stefan Ceriu
669d91e7e9 feat(ui): add thread based filtering for local event items 2025-06-09 16:59:32 +02:00
Stefan Ceriu
dcec53ba00 feat(ui): filter threaded remote events based on the timeline focus and extracted relations 2025-06-09 16:59:32 +02:00
Stefan Ceriu
9d9ce4a68b chore(ui): remove relation processing when dealing with EmbeddedEvents 2025-06-09 16:59:32 +02:00
Stefan Ceriu
dc24365ddf chore(ui): move event based relation handling to TimelineMetadata and out of the TimelineAction 2025-06-09 16:59:32 +02:00
Stefan Ceriu
ba53390547 chore(ui): move timeline item relation handling from the TimelineAction to the TimelineMetadata 2025-06-09 16:59:32 +02:00
Stefan Ceriu
c860e7fca7 fix(ui): load up reactions to threaded messages 2025-06-09 16:59:32 +02:00
Benjamin Bouvier
ebcb74a86d refactor!(event cache): introduce LinkedChunkId in the backends (#5182)
In a "soon" future, threads have their own linked chunk. All our code
has been written with the fact that a linked chunk belong to *a room* in
mind, so it needs some biggish update. Fortunately, most of the changes
are mechanical, so they should be rather easy to review.

Part of #4869, namely #5122.
2025-06-09 13:26:46 +00:00
Jonas Platte
65bb20c965 refactor: Clean up tracing and formatting macro uses (#5192)
Signed-off-by: Jonas Platte <jplatte+matrix@posteo.de>
2025-06-09 12:15:59 +02:00
VerdeQuar
bdda4abf56 fix(crypto): Remove wildcard enum variant import
Signed-off-by: VerdeQuar <verdequar@gmail.com>
2025-06-07 14:55:27 +02:00
Jorge Martín
47e81818bc test: Add extra test for the active call state
Also, adapt the other tests to the new return type
2025-06-06 15:02:17 +02:00
Jorge Martín
fe015b7eda refactor: Expose the new return type of Client::send_call_notifications_if_needed in the FFI layer 2025-06-06 15:02:17 +02:00
Jorge Martín
baf6824bc4 refactor: Add extra logs to Client::send_call_notifications_if_needed
Also make it return `Result<bool>` instead of `Result<()>` so we can check if the event was sent.
2025-06-06 15:02:17 +02:00
Jorge Martín
c1ce92bf48 refactor(ffi): Use Client::room_info_notable_update_receiver instead of RoomUpdates
This allows us to also react to local changes that would take several extra seconds to be received in a new sync response.
2025-06-06 13:18:49 +02:00
Benjamin Bouvier
4eb7e0c845 feat(timeline): insert the timeline start item just after creating a live timeline
This is even better, as we don't need to look at the live pagination
status to know whether we've reached the start of the timeline or not.
2025-06-06 12:57:39 +02:00
Benjamin Bouvier
766ff3f8e9 test(timeline): add a test for the mysterious missing timeline start case 2025-06-06 12:57:39 +02:00
Benjamin Bouvier
a855f1df2c fix(timeline): add the timeline start of the current pagination state too 2025-06-06 12:57:39 +02:00
Ivan Enderlin
0478037b57 fix(base): Revisit check_tombstone entirely.
This patch renames `check_tombstone` to `check_room_upgrades`.
Then it rewrites it **entirely** to remove all false-positives and
false-negatives. More importantly, the room versions are no longer
involved: they can't be compared or ordered, they must be treated as
opaque values.

This new version of `check_room_upgrades` does a first path to check
predecessor-successor consistency. Then it does a second version to
detect loops. This new algorithm is robust to absent `m.room.create`
events. Making them mandatory is left to another patch.

More tests are added, especially to ensure that `m.room.create` cannot
be overwritten, and to ensure loops or inconsistent predecessors and
successors are correctly detected.
2025-06-06 12:54:45 +02:00
Benjamin Bouvier
caa07a8007 refactor(sdk): regroup bundled thread extraction in TimelineEvent ctors 2025-06-06 13:34:12 +03:00
Benjamin Bouvier
93f2c61447 feat(event cache): store a bundled thread's latest TimelineEvent if provided 2025-06-06 13:34:12 +03:00
Benjamin Bouvier
c8a5c43232 feat(common): temporarily store a bundled thread's latest TimelineEvent 2025-06-06 13:34:12 +03:00
Benjamin Bouvier
2aeb1a0353 refactor(sdk): rename TimelineEvent::new to from_plaintext 2025-06-06 13:34:12 +03:00
Benjamin Bouvier
a1ad772642 refactor(sdk): rename TimelineEvent::new_utd_event to from_utd 2025-06-06 13:34:12 +03:00
Benjamin Bouvier
b8f850b6f2 refactor(sdk): make it clearer that Context isn't mutated in a few processor helpers
It isn't mutated by the function, so there's no need to pass a mutable
reference here.
2025-06-06 13:34:12 +03:00
Benjamin Bouvier
c6ed2d1963 refactor(sdk): compute push actions before creating a decrypted TimelineEvent
This reduces the number of callers to `set_push_actions()`, which should
be minimally used.
2025-06-06 13:34:12 +03:00
Benjamin Bouvier
c48a2d68d1 refactor(base): streamline the verification processor 2025-06-06 13:34:12 +03:00