* fix: avoid auto unsubscribe (due to gc) in js env
* fix: drop subscription if the subscriber is dropped
* perf: use manually drop
* fix: rm once_cell dep
* fix: should call unsubscribe
* perf: optimize high concurrency performance
* refactor: use new fronteirs impl init
* refactor: fix more type err
* refactor: fix more type err
* fix: fix more type err
* fix: all type errors and warnings
* fix: type error in tests
* fix: Debug impl
* fix: singular value
* fix: err
* fix: avoid potential err of frontiers merging
* fix: a few test issues
* test: add frontiers tests
* fix: all test errors
* chore: fix warnings
* chore: rm testing code
* perf: optimize dag related performance
* chore: rm outdated marks
* refactor: frontiers's map variant should contains at least 2 elements
- (js) Refactor subscription mechanism to return unsubscribe function
- (rust) Implement must-use struct for subscriptions in Rust
- Enhance API ergonomics for JavaScript-like environments
- Improve resource cleanup and prevent potential memory leaks
* refactor: Loro import function should return LoroEncodeError
- Change return type
- Add support for handling potential errors:
- Invalid or non-existent frontiers
- Exporting old snapshot format from trimmed snapshot doc
- Improve compatibility with trimmed docs
* fix: add tests and fix a few places that need to return err
* refactor: add detached editing config and prepare the architecture for editing detached doc
* feat: subscribe for peer id change
* fix: undo after checkout & add tests for detached editing
* test: add fuzzer for detached editing
* feat: expose detached editing configure to wasm
* test: add wasm test for detached editing
* feat: add old parent in tree diff
* chore: enable ci
* feat: add old_index to tree diff
* fix: new fractional index config
* fix: cargo fix
* fix: add FractionalIndexNotEnabled error
* fix: move config to tree state
* fix: error string
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* feat: add diff algorithm
* feat: implement DiffHook
* feat: add rust/typescript API
* feat: use u8 to enable SIMD
* feat: add SIMD support
* test: add a failed test case
* revert: change to unicode index
* fix: text event index correctness when using utf8 or unicode
* fix: use unicode index
* fix: apply delta
* fix: remove splice_unicode
---------
Co-authored-by: Zixuan Chen <remch183@outlook.com>
* fix: should transform checkout event
* chore: update fuzz dep
* chore: add pos to error info
* fix: clear undo/redo stack when checkingout
* test: update fuzz dep
* test: a new failed test case
* fix: tree transform
* chore: fuzz
* chore: add log
* chore: add more logs
* fix: compose err
* chore: fuzz test dep
* test: a failed tree case
* fix: undo tree event
* fix: do not compare tree position in fuzz
* fix: fuzz rev
* test: a failed tree case
* fix: add tree compose
* chore: add comment
* chore: fuzz
* fix: test
* fix: tree transform
* fix: tree transform index
* fix: sort tree index
* chore: fuzz
* fix: undo/redo remote change effect compose
* bk
* fix: tree undo redo (#385)
* fix: event hint none
* chore: fuzz version
* ci: fuzz
* bk: weird err
* fix: type err
* fix: fractional index between
* fix: wasm counter feature
* test: a new failed case
* fix: recursively create child nodes
* fix: filter empty event
* bk
* bk
* fix: tree undo redo remap
* chore: clean
* bk
* fix: tree need remap first
* fix: tree undo effect
* fix: tree diff calc
* fix: tree fuzz check eq func
* fix: remove EventHint None
* chore: cargo fix
* fix: tree uncreate
* fix: fuzz tree assert only structure
* refactor: rename methods
* fix: movable tree apply delta
* fix: another movable list issue
* chore: fuzz only check 1 actor's history
---------
Co-authored-by: Leon Zhao <leeeon233@gmail.com>