AnnotationSync v2.0.0 π
The biggest release yet β new sync capabilities, a major internal
refactor, a hardened end-to-end test suite, and a new translation.
β¨ New Features
- Full Library Sync β scan your entire library for books with
annotations that were never synced (not just the currently dirty
ones) and sync them all in one pass. - Device Purging β remove a stale or retired device's entries from
reading progress sync, with a one-click undo.
π Localization
- Added Simplified Chinese (zh_CN) translation.
- Refreshed and completed existing translations.
π Fixes
- Fixed a WebDAV
sync_serverreference bug that could corrupt state
when handed to the storage provider. - Bounded retries on persistent sync conflicts to prevent runaway
loops. - No-op resyncs no longer trigger a broadcast, keeping sync idempotent.
- Settings exclusion filters are now enforced at the push boundary.
ποΈ Under the Hood
- Major refactor of the sync orchestration: extracted dedicated modules
for settings sync, the changed-documents queue, UI suppression, and
provider adaptation β smaller, more testable, more maintainable code. - A sprawling new real-WebDAV end-to-end test harness covering
two-device sync, progress sync, merge conflicts, bookmark restore,
highlight resizing, the pending queue, network reconnects, and more β
dozens of new scenarios guarding against regressions. - CI bumped to KOReader v2026.07.2.
π Docs
- README now documents Full Library Sync and Device Purging.
- Added a from-scratch guide for setting up a KOReader dev environment.
Full Changelog: v1.9.9999...v2.0.0