Commit Graph

14649 Commits

Author SHA1 Message Date
Benjamin Bouvier 21e8138805 chore: depersonalize some TODO code comments
Removed a few TODOs that were not applicable anymore, because they were
either very low value (in timeline test code) or already done (in event
cache, with respect to the cross-process locking).

Also removed my nick from some TODOs and comments, as code comments
aren't the best way to store assignees for issues.
matrix-sdk-ffi/20260305
2026-03-05 13:35:23 +01:00
Benjamin Bouvier 20d1087658 chore: remove spurious semicolon after match statement 2026-03-04 16:47:25 +01:00
Benjamin Bouvier 1edbad0bd8 refactor(client): monitor the thread subscriptions catchup task 2026-03-04 16:47:25 +01:00
Benjamin Bouvier 1825cd5816 chore: add changelog entry for the previous commit 2026-03-04 16:47:25 +01:00
Benjamin Bouvier 97e2b1c1b2 refactor(client): also consider server support when checking for thread subscriptions enablement 2026-03-04 16:47:25 +01:00
Kévin Commaille 02d0298b66 test(sdk): Add thorough tests about receiving stripped state events
Including stripped state events that fail to deserialize.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 12:23:26 +00:00
Kévin Commaille 6fd4988849 docs(base): Clarify comment for m.room.encryption
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 12:23:26 +00:00
Kévin Commaille ed319eed64 fix(base): Handle stripped state events that fail to deserialize
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 12:23:26 +00:00
Kévin Commaille 359f50f368 refactor(base): Make RoomInfo::handle_state_event generic over the enum type
This will allow to use the same method for stripped state.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 12:23:26 +00:00
Kévin Commaille c6bf11e836 Upgrade Ruma after Any(Sync)StateEvent breaking change
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 12:23:26 +00:00
Benjamin Bouvier 3aec150697 doc(event cache): clarify comment about Gap::token 2026-03-04 12:13:22 +01:00
Benjamin Bouvier ddd07443f1 chore: add entry in the changelog for the renaming of the Gap::prev_token field 2026-03-04 12:13:22 +01:00
Benjamin Bouvier 8dbb6e5c1d refactor(event cache): rename Gap::prev_token to token
As it is now used for both a previous batch token (backwards pagination)
or a next batch token (forwards pagination).
2026-03-04 12:13:22 +01:00
Benjamin Bouvier cdd40d0308 chore: add changelog entry for the renaming of BackPaginationError 2026-03-04 12:06:47 +01:00
Benjamin Bouvier e9f398472e refactor(event cache): rename BackpaginationError to PaginationError 2026-03-04 12:06:47 +01:00
Benjamin Bouvier 88eb4a0da9 Merge pull request #6185 from matrix-org/bnjbvr/permalink-linked-chunk
feat: introduce an event-focused linked chunk for event-focused timelines
2026-03-04 11:39:01 +01:00
Kévin Commaille 77dddf2540 Upgrade Ruma after breaking changes of ErrorKind
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 10:30:25 +00:00
Kévin Commaille 2cf8ce2a7d Upgrade Ruma after breaking change of InvitationRecipient
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 10:30:25 +00:00
Kévin Commaille 12b1102ca9 Upgrade Ruma after breaking change about Reply relations
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 10:30:25 +00:00
Kévin Commaille 81286ad1e7 Upgrade Ruma after breaking change about EventId constructors
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-04 10:30:25 +00:00
Benjamin Bouvier 280eae0b71 refactor(event cache): extract get_event_focused_cache as a separate helper function 2026-03-04 11:15:51 +01:00
Benjamin Bouvier bc88e96e62 chore: adjust some doc comments 2026-03-04 10:52:06 +01:00
Benjamin Bouvier 37708d509c chore: add a missing feature annotation 2026-03-03 16:00:09 +01:00
Benjamin Bouvier 30de09aef6 refactor(event cache): rename finish_forward_pagination to push_forwards_pagination_events 2026-03-03 15:50:53 +01:00
Benjamin Bouvier 0b6d00cfad Merge branch 'main' into bnjbvr/permalink-linked-chunk-backup 2026-03-03 15:49:13 +01:00
Kévin Commaille 029148ef6e refactor(sqlite): Get rid of the DATABASE_VERSION constants
They are error prone because they need to be bumped for every migration
otherwise the new migration will not happen because we exit early.

So instead we get rid of the early returns and log each individual
upgrade separately. It makes more noise when creating a new database,
but since it is logged at the DEBUG level it is not much of a problem.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-03-03 15:26:42 +01:00
Benjamin Bouvier 8d38f6109e fix(event cache): avoid racy initialization of event-focused linked chunk 2026-03-03 15:20:04 +01:00
Benjamin Bouvier 75c5528942 refactor(event cache): add last_chunk_as_gap to EventLinkedChunk 2026-03-03 15:20:04 +01:00
Benjamin Bouvier dd5cb220a0 refactor(event cache): add first_chunk_as_gap() in EventLinkedChunk too 2026-03-03 15:09:47 +01:00
Benjamin Bouvier 4b23378d29 refactor(event cache): extract pushing a gap as a standalone function 2026-03-03 15:07:04 +01:00
Benjamin Bouvier 66c97dc02f chore: address review comments 2026-03-03 15:02:38 +01:00
Richard van der Hoff a2f77c79bc Merge pull request #6233 from matrix-org/rav/history_sharing/get_all_rooms_pending_key_bundle
Add `CryptoStore::get_all_rooms_pending_key_bundle`
2026-03-03 12:56:10 +00:00
Benjamin Bouvier 2f791d19e3 chore: add changelog entry for the recycling of internal timeline ids 2026-03-03 13:51:57 +01:00
Benjamin Bouvier 066dd4aa21 test(timeline): add test for the previous feature 2026-03-03 13:51:57 +01:00
Benjamin Bouvier a4c3a4eb87 feat(timeline): recycle internal timeline ids upon deduplication
When the event cache decides to deduplicate items, it will remove the
duplicate items, then push them back at a position further down the
line.

This can lead to spurious re-creation of items, which may show up, in
embeddings, as different items as they don't share the same internal id.

This patch makes it so that if the same transaction includes a move of
an event (i.e. it's removed then reinserted elsewhere), then the
internal ID will be reused in this case.
2026-03-03 13:51:57 +01:00
Richard van der Hoff c23dd1ec0a update changelogs 2026-03-03 12:37:15 +00:00
Richard van der Hoff 80ac2b8c38 Add integration test for get_all_rooms_pending_key_bundle 2026-03-03 12:23:57 +00:00
dependabot[bot] 617c646a52 chore(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-03 10:06:34 +01:00
dependabot[bot] 29b506f301 chore(deps): bump crate-ci/typos from 1.43.5 to 1.44.0
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.5 to 1.44.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.43.5...v1.44.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 17:28:52 +01:00
dependabot[bot] cf84f2ff18 chore(deps): bump bnjbvr/cargo-machete
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete) from 3026399e8ccbe119a9624e9376afc8c5f21fb60f to 6456c7b34a8c1245e0c186ac50c56666ccbd44f1.
- [Release notes](https://github.com/bnjbvr/cargo-machete/releases)
- [Changelog](https://github.com/bnjbvr/cargo-machete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bnjbvr/cargo-machete/compare/3026399e8ccbe119a9624e9376afc8c5f21fb60f...6456c7b34a8c1245e0c186ac50c56666ccbd44f1)

---
updated-dependencies:
- dependency-name: bnjbvr/cargo-machete
  dependency-version: 6456c7b34a8c1245e0c186ac50c56666ccbd44f1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-02 16:28:27 +00:00
Johannes Marbach 949bdb5bb3 fix(latest_event): handle race between send queue update and remote echo (#6220)
There seems to be a race condition where the
`RoomSendQueueUpdate::SentEvent` update arrives after the remote echo
has already been processed which leads to the latest event value getting
stuck at `LocalHasBeenSent`. This fixes the issue by trying to retrieve
the event from the cache first.

- [x] I've documented the public API Changes in the appropriate
`CHANGELOG.md` files.
- [x] I've read [the `CONTRIBUTING.md`
file](https://github.com/matrix-org/matrix-rust-sdk/blob/main/CONTRIBUTING.md),
notably the sections about Pull requests, Commit message format, and AI
policy.
- [ ] This PR was made with the help of AI.

---------

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-03-02 15:20:17 +00:00
Valere Fedronic cc8d6d8482 bindings: Support audio/video intent in rtc notification event content (#6207)
<!-- description of the changes in this PR -->

Updates ruma from
https://github.com/ruma/ruma/commit/289bee87974bd3c2ad14a6c15801c80b683b67dc
to
https://github.com/ruma/ruma/commit/89dab44660889ab02e5921adbf6b79a3262deb99
see
https://github.com/matrix-org/matrix-rust-sdk/pull/6207/commits/4250d657564039d21f63f2fbb954b0e2eb17d9eb

Depends on this ruma PR github.com/ruma/ruma/pull/2383

Support for reading the intent from the notification event
(m.call.intent in notification event as per
https://github.com/matrix-org/matrix-spec-proposals/pull/4075)

Parity with js-sdk implementation

https://github.com/matrix-org/matrix-js-sdk/blob/bd6547c0814e11b41e79de3cc9d0d4ecf7648272/src/matrixrtc/types.ts#L150

- [ ] I've documented the public API Changes in the appropriate
`CHANGELOG.md` files.
- [ ] I've read [the `CONTRIBUTING.md`
file](https://github.com/matrix-org/matrix-rust-sdk/blob/main/CONTRIBUTING.md),
notably the sections about Pull requests, Commit message format, and AI
policy.
- [ ] This PR was made with the help of AI.

<!-- Sign-off, if not part of the commits -->
<!-- See CONTRIBUTING.md if you don't know what this is -->
Signed-off-by:
2026-03-02 15:31:29 +01:00
Johannes Marbach 779d6a0925 fix(threads): include secondary relations when re-initializing a threaded timeline after a lag (#6209)
This is equivalent to what happens in `init_focus` when the timeline is
initialized from scratch.

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-03-02 15:07:24 +01:00
Benjamin Bouvier 1fdebd7d56 chore: remove the bullet point about reading the CONTRIBUTING.md file in the PR template
The PR template includes an item for a warning that is automatically
shown once (and once and for all) by the Github UI. In the previous
review of the changes to the pull request template, Ivan agreed that
this was redundant, so it seems there's no point in keeping it in the
pull request template itself.
2026-03-02 11:47:52 +01:00
Damir Jelić 39c0ee1f9b ci: Enable the MSRV check for all of our crates 2026-02-27 17:40:08 +01:00
Damir Jelić 1542a5b79e chore: Fix some new clippy warnings 2026-02-27 17:40:08 +01:00
Damir Jelić ae53b62762 chore: Bump the MSRV 2026-02-27 17:40:08 +01:00
Damir Jelić 4576013878 fix(ffi): Enable rustls by default
It's important to have one of those enabled so a simple cargo check on
the crate works.
2026-02-27 17:40:08 +01:00
Damir Jelić 73028a834e chore: Define the MSRV in all of our private crates 2026-02-27 17:40:08 +01:00
Damir Jelić 8c4f5c60b7 fix(ffi-macros): Fix compilation in case we only build this single crate 2026-02-27 17:40:08 +01:00