-
released this
2026-08-22 13:59:19 -04:00 | 10 commits to main since this releaseDocumentation
- (koreader) Rewrite setup guide for plugin + server-side approval flow (
54d0550) - (kobo) Mark native Kobo sync as coming soon (
26f1f98) - (user) Align sync and user guides with current device support (
2a7ac88) - (readme) Update device support matrix to current state (
e35d394) - (index) Update device guidance and fix broken links (
e310fa6) - (user) Update device and sync navigation for sidebar UI (
8680033) - (user) Update appearance/profile instructions for sidebar UI (
7274b51) - (user) Update dashboard and bookshelf instructions for sidebar UI (
9a60196) - (user) Update admin and collections instructions for sidebar UI (
8ca95db) - (api) Document unified tunable system settings endpoints (
44a0f8c) - (api) Document hash-conflict resolution endpoints (
ffcdab3) - (api) Document device sidecar endpoints; fix registration docs (
df90938) - (api) Rewrite KOReader bookmark sync for current protocol (
c49a960) - (api) Add system/hash-conflict sections to API references (
078c4b1) - (api) Document the KOReader resolve endpoint (
91c8be8) - (api) Deleted-annotation history + KOReader deletion propagation (
d429534)
Features
- (sync) Add read-only KOReader book resolve endpoint (
6859f81) - (db) Queries for the deleted-annotation history (
acbb6c7) - (sync) Restore/purge service methods + bookmark tombstone by dedup key (
d4c52e9) - (sync) Propagate KOReader annotation deletions + history API (
1f5c5a2) - (ui) Deleted-annotation history on the book page (
f70579b)
Downloads
- (koreader) Rewrite setup guide for plugin + server-side approval flow (
-
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 (
-
released this
2026-08-18 09:58:44 -04:00 | 42 commits to main since this releaseBug Fixes
- (reader) Stabilize chrome panels, bookmarks end-to-end, dead UI removal (
ba95cc3) - (sync) Resurrect tombstoned annotations when a newer save re-creates them (
a962342) - (reader) PDF highlights never appeared — isPDF read too early + overlay shrunk by pdf.js transform (
eb09a5d) - (reader) PDF search returned nothing — reactive proxy broke pdf.js; add back-to-location (
1905fec) - (reader) PDF highlights offset from the words — wrong fraction denominator (
34a27a5) - (reader) Both toolbars showed below 768px — cascade-layer conflict (
dc68d03) - (reader) PDF contents drawer rendered nothing — duplicate x-for keys (
206db93) - (reader) Pin foliate-js e448d36 — webtoon pages now load (
243d369)
Features
- (reader) Immersive chrome, slide-over drawers, tri-state PDF pointer mode (
612f888) - (reader) Glass chrome — translucent bars, custom slider, slide-away hide (
14d1a15) - (reader) Touch & mobile — tap zones, gesture engine, mobile sheets (
24ea9d8) - (reader) EPUB highlights & notes — selection popover, overlayer rendering, annotations drawer (
40d7051) - (reader) PDF text highlights via fraction-rect annotations (
a05b016) - (reader) In-book search for reflowable formats (
5e73b0a) - (reader) In-book search for PDFs (
6fc4107) - (reader) Relocate back-to-location, add recenter control, wrap bottom bar on small windows (
f283903) - (reader) Mobile-pattern toolbar — compact row + ⋯ overflow menu under 768px (
6cd0fb2) - (reader) Page thumbnails tab + reliable PDF contents (
fd4c357) - (reader) Confirm bookmark creation with a success toast (
1a07635) - (reader) Shortcuts help modal + desktop edge page-turn zones (
94be6ed) - (reader) Webtoon reading mode + brightness/contrast/night filters (
e500039)
Other
- (vite) Remove stale hashed chunks after each build (
bd7d71a) - Merge branch 'reader-redesign': reader v2 — immersive chrome, annotations, search, touch, webtoon
Full reader redesign across 22 commits (with the foliate-js fork's
zoom-control engine work pinned per release):- Phase 0: panel/chrome stabilization, bookmarks end-to-end (REST CRUD
via AnnotationService), dead UI removal, tombstone resurrection fix - Phase 1: edge-to-edge glass chrome with auto-hide, slide-over drawers,
tri-state PDF pointer mode (Smart/Pan/Text), Kindle-style theme swatches - Phase 2: touch gesture engine (pinch/pan/swipe/double-tap), tap zones,
mobile sheets + compact toolbar with overflow menu - Phase 3: EPUB highlights & notes (selection popover, overlayer
rendering, annotations drawer), PDF text highlights (fraction-rect
overlays), in-book search for both EPUB and PDF, back-to-location
stack, page thumbnails, shortcuts help modal, desktop edge zones - Phase 4: webtoon (vertical-scroll) mode for comics, brightness/
contrast/night filters, bookmark toast feedback - Build hygiene: vite stale-chunk cleanup, browser-verified fixes for
Alpine proxy/dpr/duplicate-key classes of bugs along the way (922336c)
Downloads
- (reader) Stabilize chrome panels, bookmarks end-to-end, dead UI removal (
-
released this
2026-08-14 08:54:18 -04:00 | 65 commits to main since this releaseBug Fixes
- (scanner) Prevent duplicate media item imports (
9b171a0)
Documentation
- (sync) Document SHA-256 fields and format-aware matching in koreader protocol (
8599e5c)
Features
- (reader) Wire double-page spread setting into web reader (
f5d9578) - (sync) Add shared BookResolver with format-aware SHA-256 matching (
60a94df) - (koreader) Resolve pushes by SHA via BookResolver and return SHA on pull (
5584bde) - (opds) Always send X-Bookhoard-SHA256 on native EPUB downloads (
48af5d3) - (sidecar) Key book map by per-format hashes (
830741c) - (db) Hash_conflicts table and backfill/conflict queries (
0c39e04) - (scanner) Recompute hashes on rescan and flag content duplicates (
77990d0) - (ui) Admin Hash Conflicts page and nav entry (
8004cb8) - (admin) Startup hash backfill and hash-conflict resolution API (
03cb4c7)
Miscellaneous Tasks
- (deps) Pin foliate-js to d4d87a9 via canonical https URL (
b7a9b47)
Downloads
- (scanner) Prevent duplicate media item imports (
-
released this
2026-08-10 14:47:27 -04:00 | 77 commits to main since this releaseBug Fixes
- (dashboard) Stop duplicating items after scan completion (
04e2a06)
Features
- (ui) Accordion sidebar panels + wood texture preview swatches (
05c7431)
Downloads
- (dashboard) Stop duplicating items after scan completion (
-
released this
2026-08-10 13:59:29 -04:00 | 79 commits to main since this releaseBug Fixes
- (templates) Use expression attributes and fix indentation (
4b152bb) - (admin) Expandable sidebar section + library manage toggle (
a42232e) - (sync) Wire dead token cleanup queries into daily maintenance runner (
1461273) - (ui) Move theme checkmark when theme changes in Appearance menu (
8d65e03)
Features
- (admin) Redesign library management with HTMX expandable rows + stats dashboard (
706be09) - (admin) Add scan settings + system information to settings page (
64ad10b) - (db) Typed tunable system settings + SettingsRegistry (
bc47450) - (auth) Make session duration and password rules configurable (
457a383) - (api) Make device rate limits, OPDS page size, and conversion cache configurable (
d12911d) - (sync) Make annotation tombstone TTL configurable (
757398b) - (api) Unified tunable settings endpoints with typed validation (
885f6d8) - (app) Wire settings registry into startup and admin routes (
537330e) - (admin) Editable tunable settings UI with grouped sub-sections (
598d70f) - (ui) Adopt book-open brand icon and add SVG favicon (
ab465d8)
Miscellaneous Tasks
- (frontend) Slim admin.ts, remove dead library.ts (
006cc0c)
Other
- Merge remote-tracking branch 'origin/main'
Conflicts:
templates/book_detail.templ
templates/collection_rules.templ
templates/conflicts.templ
templates/header.templ
templates/progress.templ (
89ea310)- Merge branch 'new-ui'
Conflicts:
templates/admin_library.templ
templates/admin_library_templ.go
templates/conflicts_templ.go
templates/unlinked_books_templ.go (
9a62c10)Refactor
Downloads
- (templates) Use expression attributes and fix indentation (
-
released this
2026-08-06 15:26:02 -04:00 | 98 commits to main since this releaseBug Fixes
- (reader) Keep footer compact on mobile and clear text under chrome (
987ece3) - (ui) Use a grid icon for Customize Dashboard (
7b465ac) - (ui) Show read action on JS-rendered dashboard cards (
f67232a) - (reader) Back button remembers the page you came from (
73a2852) - (ui) Wire up collection detail page interactions (
816ee0e) - (ui) Custom confirm dialog, picker visibility, remove wiring (
ef3c057) - (ui) Keep search filter visible on system collections (
4a870a7) - (ui) Make icon and color selection work in collection modal (
8e2c1a4) - OPDS base_url placeholder bug + setup gate requires base_url (
4716790) - (ui) Round progress percentage to 2 decimals on progress page (
0a0caa9) - (ui) Populate Last Updated and Synced From fields on progress page (
6f1c139) - Embed time/tzdata so time.LoadLocation works in Alpine container (
acc9d08)
Features
- (ui) Design system foundation (
f3f908e) - (ui) Sidebar app shell and bold design system (
f402a3e) - (ui) Redesign dashboard, bookshelf, book detail, and auth pages (
07578e0) - (ui) Migrate remaining pages to the new shell (
8ea70ea) - (ui) Split book-card play action into reader/detail routing (
9ef6c5b) - (ui) Use a book-open icon for the card read action (
9165c4e) - (ui) Group sidebar footer menus into distinct panels (
033a012) - (ui) Hide management controls for system collections (
40dabfd) - (devices) Reform Add Device modal with KOReader plugin instructions (
e09c55c)
Other
- Regenerate stylesheet for sidebar app shell (
b23f6b0) - Merge branch 'new-ui' into main
UI/UX redesign with modern look (Kavita/Komga/Audiobookshelf vibe):
- Dashboard read-action JS fix with conflict routing
- Reader back button with sessionStorage referrer
- Collection detail page interactions (selection, bulk remove, book picker)
- Custom confirm dialog replacing native confirm()
- System collections read-only
- Collection modal icon/color selection
- OPDS base_url fix + setup gate requires base_url
- Progress page fixes (percentage formatting, blank fields)
- Devices page reform (KOReader plugin instructions, gear icon)
- Embed time/tzdata for Alpine container compatibility
Conflicts:
templates/reader_templ.go
web/static/style.css (
2976dad)Bug Fixes
- (reader) Keep footer compact on mobile and clear text under chrome (
c5c2270)
Downloads
- (reader) Keep footer compact on mobile and clear text under chrome (
-
v0.5.2-tighten
Pre-ReleaseRelease / build-and-push (push) Successful in 2m34sreleased this
2026-08-05 22:02:15 -04:00 | 118 commits to main since this releaseDownloads
-
released this
2026-08-05 21:49:01 -04:00 | 121 commits to main since this releaseBug Fixes
- (reader) Keep footer compact on mobile and clear text under chrome (
c5c2270)
Downloads
- (reader) Keep footer compact on mobile and clear text under chrome (
-
released this
2026-08-05 15:35:00 -04:00 | 122 commits to main since this releaseBug Fixes
- (reader) Tighten mobile header/footer and add safe-area margins (
11617c1)
Miscellaneous Tasks
- (deps) Promote golang.org/x/net to direct dependency (
94a4fac)
Downloads
- (reader) Tighten mobile header/footer and add safe-area margins (