Changelog
All notable changes to this project will be documented in this file.
0.18.0 - 2026-06-02
No significant changes.
[0.17.0] - 2026-05-08
Features
- [breaking] Change to the stable identifiers for
m.history_not_shared. We still support reading the unstable identifier. (#6467) - Add a method to check the validity of edits. (#6454)
- A background task monitor has been added, that can spawn background tasks and monitor their execution on a separate channel. Such tasks can run forever, or they can run for one-shot jobs. (#6075 && #6421)
- Add
AcquireCrossProcessLockResultandAcquireCrossProcessLockFnfor convenience in generalizing cross-process lock acquisition. (#6326) - Add support in the
MemoryStore’s implementation ofEventCacheStorefor having duplicate events in a room, where each duplicate is in a differentLinkedChunk. This is useful, e.g., when an event is in a room and a thread in that room. - [breaking] In order to support having duplicate events in the same room
(in different
LinkedChunk’s) a few functions were changed inRelationalLinkedChunk. The items in theIteratorreturned byRelationalLinkedChunk::itemsnow also include theLinkedChunkIdin which theItemwas found. Additionally,RelationalLinkedChunk::save_itemnow requires theItemto beCloneas it may be stored in multipleLinkedChunks. (#6200) - [breaking] Added
CrossProcessLockConfig, which can be used to configure the behavior of the cross-process lock.CrossProcessLocknow takes aCrossProcessLockConfigas an argument to its constructor instead of alock_holdervalue. (#6160) - [breaking]
ShieldStateCodeno longer includesSentInClear.VerificationState::to_shield_state_{lax,strict}never returned that code, and so having it in the enum was somewhat misleading. (#5959) - Add field
forwarderof typeForwarderInfotoEncryptionInfo, which exposes information about the forwarder of the keys with which an event was encrypted if they were shared as part of an MSC4268 room key bundle. (#5945).
Bug fixes
- Fix an off-by-one check for
Error:InvalidItemIndexinLinkedChunk::remove_item_at. (#6057) - Fix
TimelineEvent::from_bundled_latest_eventsometimes removing thesession_idof UTDs. This broken event could later be saved to the event cache and become an unresolvable UTD. (#5970).
Refactor
- [breaking] Remove
ttl_cache::TtlCachebecause it is now unused. (#6484)
[0.16.1] - 2026-05-08
Features
- Add a method to check the validity of edits. (#6454)
[0.16.0] - 2025-12-04
Features
- [breaking] Cross-process lock can be dirty. The
CrossProcess::try_lock_oncenow returns a new typeCrossProcessResult, which is an enum withClean,DirtyorUnobtainedvariants. When the lock is dirty it means it’s been acquired once, then acquired another time from another holder, so the current holder may want to refresh its internal state. (#5672).
[0.14.0] - 2025-09-04
Features
Tracing subscribers created via [
matrix_sdk_common::js_tracing::MakeJsLogWriter] or [make_tracing_subscriber] will now drop log events at theTRACElevel. PreviouslyTRACElogs were treated the same asDEBUGlogs. (#5590).[breaking] Use
Raw<AnyTimelineEvent>in place ofRaw<AnyMessageLikeEvent>inDecryptedRoomEvent::event. (#5512). Affects the following functions:OlmMachine::decrypt_room_event- existing matches on the result’s event field should be updated toAnyTimelineEvent::MessageLike(AnyMessageLikeEvent::...)
[0.13.0] - 2025-07-10
Features
- Expose the
ROOM_VERSION_RULES_FALLBACKthat should be used when the rules of a room are unknown. (#5337) - Expose the
ROOM_VERSION_FALLBACKthat should be used when the version of a room is unknown. (#5306)
Refactor
- [breaking]
extract_bundled_thread_summary()returns aRaw<AnySyncMessageLikeEvent>for the latest event instead of aRaw<AnyMessageLikeEvent>. (#5337)
[0.12.0] - 2025-06-10
No notable changes in this release.
[0.11.0] - 2025-04-11
Features
- Add a simple TTL cache implementation. The
TtlCachestruct can be used as a key/value map that expires items after 15 minutes. (#4663)
[0.10.0] - 2025-02-04
- [breaking]:
SyncTimelineEventandTimelineEventhave been fused into a single typeTimelineEvent, and its fieldpush_actionshas been madeOptional (it is set toNonewhen we couldn’t compute the push actions, because we lacked some information). (#4568)
[0.9.0] - 2024-12-18
Bug fixes
Change the behavior of
LinkedChunk::new_with_update_history()to emit anUpdate::NewItemsChunkwhen a new, initial empty, chunk is created. (#4327)[breaking] Make
Room::history_visibility()return an Option, and introduceRoom::history_visibility_or_default()to return a better sensible default, according to the spec. (#4325)Clear the internal state of the
AsVectorstruct if anUpdate::Clearstate has been received. (#4321)
Documentation
- Document that a decrypted raw event always has a room id. (#728e1fd)
[0.8.0] - 2024-11-19
Refactor
- Move
linked_chunkfrommatrix-sdktomatrix-sdk-common.