loro-crdt 1.13.7 → 1.13.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.9
4
+
5
+ ### Patch Changes
6
+
7
+ - ddc47ec: Retreat the conservative replay base to the latest single-head critical
8
+ version of the two versions' combined history instead of the beginning of
9
+ history. When an import or checkout involves a genuinely concurrent branch,
10
+ the causal replay now starts at the most recent point that no concurrency
11
+ crosses (in the sense of Eg-walker's critical versions), skipping the
12
+ fully-synced common prefix that the old empty-version fallback replayed.
13
+ - ddc47ec: Fix a convergence bug where a movable tree's incrementally maintained state
14
+ could diverge from a full replay of its own oplog. When newly imported
15
+ operations were concurrent with part of the receiving peer's multi-head
16
+ frontier, the diff mode was misclassified as concurrency-free and the tree
17
+ fast path applied the new moves without adjudicating them against the
18
+ existing concurrent branch. The classifier now verifies that every entry
19
+ point of the imported region causally covers the whole current frontier,
20
+ and otherwise retreats the replay base to the latest critical version so
21
+ the competing branches are replayed together.
22
+ - ddc47ec: Correct LCA unmatched-branch detection when an explicit dependency already
23
+ covers the same peer's implicit predecessor. Keep those causally newer imports
24
+ on the current replay base, and avoid rebuilding unchanged list-like containers
25
+ when a genuinely concurrent update needs a conservative base containing a large
26
+ common history.
27
+
28
+ ## 1.13.8
29
+
30
+ ### Patch Changes
31
+
32
+ - ac1feb6: Reduce peak memory across large snapshot import, `toJSON`, update import, and
33
+ snapshot export by preserving lazy state, bounding the decompressed SSTable
34
+ block cache by bytes, and preallocating the snapshot output exactly. Snapshot
35
+ import now validates every embedded SSTable block checksum before accepting
36
+ external bytes.
37
+
38
+ Full snapshot export no longer walks the alive-container graph: store entries
39
+ for referenced containers are created when the creating op or imported diff is
40
+ applied, so a cold export after a large import is a flush plus KV export
41
+ instead of re-reading every container from compressed blocks. As part of this,
42
+ full export round-trips imported state bytes faithfully (inconsistent
43
+ alive-container parent metadata is now rejected by shallow export, which still
44
+ walks, rather than by full export), and an ensured-but-empty mergeable child is
45
+ no longer materialized into the KV store by a full export — importers resolve
46
+ it from its parent map marker. First `toJSON` after import also avoids decoding
47
+ each lazy container twice.
48
+
3
49
  ## 1.13.7
4
50
 
5
51
  ### Patch Changes