Skip to content

Releases: d0nizam/syncery.koplugin

Syncery v1.2.1

Choose a tag to compare

@d0nizam d0nizam released this 21 Jul 11:44
4c5015e

[v1.2.1] — 2026-07-21

IMPORTANT:
Due to needed changes in the plugin update logic, the "Check for plugin updates" feature may not work as intended for some users. In this case, please download the latest version directly from GitHub.

Added

  • Progress Browser and Annotation Browser now find books that exist on
    this device but weren't recognized.
    Two related situations, both
    previously reported as errors or silently miscounted:
    • A book synced from another device, never opened here — you can now
      point Syncery at the file directly ("Point to it…"), verified by
      content match, not just filename.
    • A book that WAS opened elsewhere, but this device's recorded path for
      it doesn't resolve (moved, different platform, different folder
      layout) — same "Point to it…" flow, worded for that case
      specifically.
    • Once you locate a book this way, Syncery remembers the folder pattern
      (e.g. "Books/EN" → "Documents/Books/EN") and auto-resolves the next
      book from a sibling folder (e.g. "Books/BG") without asking again.
  • "Migrate all books to this storage mode…" now uses the same "Point to
    it…" flow
    for books it can't find automatically, instead of just
    reporting them as "not on this device." Already-learned folder patterns
    from Progress/Annotation Browser are tried silently first.

Full Changelog: v1.2.0...v1.2.1

Syncery v1.2.0

Choose a tag to compare

@d0nizam d0nizam released this 17 Jul 19:26
63131de

[v1.2.0] — 2026-07-17

Added

  • Cloud prefetch. Sync Now now discovers books your other devices have
    synced but you have never opened here, and stages their progress and
    annotations ahead of time. They show up immediately in the Progress
    Browser, Booklist, and Annotation Browser — the moment you actually open
    one, its synced state is already there, not fetched from scratch.
  • Cloud Sync-All. Sync Now used to push/pull only the book you had
    open. It now covers your whole library in one pass — every book with a
    pending change goes out, and every book a peer changed comes in — using a
    lightweight per-device manifest so it doesn't have to check every book's
    full content to know what changed.
  • Open-moment pull + jump prompt. Opening a book now checks the cloud
    right away (a few seconds after load) instead of waiting for the next
    save. If a peer left off further ahead, the jump prompt can appear on the
    very first check. (PR #12 by iav)
  • Deletion-aware reload prompts. Deleting an annotation on one device
    now offers the same "tap to reload" invitation on others that a new
    annotation already did — previously, a deletion updated things silently
    and only became visible after you closed and reopened the book yourself.
    When both new and deleted annotations arrive together, the bar shows a
    compact +N -M count.
  • Verbose sync logging (Advanced, under Copy diagnostic info, off by
    default). Writes detailed push/pull decisions, merge results, and
    jump/reload events to debug.txt in Syncery's settings folder, capped at
    roughly the last 1000 lines — for troubleshooting sync issues without
    digging through the full crash.log. Takes effect immediately, no
    restart needed.
  • Wake Wi-Fi for a cloud push on close (opt-in). Optionally pushes your
    last reading position on suspend too, not just on close. (PR #7 by iav)
  • Custom Syncthing host. The Syncthing GUI host was previously fixed to
    127.0.0.1; it's now configurable under Transports → Configure
    Syncthing…
    , for setups where the daemon isn't reachable on loopback.
  • Force terminal Syncthing scan past backoff at close/quit. Ensures the
    last changes are picked up by Syncthing before shutdown, rather than
    being delayed by scan backoff. (PR #8 by iav)
  • Last-read time now carries
    onto the book's atime on sync, instead of only the progress percentage
    moving. (PR #14 by iav)
  • other little additions and improvements

Fixed

  • A same-page jump prompt (peer at the same position, no real progress
    difference) no longer appears — this previously caused a back-and-forth
    jump prompt oscillation between two devices reading in lockstep.
    (PR #12 by iav)
  • Fixed a cloud sync race condition that could occur right at book open,
    and a related one in pushOpenedBooks' failure handling that could leave
    a book's push state inconsistent after a transient error.
  • Fixed WebDAV folder-listing filtering so unsupported/system entries no
    longer interfere with book discovery.
  • Fixed a bug where a book moved between storage locations could leave a
    stale cross-device reference behind.
  • Fixed a cache-key bug where Syncery could silently skip pushing a
    genuinely changed book after an unrelated book's push, or — more
    seriously — could skip checking the cloud for a peer's update at all
    once its own content looked unchanged (only the book you had open was
    affected; the fix makes the skip opt-in, used only where it's actually
    safe).
  • Fixed a false "font & layout changed" notification that could appear on
    the very first sync of a book between two devices with different
    default fonts, even when neither device had ever customized anything —
    the comparison now falls back to each device's own live rendering
    default instead of assuming a difference.
  • Fixed the relative-time display in the jump/undo action bar and status
    section (e.g. "5 minutes ago" instead of a raw timestamp).
  • Many other small fixes...

Full Changelog: v1.1.2...v1.2.0

Syncery v1.1.2

Choose a tag to compare

@d0nizam d0nizam released this 30 Jun 11:38
c1e9e9a

[v1.1.2] — 2026-06-30

Bugfix

  • Annotation browser: focus indicator (blue border) no longer appears on touch-enabled devices. Regression in v1.1.1 - the D-pad focus navigation inadvertently drew a focus border on the first list item on all devices, not just non-touch ones. Now gated on hasDPad() and not isTouchDevice(), matching KOReader's FocusManager convention.

Syncery v1.0.0

Choose a tag to compare

@d0nizam d0nizam released this 23 Jun 22:11

[v1.0.0] — 2026-06-24

First public release. Syncery keeps your whole reading state in sync across
every device you read on — no account, and no central server unless you choose
to run one.

  • The full reading state, not just position. Reading progress, highlights,
    notes, bookmarks, ratings, reading status, and book metadata all travel
    together.
  • Your choice of transport. Syncthing for peer-to-peer sync with no server,
    or cloud storage — Dropbox, WebDAV, or FTP.
  • Plain JSON beside your books. Everything is stored as readable JSON in each
    book's sidecar (or a content-hash folder that survives renames), so your data
    is never locked in.
  • Offline-safe merging. Two devices edited while offline converge to the same
    result instead of overwriting each other; annotations and render settings
    merge the same way regardless of which device synced first.
  • Update from inside KOReader. Check for plugin updates (below Advanced)
    fetches the latest release from GitHub, shows the notes, installs it in place,
    and restarts — no bundled certificate, and Android-safe.