-
released this
2026-08-20 09:31:39 -04:00 | 31 commits to main since this releaseBug Fixes
- (sync) Web annotations never reached KOReader — bind 400s + unresolvable locators (
f6e257e) - (sync) Synced highlights painted nowhere — degenerate range ends + color model mismatch (
6e9b352) - (reader) Render device-synced highlights — synthesize range CFIs (
50ec2be) - (sync) Echo dedup + color semantics + classification for KOReader round-trips (
dafcadd)
Features
- (db) Locator columns for tombstoned annotations (
0670d90) - (reader) Send end-anchor CFI for EPUB highlights (
97e546b) - (sync) Serve web highlight colors to KOReader (mapped to its palette) (
178fb2e)
Other
- Merge branch 'sync-annotations-fix': bidirectional annotation sync for KOReader
Server-side (8 commits): web annotations finally reach KOReader and
vice versa. Fixed the 400 bind failures on every annotation-carrying
push (loose client types), resolved device-native pos0 locators for
every source (device xpointers pass through round-trip identical,
web CFIs convert to CRE xpointers with text-search anchoring, PDF
anchors map to pages), derived degenerate range ends from selection
length, echo-deduplication via served dedup keys (pull→push cycles
converge instead of minting duplicates), web↔device color mapping at
both boundaries with echo suppression (web colors flow to devices,
round-trips never drift them, device edits win), drawer-based
annotation classification, and tombstone propagation that can't
cross-delete. Perf: parsed-EPUB converter cache (bounded, locked).Plugin-side (bookhoard.koplugin @ 4ea3966): dual-model annotation
store (KOReader 2024.07+ v2 ui.annotation + legacy v1), thin-client
collection (no per-annotation CRE lookups), dedup-key identity
matching, device-default coloring for applied highlights with
datetime_updated-based echo suppression, and native-shaped
AnnotationsModified dispatches (fixes a ReaderThumbnail crash and
paints immediately instead of after restart). (f07c93e)- Merge branch 'test-fixture-cleanup': book-agnostic CFI converter tests (
995ccb5)
Performance
- (sync) Share parsed EPUBs across conversions, make converters concurrency-safe (
1585aa1)
Tests
- (sync) Replace book-specific CFI converter fixtures with a synthetic EPUB (
4ab947f)
Downloads
- (sync) Web annotations never reached KOReader — bind 400s + unresolvable locators (