github dani84bs/AnnotationSync.koplugin v2.1.0
Release v2.1.0

5 hours ago

AnnotationSync v2.1.0

A new public API that lets other plugins sync their data through
AnnotationSync, plus smoother, non-blocking reading progress sync.

✨ New Features

  • Extractor API (pushExtractorData) — other KOReader plugins can
    now push their own data (as keyed records) through AnnotationSync and
    get it safely merged across devices via the new Keyed Merge.
    Extractors can hook the new AnnotationSyncRequested event to sync
    alongside every annotation sync. See
    Writing an Extractor.
  • Sync in background — reading progress is now pushed from a
    separate process, so page turns no longer stall while syncing. On by
    default on Linux devices (Kobo, Kindle, PocketBook, desktop Linux);
    off by default on macOS and Android. Available with WebDAV or Dropbox
    destinations, and can be toggled in the progress sync settings.

🐛 Fixes

  • Input used to interrupt a background progress sync is now passed
    through to the reader instead of being swallowed (#100).
  • Background progress push times out on elapsed time rather than poll
    count, and the push process no longer holds the reader's listeners
    (#107, #108).
  • Extractor sync is skipped when offline, and persistent merge conflicts
    are bounded by retries instead of looping.

🏗️ Under the Hood

  • New end-to-end regression test for background progress push, and unit
    tests driving the real subprocess poll.
  • Extra debug logging around provider sync boundaries.

📖 Docs

  • README documents the Sync in background setting.
  • New guide: Writing an Extractor.
  • Updated the minimum KOReader version needed for some features.

🙏 Thanks

Thanks to @Tsukumi233 and @JeffShih-wiwynn for their contributions to
this release!


Full Changelog: v2.0.0...v2.1.0

Don't miss a new AnnotationSync.koplugin release

NewReleases is sending notifications on new releases.