Commit Graph

14454 Commits

Author SHA1 Message Date
Jonas Jelten 2022017b29 feat(ffi): export is_low_priority for a room
Signed-off-by: Jonas Jelten <jj@sft.lol>
2026-02-17 15:23:26 +01:00
Hugh Nimmo-Smith 3c13b3edd4 test(qr-login): assert expect error codes in grant test cases 2026-02-17 13:01:13 +01:00
Johannes Marbach 3bd3ba7aff fix(latest_event): handle edits when the target event is not directly preceding
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-02-17 10:12:21 +01:00
dependabot[bot] 9c6a3d6cf4 chore(deps): bump tj-actions/changed-files from 47.0.1 to 47.0.2
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 47.0.1 to 47.0.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v47.0.1...v47.0.2)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-version: 47.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 16:56:12 +01:00
dependabot[bot] 86ae50d1bd chore(deps): bump crate-ci/typos from 1.43.4 to 1.43.5
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.43.4 to 1.43.5.
- [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.4...v1.43.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-16 16:56:03 +01:00
Benjamin Bouvier 347d348bf4 fix(bench): add a sender to the room encryption event 2026-02-16 10:53:31 +01:00
Benjamin Bouvier 079c8175f2 refactor(test): remove the PresenceTestEvent enum that's unused 2026-02-16 10:53:31 +01:00
Benjamin Bouvier 64163c32f6 refactor(test): add an invite_room_state method to the EventBuilder
So we can pass the room state when receiving an invite, using more event
factory!
2026-02-16 10:53:31 +01:00
Benjamin Bouvier bcb84cc27c refactor(test): remove StrippedStateTestEvent 2026-02-16 10:53:31 +01:00
Benjamin Bouvier e299adbdeb refactor(test): remove more unused test event variants 2026-02-16 10:53:31 +01:00
Benjamin Bouvier 2ab1d8a985 refactor(test): remove StateTestEvent \o/\o/\o/ 2026-02-16 10:26:11 +01:00
Benjamin Bouvier d71387e7f7 refactor(test): remove StateTestEvent::Custom and replace it with usage of the event factory
There's one case where we want to create a custom join rule, and thus
must parse directly from JSON, but the rest can reuse helpers that
already exist.
2026-02-16 10:26:11 +01:00
Benjamin Bouvier fa638ae630 refactor(test): remove StateTestEvent::EncryptionWithEncryptedStateEvents 2026-02-16 10:26:11 +01:00
Benjamin Bouvier 4965800a0a refactor(test): remove StateTestEvent::RoomName and use the event factory instead 2026-02-16 10:26:11 +01:00
Benjamin Bouvier f7b55bfb5c refactor(test): remove StateTestEvent::PowerLevels and use the event factory instead
Since it's always using the default power levels, provide a default ctor
for it, and use it throughout this commit.
2026-02-16 10:26:11 +01:00
Benjamin Bouvier 1fdf23a456 refactor(test): remove StateTestEvent::MemberInvite/Leave 2026-02-16 10:26:11 +01:00
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