mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
feat(koreader): rebuild the plugin interface and fix four-way annotation sync
Squash of feat/koreader-widget-board. KOReader plugin 2.0.0 gets the widget-board dashboard, redesigned book details, menus, lists and dialogs, Decor page and reading companions. Highlights, notes and bookmarks now stay in step across web, Kobo, KOReader and the phones (defects D-00 to D-20, migration 0121), and reading progress and narration hand off cleanly between devices.
This commit is contained in:
@@ -29,6 +29,12 @@ Inspection is lazy and keyed to the full source digest and detector version. Fai
|
||||
|
||||
Derivatives and KEPUB conversions have bounded preparation queues and disk retention. Active leases protect files used by streams or position conversion. Eviction does not erase delivery provenance. Equivalent regeneration must match the recorded full digest; unavailable historical precision preserves canonical state rather than interpreting old spans against a different file. Fingerprint retry markers are durable and replay in bounded batches without changing manual hash links or resolving ambiguous identities arbitrarily.
|
||||
|
||||
KOReader annotation and bookmark exchange acknowledgements are scoped to the device and rendition hash. Opening an original and a text-only copy on one device cannot make either sidecar's missing entries delete the other's annotations. Historical hashes whose source bytes are unavailable cannot exchange or acknowledge precise annotations and bookmarks.
|
||||
|
||||
Closed-book highlight writes remain pending until verified by the live reader. Missing unverified entries are redelivered with their complete ranges and cannot imply a server deletion. When several existing local files share one rendition hash, the sweep selects the most recently opened copy and withholds missing-key deletion detection for both highlights and bookmarks. Independent deletions between identical local copies are unsupported; deleting in BookOrbit remains authoritative.
|
||||
|
||||
The web reader requests positions for its selected file, verifies highlight quotes, and projects bookmark points using recorded source-file provenance and equivalent chapter text. These projections do not replace canonical positions. Existing API clients retain the default response behavior; selected-file projection uses an optional query parameter. A failed device apply keeps the annotation eligible for retry without invalidating another device's canonical anchor.
|
||||
|
||||
## Guided Kobo replacement
|
||||
|
||||
Search for one book and select one device. Prepare the replacement before removing the device copy. Review its format and measured size, remove the book only from the selected device, offer the replacement, and sync/download. Open it on the device before confirming installation.
|
||||
|
||||
Reference in New Issue
Block a user