Commit Graph

14203 Commits

Author SHA1 Message Date
Benjamin Bouvier
3b339be422 refactor(media): remove the now unused make_local_thumbnail_media_request 2026-01-22 13:31:49 +01:00
Benjamin Bouvier
32666e4c24 feat(send queue): cache a thumbnail as such for the media that we just uploaded
Before: after uploading a media and a thumbnail with the send queue, the
thumbnail would be cached only as a "file", and not as a thumbnail. This
is wasteful, if the embedder is interested in getting a thumbnail of the
exact same dimensions, for the file they've updated; there's no good
reason to wait for the server to return it back.

However, there were good reasons to store it as a file in the past. So,
we're choosing here to duplicate the thumbnail in the media store:
- it's saved as a file for its own MXC URI (which preserves the previous
behavior)
- it's also saved as a thumbnail for the media MXC URI (which implements
the desired behavior).

Tests are updated to reflect this.
2026-01-22 13:31:49 +01:00
Benjamin Bouvier
a32c11f5ee chore: make clippy happy 2026-01-20 17:07:46 +01:00
Benjamin Bouvier
fe885360cc refactor: move the thread read receipt computation to its own function 2026-01-20 17:07:46 +01:00
Benjamin Bouvier
070d17a2d0 refactor: group common match arms together 2026-01-20 17:07:46 +01:00
Benjamin Bouvier
1c0bcf4a69 feat(timeline): update thread summaries when there's a new read receipt event 2026-01-20 17:07:46 +01:00
Benjamin Bouvier
8ae4acdc00 feat(timeline): expose the user's threaded receipt on each thread summary
This is half of the work: this will load the threaded receipt for each
thread, every time we add/update a timeline item for an event that had a
thread summary. Since we don't know which of the private or the public
receipt is the most advanced, we simply pass both, to start with; it's
expected that this code dies later, when we fold it in into the event
cache.

The second half will consist in updating the thread summaries when a new
read receipt event happens.
2026-01-20 17:07:46 +01:00
Doug
439fb9d9c9 chore: Remove the redundant LeaveSpaceRoom.joined_members_count property. 2026-01-20 15:45:59 +02:00
Ivan Enderlin
b3aa849f87 feat(sdk): New state event candidate for LatestEventValue: m.room.member with join.
This patch adds a new state event candidate for `LatestEventValue`:
`m.room.member` when the `membership` is `join` and the `state_key`
is the current user ID. Put differently: when the current user joins a
room, we are able to compute a `LatestEventValue`.
2026-01-20 14:43:18 +01:00
Stefan Ceriu
a9ccb443bc feat(room_list): Add a room identifier based list room list service filter 2026-01-20 15:05:59 +02:00
Stefan Ceriu
0cca375f03 feat(spaces): Expose a SpaceFilter API
The `SpaceFilter`s API provides a simple interface that can be used in conjuncture with the `RoomList` to filter down the hierarchy to a particular space or its descendants.

Per design, the first level `SpaceFilter`s will only contain direct descendants while the second level ones will contain the rest of the hierarchy recursively.

The full feature is defined in https://github.com/element-hq/element-meta/issues/2966
2026-01-20 15:05:59 +02:00
Stefan Ceriu
c5bdeb26ed chore(spaces): Refactor SpaceRoom sorting and move the core logic outside of the space room list
Rooms will soon need to be sorted outside of /hierarchy responses and as such the sorting algorithm will need to be shared between multiple users.
2026-01-20 15:05:59 +02:00
Doug
d278f20dd4 feat: Add a method to reset a SpaceRoomList. 2026-01-20 14:12:15 +02:00
Damir Jelić
a3111e7541 Merge pull request #5931 from JoFrost/main
feat[bindings]: expose power level thresholds in corresponding timeline event
2026-01-20 11:50:00 +01:00
dependabot[bot]
b96b7bc71f chore(deps): bump CodSpeedHQ/action from 4.5.2 to 4.7.0
Bumps [CodSpeedHQ/action](https://github.com/codspeedhq/action) from 4.5.2 to 4.7.0.
- [Release notes](https://github.com/codspeedhq/action/releases)
- [Changelog](https://github.com/CodSpeedHQ/action/blob/main/CHANGELOG.md)
- [Commits](dbda7111f8...0700edb451)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 11:15:48 +01:00
dependabot[bot]
3ff49becbe chore(deps): bump crate-ci/typos from 1.42.0 to 1.42.1
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.42.0 to 1.42.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.42.0...v1.42.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 08:45:25 +01:00
Mauro Romito
3150dd4628 change: code improvements suggested in the pr review 2026-01-20 08:41:49 +01:00
Mauro Romito
a46b006473 refactor: added the check for the joined_members_count inside the test_leave 2026-01-20 08:41:49 +01:00
Mauro Romito
cd5b8eefe0 doc: updated the changelog
# Conflicts:
#	bindings/matrix-sdk-ffi/CHANGELOG.md
2026-01-20 08:41:49 +01:00
Mauro Romito
bd8041765f fix: updated the tests so that they also account for the membership state 2026-01-20 08:41:49 +01:00
Mauro Romito
9183c80ea6 fix: is_last_admin also accounts for the membership state and included the joined_members_count in LeaveSpaceRoom 2026-01-20 08:41:49 +01:00
dependabot[bot]
b68b6b95b0 chore(deps): bump qmaru/wasm-pack-action from 0.5.2 to 0.5.3
Bumps [qmaru/wasm-pack-action](https://github.com/qmaru/wasm-pack-action) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/qmaru/wasm-pack-action/releases)
- [Commits](https://github.com/qmaru/wasm-pack-action/compare/v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: qmaru/wasm-pack-action
  dependency-version: 0.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-20 09:14:53 +02:00
ganfra
c9ac788172 fix(spaces): Allow removing unknown child rooms from spaces 2026-01-19 16:59:25 +00:00
JoFrost
eb13eeeacd chore[changelog]: move new changes to the top 2026-01-19 17:52:00 +02:00
JoFrost
2ff1f66f37 chore[ffi]: rename previous to previous_users 2026-01-19 17:51:38 +02:00
Viktor Strate Kløvedal
0053ecb5f4 FFI: implement Room::list_threads (#5953)
Expose `Room::list_threads` to the FFI.

---------

Signed-off-by: viktorstrate <viktorstrate@gmail.com>
2026-01-19 13:32:29 +00:00
Michael Goldenberg
d1c8b1090b fix(sdk): ensure IdentityStatusChanges not dropped prematurely
For details, see https://github.com/matrix-org/matrix-rust-sdk/issues/4599

Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-01-19 09:32:15 +01:00
Michael Goldenberg
13b3e0349e chore(deps): bump async-stream to 0.3.6
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net>
2026-01-19 09:32:15 +01:00
Skye Elliot
90390d7488 Merge pull request #6017 from matrix-org/kaylendog/history-sharing/backup-download
feat: Download room keys from backup before building key bundle.
2026-01-16 17:03:46 +00:00
Benjamin Bouvier
5b8ff8a76d refactor(state store): remove StateStore::upsert_thread_subscription
There is `StateStore::upsert_thread_subscriptions` as a proper
replacement these days.
2026-01-16 17:01:03 +01:00
Ivan Enderlin
e9f5ed108a test(sdk): Add test_latest_event_is_recomputed_when_a_user_is_ignored.
This patch adds a test to ensure the `LatestEventValue` is re-computed
(more specifically: erased) when a user is ignored.
2026-01-16 15:01:52 +01:00
Ivan Enderlin
34ef8fc324 fix(sdk): The LatestEventValue is erased when a room has been emptied.
This patch ensures that a `LatestEventValue` is erased when a room has
been emptied.

If we are computing a value from the Event Cache, it's because we
have received an update from the Event Cache. This update falls in two
categories: either an event has been added or updated, or the room has
been emptied. We consider the room has been emptied by default. If we
are able to scan at least one in-memory event, we consider the room has
not been emptied.

This patch adds one specific, and updates other tests that were using
an empty Event Cache (which now produces a different result in this
situation).
2026-01-16 15:01:52 +01:00
Ivan Enderlin
92a7d033a2 chore(sdk): Split latest_events::latest_event.
This patch splits the `latest_events/latest_event.rs`
module into `latest_events/latest_event/mod.rs` and
`latest_events/latest_event/builder.rs`. The file was too big and asked
for a diet. The `LatestEventValueBuilder` type has been renamed to
`Builder`, and the `LatestEventVAluesForLocalEvents` has been renamed
to `BufferOfValuesForLocalEvents` for the sake of clarity and shorter
names.
2026-01-16 14:37:46 +01:00
mlm-games
cb8a9995ac fix(widget): Do not include uniffi attrs when the feature is not enabled for element_call.rs 2026-01-16 14:19:16 +01:00
Jorge Martín
fb3c1f8ace doc: Add changelog 2026-01-16 12:48:15 +01:00
Jorge Martín
53b5f04b15 fix(ffi): Use the new RoomPowerLevelsContentOverride API when creating a room
This fixes an issue that prevented default values coming from the SDK from being uploaded in the create room request, which could mean rooms created with the wrong power levels if the default values in the homeserver didn't match those of the SDK
2026-01-16 12:48:15 +01:00
Jorge Martín
4f6b4bf709 feat: Bump Ruma to commit hash version to fix a room power level related bug 2026-01-16 12:48:15 +01:00
Skye Elliot
8a89726726 docs: Update CHANGELOGs. 2026-01-16 11:44:45 +00:00
Ivan Enderlin
fbff1ee99a bench: Bump codspeed-criterion-compat to 4.2.1. 2026-01-15 12:50:25 +01:00
Ivan Enderlin
734cc5b77e fix: Patch ruma to fix #5979.
This patch includes https://github.com/ruma/ruma/pull/2329.
2026-01-15 12:50:25 +01:00
JoFrost
19c958add0 Merge branch 'main' into main
Signed-off-by: JoFrost <20685007+JoFrost@users.noreply.github.com>
2026-01-14 20:18:18 +02:00
Doug
d64c990658 feat: Add a method to set your own user's display name within a room
For e.g. the /myroomnick slash command.
2026-01-14 14:15:22 +02:00
Skye Elliot
e156d8e00c refactor: Use Try operator over Into::into, fixup comment. 2026-01-13 17:46:54 +00:00
Skye Elliot
831ab6d429 tests: Check historic room keys fetched from backup.
- Splits `test_secret_gossip_after_interactive_verification ` into a helper method.

Signed-off-by: Skye Elliot <actuallyori@gmail.com>
2026-01-13 15:47:02 +00:00
Skye Elliot
3baaef5109 feat: Download room keys from backup before building key bundle.
Signed-off-by: Skye Elliot <actuallyori@gmail.com>
2026-01-13 15:19:28 +00:00
Ivan Enderlin
11d430563b doc(sdk): Update the `CHANGELOG.md. 2026-01-13 13:26:16 +01:00
Ivan Enderlin
bfeafa9948 feat(sdk): Introduce the PollTimeout type.
This patch introduces the `PollTimeout` type to represent
either no timeout with `PollTimeout::None`, some timeout
with `PollTimeout::Some(_)`, or a default timeout with
`PollTimeout::Default`. It's finer than the previous `bool` that
was used, where `false` meant `PollTimeout::None`, and `true` meant
`PollTimeout::Default`. It's now possible to pass a precise timeout
value.
2026-01-13 13:26:16 +01:00
Johannes Marbach
dfd607f195 feat(timeline): utilize the cache and include common relations when focusing on an event without context
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2026-01-13 11:37:36 +01:00
JoFrost
9b15400936 feat[ffi]: Add nonfavorite room filter (#5991)
Hello!

As the `Not` filter is not available on the FFI SDK due to UniFFI
constraints, this PR adds a NonFavorite filter to RoomList, implemented
as the negation of the existing Favorite filter. This was made to
address the issue #5978.

- [x] Public API changes documented in changelogs (optional)

<!-- Sign-off, if not part of the commits -->
<!-- See CONTRIBUTING.md if you don't know what this is -->
Signed-off-by:

---------

Signed-off-by: JoFrost <20685007+JoFrost@users.noreply.github.com>
2026-01-13 11:35:54 +01:00
dependabot[bot]
edc1aee471 chore(deps): bump bnjbvr/cargo-machete
Bumps [bnjbvr/cargo-machete](https://github.com/bnjbvr/cargo-machete) from 6229aa757e3e8a028bd97a49e190207e108eefbd to 78beac95c8fd7c25bdfb194415128523e41512d5.
- [Release notes](https://github.com/bnjbvr/cargo-machete/releases)
- [Changelog](https://github.com/bnjbvr/cargo-machete/blob/main/CHANGELOG.md)
- [Commits](6229aa757e...78beac95c8)

---
updated-dependencies:
- dependency-name: bnjbvr/cargo-machete
  dependency-version: 78beac95c8fd7c25bdfb194415128523e41512d5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 09:01:32 +01:00