Richard van der Hoff
d5ce01acab
ui: new type for EventTimelineItem::get_shield
...
Separate the shield types between common and UI, so that we can change common
without breaking UI.
The new type does not include a `message` field: since it cannot be localised,
clients should not be using it.
2025-12-18 13:54:49 +00:00
Richard van der Hoff
dbefaef777
bindings: remove message from ShieldState
...
Since this can't be localised, apps shouldn't be using it.
2025-12-18 13:09:54 +00:00
Richard van der Hoff
7438c59acd
bindings: get_shields: stop returning Option
...
Again, there is no need for an `Option` as well as a `None` variant
2025-12-18 13:07:34 +00:00
Richard van der Hoff
f5cda21d59
ui: TimelineEventItem::get_shield: stop returning Option
...
The `ShieldState` enum has a `None` variant, so we don't need an `Option` on
top of it.
2025-12-18 13:07:34 +00:00
Skye Elliot
b3f6df939b
Merge pull request #5943 from matrix-org/kaylendog/history_sharing/store_history_sender_details
...
feat(crypto): Add `forwarder_data` to `InboundGroupSession` and pickle.
2025-12-17 17:16:57 +00:00
Skye Elliot
0e568a4ee6
refactor: Use impl Iterator<Item = InboundGroupSession> as param.
2025-12-17 16:50:59 +00:00
Skye Elliot
f94ce7e91c
docs: Improve doc comments, linkify MSC4268.
2025-12-17 16:43:54 +00:00
Stefan Ceriu
6042bc93f6
chore(spaces): move the SpaceServices setup logic to its constructor and make it async
2025-12-17 14:42:14 +02:00
Stefan Ceriu
80be172fdf
chore(ui): Move the 5955's changelog to the right position
2025-12-17 14:42:14 +02:00
Stefan Ceriu
4cc863a9fb
chore(spaces): add changelogs
2025-12-17 14:42:14 +02:00
Stefan Ceriu
51e07d9fba
chore(spaces): Rename subscribe_to_joined_spaces to subscribe_to_top_level_joined_spaces
2025-12-17 14:42:14 +02:00
Stefan Ceriu
143d96e300
chore(spaces): rename the SpaceService's SpaceState's joined_rooms to top_level_joined_spaces
2025-12-17 14:42:14 +02:00
Stefan Ceriu
a2fd2536c4
chore(spaces): Rename joined_spaces to top_level_joined_spaces
2025-12-17 14:42:14 +02:00
Stefan Ceriu
f5d751b3eb
chore(spaces): Rename update_joined_spaces_if_needed to update_space_state_if_needed
2025-12-17 14:42:14 +02:00
Stefan Ceriu
096dfd61cb
chore(spaces): rename joined_spaces_for to build_space_state
2025-12-17 14:42:14 +02:00
Stefan Ceriu
89f66ecd10
chore(spaces): Extract the SpaceService's subscription for rooms outside the subscribe_to_joined_spaces and make it explicit.
...
This will avoid having to awkwardly call `space_service.joined_spaces` without it even being needed.
2025-12-17 14:42:14 +02:00
Skye Elliot
85f07b10ad
chore: Remove unused TryFrom<&HistoricRoomKey> implementation.
2025-12-17 12:33:21 +00:00
Skye Elliot
809643a159
tests(crypto): Doctests, update snapshots to include forwarder_data.
2025-12-17 12:33:21 +00:00
Richard van der Hoff
f753d478fa
feat: Add forwarder_data to InboundGroupSession and pickle.
...
- Introduces `forwarder_data` to IGS and its pickled form, and a
helper method to import them from `HistoricRoomKey`s.
Issue: https://github.com/matrix-org/matrix-rust-sdk/issues/5109
Signed-off-by: Skye Elliot <actuallyori@gmail.com >
2025-12-17 12:33:16 +00:00
Damir Jelić
282a2bc8ef
refactor(timeline): Don't request redecryptions in the timeline
2025-12-17 13:19:38 +01:00
Damir Jelić
c6fb3c25f3
feat(r2d2): Let R2D2 attempt to update encryption info for in-memory events
2025-12-17 13:19:38 +01:00
Damir Jelić
5429106ab3
feat(r2d2): Let R2D2 attempt to redecrypt events that are in the memory of the event cache
2025-12-17 13:19:38 +01:00
Damir Jelić
5c387f2b81
refactor(r2d2): Convert the filter closure for decrypted events into function
2025-12-17 13:19:38 +01:00
Damir Jelić
6c68ca2a64
refactor(r2d2): Split out the encryption info update method into reusable components
2025-12-17 13:19:38 +01:00
Michael Goldenberg
4ee6906f47
doc(sdk): update changelog
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
46b9c11139
doc(indexeddb): update changelog
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
8e1510821b
style(indexeddb): cargo fmt
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
288f28620c
refactor(indexeddb): add deprecation note on open_stores_with_name()
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
aa5497e385
feat(client): initialize all stores in indexeddb store config
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
6bf121b58e
refactor(indexeddb): ensure event-cache-store feature flag compiles in isolation
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
01b130a401
refactor(indexeddb): ensure media-store feature flag compiles in isolation
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
256fb0406d
refactor(indexeddb): use finer-grain feature flags to include/exclude serializers
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
c57478ee18
feat(indexeddb): add media-store to default features
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
e74bf33178
feat(indexeddb): expose struct and fns for opening all stores
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
2bec882c83
feat(indexeddb): add fn to media store builder for prefixing db name
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Michael Goldenberg
2cfcc957ca
feat(indexeddb): add fn to event cache store builder for prefixing db name
...
Signed-off-by: Michael Goldenberg <m@mgoldenberg.net >
2025-12-17 12:56:09 +01:00
Damir Jelić
972b3dc88b
test: Add a test which showcases that redecryption for timelines with an event focus is broken ( #5975 )
...
Co-authored-by: Andy Balaam <andy.balaam@matrix.org >
2025-12-17 11:38:08 +00:00
razvp
ea43e3f5a8
feat(sdk): Bulk process thread subscription updates from sync and companion enpoint
2025-12-17 11:03:50 +01:00
razvp
67b1de613c
feat(state-stores): Add StateStore::upsert_thread_subscriptions() method for bulk upsert
2025-12-17 11:03:50 +01:00
Jorge Martín
1af22a70b7
fix(sdk_common): TimelineEvent::from_bundled_latest_event can remove session_id
...
What's more, this is saved into the event cache and sometimes it overrides another instance of the same event that actually contains the right info. This results in unresolvables UTDs.
This change tries to fetch the session id from the existing event content. It's fixed these kind of UTDs when tested in a real client.
matrix-sdk-ffi/20251217
2025-12-16 16:21:51 +01:00
Damir Jelić
504d15f171
chore: Fix some spelling issues
2025-12-16 15:46:34 +01:00
Damir Jelić
1302afb844
test: Add another test for pinned timelines
...
This time we're testing the redecryption of pinned events that were not
part of the main timeline, more importantly we never backpaginated
enough for them to be part of the main timeline and thus never got put
into the event cache.
This test expectedly fails for now.
2025-12-16 15:46:34 +01:00
Damir Jelić
028d610397
fix: Only replace UTDs in pinned timeline with decrypted events that have the same event ID
2025-12-16 15:46:34 +01:00
Damir Jelić
7323c79dc2
test: Refactor the pinned timeline integration test a bit
...
This should allow us in the future to create more such tests with
many more events.
2025-12-16 15:46:34 +01:00
Damir Jelić
16c6b57c9a
fix(timeline): Allow focused timelines to replace UTDs with decrypted events
2025-12-16 15:46:34 +01:00
Damir Jelić
329bdaa785
test(timeline): Add a test that pinned events get replaced after they get redecrypted
2025-12-16 15:46:34 +01:00
Ivan Enderlin
e57185a009
fix(sdk): new_local returns an Option.
...
We can't use `LatestEventValue::None` as an optional value anymore,
since it erases the previous `LatestEventValue`. This patch updates
`LatestEventValueBuilder::new_local` to return an `Option` to handle all
the cases where a local value cannot be computed.
2025-12-16 15:42:37 +01:00
Ivan Enderlin
4e90ceae91
doc: Update the CHANGELOG.mds.
2025-12-16 13:45:00 +01:00
Ivan Enderlin
ccf11ad041
feat(ui): latest_event sorter handles LatestEventValue::LocalHasBeenSent.
...
This patch changes the semantics of the Room List `latest_event`
sorter by changing “is local” to “is remote like”, to include the new
`LatestEventValue::LocalHasBeenSent` variant.
2025-12-16 13:45:00 +01:00
Ivan Enderlin
631671fb1c
fix(sdk): Introduce LatestEventValue::LocalHasBeenSent.
...
The problem we are trying to solve is the following:
- a local event is being sent,
- the `LatestEventValue` is `LocalIsSending`,
- the local event is finally sent,
- the `LatestEventValue` is still `LocalIsSending` purposely, with the
hope that an update from the Event Cache will replace it.
But sometimes, this update from the Event Cache comes **before** the
update from the Send Queue. Why is it problem? Because updates from the
Event Cache are ignored until the buffer of local `LatestEventValue`s
aren't empty, which means that if an update from the Event Cache is
received before `RoomSendQueueUpdate::SentEvent`, it is ignored, and the
`LatestEventValue` stays in the `LocalIsSending` state. That's annoying.
The idea is to introduce a new state: `LocalHasBeenSent` which mimics
`Remote`, but for a local event. It clarifies the state of a sent event,
without relying on the Event Cache.
2025-12-16 13:45:00 +01:00