Commit Graph

14438 Commits

Author SHA1 Message Date
Benjamin Bouvier 5c1ee281a9 refactor(test): remove StateTestEvent variants that were unused 2026-02-16 10:26:11 +01:00
Benjamin Bouvier f4b401ac58 refactor(test): remove StateTestEvent::MemberAdditional and use the EventFactory instead 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 47e4c44d1b refactor(test): remove StateTestEvent::Member and use the event factory instead 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 1ba8704941 refactor(test): remove StateTestEvent::JoinRules 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 7f13f86912 refactor(test): remove StateTestEvent::HistoryVisibility 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 622825f099 refactor(test): remove StateTestEvent::Encryption 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 16e50ee484 refactor(test): remove StateTestEvent::Create and replace it with the event factory 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 7dc76fa423 refactor(test): remove StateTestEvent::Aliases which was simply unused 2026-02-16 10:26:11 +01:00
Benjamin Bouvier db3308981b refactor(test): remove StateTestEvent::Alias and use the event factory instead 2026-02-16 10:26:11 +01:00
Ivan Enderlin e5cf097e32 fix(sdk): LatestEventValue::RemoteInvite is computed once per room.
An invite room is only constitued of stripped-state events. These events
do not have an `origin_server_ts` field. It means we cannot compute
the timestamp of the `LatestEventValue`. To workaround this, we set
the timestamp to `now()`. See `Builder::new_remote_for_invite` to learn
more. If an invite room receives a new event, its `LatestEventValue`'s
timestamp can be updated to `now()` again, which will make the room
bumps to the top of the room list for example. This is not an acceptable
behaviour because it can be an “attack vector”, i.e. a way to annoy
people with spammy invites. That's why, once a `RemoteInvite` has been
computed, we do not refresh it.

The fix is 2 instructions. The rest are comments and tests.
2026-02-13 11:03:24 +01:00
Benjamin Bouvier 3ac2339475 Revert "refactor: don't build the benchmarks by default either"
This reverts commit 66ea5d990d.
2026-02-12 15:16:41 +01:00
Benjamin Bouvier 9b4e60d075 fixup! refactor: don't build the benchmarks by default either 2026-02-12 14:36:45 +01:00
Benjamin Bouvier 66ea5d990d refactor: don't build the benchmarks by default either 2026-02-12 14:36:45 +01:00
Benjamin Bouvier ea40bf35b8 refactor: don't build multiverse by default 2026-02-12 14:36:45 +01:00
Stefan Ceriu 4ca1e45271 feat(ffi): replace tracing's RollingFileAppender with SizeAndDateRollingWriter (#6162)
This new file writer supports both total size and age based rolling, and
will take care of a whole class of edge cases that make rageshake
uploading fail.

* It will rotate log files when the configured time period elapses
(e.g., hourly, daily).
* When the total size of all log files exceeds the configured limit, the
oldest files are removed.
* Logs older than the configured max age are automatically removed
during cleanup.
* Only files matching the configured prefix and suffix are managed by
any given writer instance.
2026-02-12 13:28:03 +00:00
Benjamin Bouvier 771de205b3 review(event cache): rename TimelineVectorUpdate to TimelineVectorDiffs 2026-02-12 13:57:21 +01:00
Benjamin Bouvier 07fe503cd4 refactor(event cache): use TimelineVectorUpdate in the UpdateTimelineEvents variant too, for consistency 2026-02-12 13:57:21 +01:00
Benjamin Bouvier deeaa862d8 refactor(event cache): reuse the TimelineVectorUpdate for the pinned event cache
The pinned event timeline only cares about updates to the vector of
events, not the other types of updates, at the moment. As such, it
doesn't need to use the fully-fledged `RoomEventCacheUpdate`, but a
simpler version, like the one that is being used for threads. Hence, we
can reuse `TimelineVectorUpdate` here.
2026-02-12 13:57:21 +01:00
Benjamin Bouvier 91ae6a1eab refactor(event cache): move TimelineVectorUpdate to the new caches module 2026-02-12 13:57:21 +01:00
Benjamin Bouvier 86480cb37a refactor(event cache): rename ThreadEventCacheUpdate to TimelineVectorUpdate 2026-02-12 13:57:21 +01:00
Benjamin Bouvier feed4f725b fix(event cache): make sure the pinned event cache task is aborted on drop
Otherwise, it would leak if a client was killed, after it's been
created.
2026-02-12 13:57:21 +01:00
Benjamin Bouvier e7d2c729c2 chore(test): remove unused test JSONs 2026-02-12 13:00:13 +01:00
Michael Goldenberg 75d39c8186 doc(ui): move latest change log entry to the top
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Michael Goldenberg 726e5c95b1 doc(ui): re-word change log entry
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Michael Goldenberg 19572c9712 doc(ui): update change log
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Michael Goldenberg ce1ec8bab3 test(notification-client): replace unit test with crate-specific integration tests
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Michael Goldenberg 1833e9185d test(notification-client): ensure tests check for member hints in required state
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Michael Goldenberg d7c6af9677 test(notification-client): replace integration test with unit test
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-11 15:17:43 +01:00
Michael Goldenberg 26d76d128a refactor(notification-client): add member hints to required state
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
Co-authored-by: Jorge Martín <jorgem@element.io>
2026-02-11 15:17:43 +01:00
Michael Goldenberg b35bea6c2b test(notification-client): show room names wrong in sliding sync notifications
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-02-11 15:17:43 +01:00
Benjamin Bouvier f69e154e30 refactor(event cache): keep the same summary check if not post-processing events after a redecryption 2026-02-11 14:56:38 +01:00
Benjamin Bouvier 4d3e7f7336 fix(event cache): have redecryption cause a thread summary update 2026-02-11 14:56:38 +01:00
Benjamin Bouvier ee1eb99134 test: write a test for a UTD as the latest thread reply
The latest thread reply in a summary is UTD, then should be resolved
automatically. It doesn't, currently, so this test acts as a regression
test.
2026-02-11 14:56:38 +01:00
Johannes Marbach 70665a84aa feat(client): make it possible to subscribe to key upload errors (#6135)
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-02-11 14:11:51 +01:00
Joe Groocock c6b58b0e2b feat: Expose MSC4171 service members
Signed-off-by: Joe Groocock <me@frebib.net>
2026-02-11 12:49:46 +00:00
Benjamin Bouvier ce0bba5e6d test: make more use of the EventFactory for the room topic
And get rid of test events. This implied adding a way to provide the
previous content of a state event, in the event factory.
2026-02-11 09:48:46 +01:00
Ivan Enderlin 87787dc04e refactor(sdk): Re-implement PinnedEventCacheStateLock with StateLock. 2026-02-11 08:23:51 +01:00
Ivan Enderlin a12f659653 refactor(sdk): Re-implement RoomEventCacheStateLock with StateLock. 2026-02-11 08:23:51 +01:00
Ivan Enderlin f4da1fa582 feat(sdk): Introduce the StateLock type in EventCache.
This patch introduces the `StateLock` type. It's a copy of the
`RoomEventCacheStateLock` logic, but generalised to any state `S`.
2026-02-11 08:23:51 +01:00
Benjamin Bouvier 7fbb2ddae1 test: add a new method for the state pinned events in the event factory 2026-02-10 18:41:15 +01:00
dependabot[bot] 1e0c930a12 chore(deps): bump bnjbvr/cargo-machete
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete) from 78beac95c8fd7c25bdfb194415128523e41512d5 to 3026399e8ccbe119a9624e9376afc8c5f21fb60f.
- [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/78beac95c8fd7c25bdfb194415128523e41512d5...3026399e8ccbe119a9624e9376afc8c5f21fb60f)

---
updated-dependencies:
- dependency-name: bnjbvr/cargo-machete
  dependency-version: 3026399e8ccbe119a9624e9376afc8c5f21fb60f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 15:50:41 +01:00
Kevin Boos 0715da0626 Enable ruma's compat-unset-avatar feature
Without this, the `Account::set_avatar_url()` function does not work
on homeservers that don't advertise support for the new endpoints
for setting profile fields.
2026-02-10 13:39:25 +01:00
dependabot[bot] b1d878ddc2 chore(deps): bump crate-ci/typos from 1.43.0 to 1.43.4
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.0 to 1.43.4.
- [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.0...v1.43.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 13:37:59 +01:00
Ivan Enderlin 13b07c3ece feat(xtask): Always open leaf nodes.
This patch adds the `open` attribute to the `<details>` for displaying
leaf nodes of the tree. My experience shows that it's nice to always
have them open. The “occurences” list is still folded, so it shouldn't
take to much space on the screen most of the time (one line per level of
logs in this node).
2026-02-10 13:33:48 +01:00
Ivan Enderlin 00e58056a4 fix(xtask): Remove a bad calculation to timeout bar. 2026-02-10 13:33:48 +01:00
Ivan Enderlin e1e86a78c9 feat(xtask): Add log overview.
This patch adds the `log overview` task that generates a standalone HTML
report representing the logs as a tree where each node is a target, and
each leaf is a log location with occurrences, spans and fields.

Each node displays the sum of errors and warnings for this node.
It helps to quickly spot the problematic targets, and it guides to
exploration of the node without taking the reader's hand by trying to
draw conclusions. We don't want to guide the reader to a mistake: we
just want to guide the reader to draw its own conclusions.

Each line can be highlighted. When a node is folded/closed, it is also
highlighted if at least one of its child is highlighted.

The occurrences of logs are displayed on a timeline.
2026-02-10 13:33:48 +01:00
Doug f1e41222f8 fix: Fix a deserialisation failure when the avatar_url is null. matrix-sdk-ffi/20260210 2026-02-10 11:32:52 +01:00
Ivan Enderlin df6fc21576 refactor(sdk): Remove assume_has_waited_for_initial_prev_token.
This patch removes the `assume_has_waited_for_initial_prev_token` by
making `waited_for_initial_prev_token` to return a `&mut bool` instead
of `bool`.
2026-02-10 11:25:41 +01:00
Ivan Enderlin 72c1a655f2 refactor(sdk): waited_for_initial_prev_token is no more an Arc<AtomicBool>.
This patch changes `RoomEventCacheState::waited_for_initial_prev_token`
from `Arc<AtomicBool>` to `bool`. First off, the `Arc` wasn't used in
any useful way (never cloned for example). Second, the `AtomicBool` was
always used as a regular bool, no atomicity was really used. Lastly,
this patch adds the `assume_has_waited_for_initial_prev_token` method to
replace the `= true` operation to make code a bit more readable.
2026-02-10 11:25:41 +01:00
dependabot[bot] ae36751c9d chore(deps): bump CodSpeedHQ/action from 4.10.4 to 4.10.6
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action) from 4.10.4 to 4.10.6.
- [Release notes](https://github.com/codspeedhq/action/releases)
- [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codspeedhq/action/compare/fa0c9b1770f933c1bc025c83a9b42946b102f4e6...4deb3275dd364fb96fb074c953133d29ec96f80f)

---
updated-dependencies:
- dependency-name: CodSpeedHQ/action
  dependency-version: 4.10.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-10 11:15:25 +01:00