Commit Graph

  • b1eda696f1 Revert "fix(bookmarks): upsert on title conflict so position upgrades don't 500" main john-okeefe 2026-08-30 21:01:59 -04:00
  • 27b3dcb69f fix(bookmarks): upsert on title conflict so position upgrades don't 500 john-okeefe 2026-08-30 20:57:15 -04:00
  • 5c5593644d fix(media): gate file serving by library visibility; proper download URL john-okeefe 2026-08-30 11:44:36 -04:00
  • 9e516b96cc docs(android): require reader settings parity with the web reader john-okeefe 2026-08-29 15:25:52 -04:00
  • 44735554f7 docs(api): document the real book download route john-okeefe 2026-08-29 10:25:59 -04:00
  • 311049379d docs(android): add QR pairing sign-in to roadmap, update auth design john-okeefe 2026-08-28 22:45:29 -04:00
  • f65db5ab4f docs(api): align auth/devices/libraries/media-items docs with handlers john-okeefe 2026-08-28 22:15:42 -04:00
  • 7ddcdd0756 docs(readme): link Android app doc and adopt app favicon as title icon john-okeefe 2026-08-28 20:59:31 -04:00
  • b927ed9988 docs(android): add native Android client design doc john-okeefe 2026-08-28 20:59:31 -04:00
  • e2953c4a01 chore(license): relicense project from GPL-3.0 to AGPL-3.0 john-okeefe 2026-08-28 20:12:15 -04:00
  • d429534b12 docs(api): deleted-annotation history + KOReader deletion propagation v1.0.1 john-okeefe 2026-08-22 13:16:54 -04:00
  • f70579b4fc feat(ui): deleted-annotation history on the book page john-okeefe 2026-08-22 13:16:48 -04:00
  • 1f5c5a28bd feat(sync): propagate KOReader annotation deletions + history API john-okeefe 2026-08-22 13:16:43 -04:00
  • d4c52e9a6a feat(sync): restore/purge service methods + bookmark tombstone by dedup key john-okeefe 2026-08-22 13:16:36 -04:00
  • acbb6c7981 feat(db): queries for the deleted-annotation history john-okeefe 2026-08-22 13:16:31 -04:00
  • 91c8be8562 docs(api): document the KOReader resolve endpoint john-okeefe 2026-08-22 09:57:44 -04:00
  • 6859f81144 feat(sync): add read-only KOReader book resolve endpoint john-okeefe 2026-08-22 09:57:35 -04:00
  • 078c4b1f3f docs(api): add system/hash-conflict sections to API references john-okeefe 2026-08-20 14:41:05 -04:00
  • c49a9605ff docs(api): rewrite KOReader bookmark sync for current protocol john-okeefe 2026-08-20 14:40:59 -04:00
  • df90938c5c docs(api): document device sidecar endpoints; fix registration docs john-okeefe 2026-08-20 14:40:54 -04:00
  • ffcdab36a0 docs(api): document hash-conflict resolution endpoints john-okeefe 2026-08-20 14:40:50 -04:00
  • 44a0f8c7a4 docs(api): document unified tunable system settings endpoints john-okeefe 2026-08-20 14:40:45 -04:00
  • 8ca95db08a docs(user): update admin and collections instructions for sidebar UI john-okeefe 2026-08-20 14:30:10 -04:00
  • 9a60196f1d docs(user): update dashboard and bookshelf instructions for sidebar UI john-okeefe 2026-08-20 14:30:05 -04:00
  • 7274b5196c docs(user): update appearance/profile instructions for sidebar UI john-okeefe 2026-08-20 14:30:00 -04:00
  • 868003331c docs(user): update device and sync navigation for sidebar UI john-okeefe 2026-08-20 14:29:54 -04:00
  • e310fa6a9d docs(index): update device guidance and fix broken links john-okeefe 2026-08-20 14:14:55 -04:00
  • e35d394736 docs(readme): update device support matrix to current state john-okeefe 2026-08-20 14:14:52 -04:00
  • 2a7ac881fd docs(user): align sync and user guides with current device support john-okeefe 2026-08-20 14:14:49 -04:00
  • 26f1f98736 docs(kobo): mark native Kobo sync as coming soon john-okeefe 2026-08-20 14:14:43 -04:00
  • 54d0550dec docs(koreader): rewrite setup guide for plugin + server-side approval flow john-okeefe 2026-08-20 14:14:39 -04:00
  • 995ccb50bb Merge branch 'test-fixture-cleanup': book-agnostic CFI converter tests v1.0.0 john-okeefe 2026-08-20 09:22:10 -04:00
  • 4ab947f7db test(sync): replace book-specific CFI converter fixtures with a synthetic EPUB john-okeefe 2026-08-20 09:22:10 -04:00
  • f07c93e582 Merge branch 'sync-annotations-fix': bidirectional annotation sync for KOReader john-okeefe 2026-08-20 09:13:24 -04:00
  • 178fb2eb37 feat(sync): serve web highlight colors to KOReader (mapped to its palette) john-okeefe 2026-08-20 08:43:21 -04:00
  • dafcadd211 fix(sync): echo dedup + color semantics + classification for KOReader round-trips john-okeefe 2026-08-19 19:41:39 -04:00
  • 50ec2bebf2 fix(reader): render device-synced highlights — synthesize range CFIs john-okeefe 2026-08-19 14:08:03 -04:00
  • 6e9b3528d8 fix(sync): synced highlights painted nowhere — degenerate range ends + color model mismatch john-okeefe 2026-08-19 14:08:03 -04:00
  • 97e546b2a4 feat(reader): send end-anchor CFI for EPUB highlights john-okeefe 2026-08-18 19:13:51 -04:00
  • 1585aa1073 perf(sync): share parsed EPUBs across conversions, make converters concurrency-safe john-okeefe 2026-08-18 19:13:51 -04:00
  • f6e257e497 fix(sync): web annotations never reached KOReader — bind 400s + unresolvable locators john-okeefe 2026-08-18 19:13:38 -04:00
  • 0670d904a0 feat(db): locator columns for tombstoned annotations john-okeefe 2026-08-18 19:13:23 -04:00
  • 922336c064 Merge branch 'reader-redesign': reader v2 — immersive chrome, annotations, search, touch, webtoon v0.9.0 john-okeefe 2026-08-18 09:53:10 -04:00
  • 243d369d21 fix(reader): pin foliate-js e448d36 — webtoon pages now load john-okeefe 2026-08-18 08:34:44 -04:00
  • e500039d1b feat(reader): webtoon reading mode + brightness/contrast/night filters john-okeefe 2026-08-18 08:25:00 -04:00
  • 94be6edceb feat(reader): shortcuts help modal + desktop edge page-turn zones john-okeefe 2026-08-18 07:59:26 -04:00
  • 1a07635605 feat(reader): confirm bookmark creation with a success toast john-okeefe 2026-08-17 14:28:09 -04:00
  • 206db93587 fix(reader): PDF contents drawer rendered nothing — duplicate x-for keys john-okeefe 2026-08-17 14:14:33 -04:00
  • fd4c357d39 feat(reader): page thumbnails tab + reliable PDF contents john-okeefe 2026-08-17 13:55:21 -04:00
  • dc68d03360 fix(reader): both toolbars showed below 768px — cascade-layer conflict john-okeefe 2026-08-17 13:42:02 -04:00
  • 6cd0fb226a feat(reader): mobile-pattern toolbar — compact row + ⋯ overflow menu under 768px john-okeefe 2026-08-17 13:35:14 -04:00
  • f283903e2b feat(reader): relocate back-to-location, add recenter control, wrap bottom bar on small windows john-okeefe 2026-08-17 13:23:59 -04:00
  • 34a27a5951 fix(reader): PDF highlights offset from the words — wrong fraction denominator john-okeefe 2026-08-17 08:33:11 -04:00
  • 1905feceea fix(reader): PDF search returned nothing — reactive proxy broke pdf.js; add back-to-location john-okeefe 2026-08-17 08:23:57 -04:00
  • 6fc4107e3c feat(reader): in-book search for PDFs john-okeefe 2026-08-17 08:04:30 -04:00
  • 5e73b0a4f6 feat(reader): in-book search for reflowable formats john-okeefe 2026-08-17 07:58:03 -04:00
  • eb09a5d939 fix(reader): PDF highlights never appeared — isPDF read too early + overlay shrunk by pdf.js transform john-okeefe 2026-08-17 07:47:03 -04:00
  • a05b0167ad feat(reader): PDF text highlights via fraction-rect annotations john-okeefe 2026-08-16 12:48:09 -04:00
  • 40d70513da feat(reader): EPUB highlights & notes — selection popover, overlayer rendering, annotations drawer john-okeefe 2026-08-16 12:33:55 -04:00
  • bd7d71a284 build(vite): remove stale hashed chunks after each build john-okeefe 2026-08-14 16:06:27 -04:00
  • 24ea9d8a38 feat(reader): touch & mobile — tap zones, gesture engine, mobile sheets john-okeefe 2026-08-14 16:00:19 -04:00
  • a962342ee0 fix(sync): resurrect tombstoned annotations when a newer save re-creates them john-okeefe 2026-08-14 15:42:18 -04:00
  • 14d1a158a0 feat(reader): glass chrome — translucent bars, custom slider, slide-away hide john-okeefe 2026-08-14 15:16:05 -04:00
  • 612f888683 feat(reader): immersive chrome, slide-over drawers, tri-state PDF pointer mode john-okeefe 2026-08-14 14:59:51 -04:00
  • ba95cc3e8b fix(reader): stabilize chrome panels, bookmarks end-to-end, dead UI removal john-okeefe 2026-08-14 09:05:33 -04:00
  • 03cb4c7869 feat(admin): startup hash backfill and hash-conflict resolution API v0.8.5 john-okeefe 2026-08-14 08:53:01 -04:00
  • 8004cb81a5 feat(ui): admin Hash Conflicts page and nav entry john-okeefe 2026-08-14 08:52:33 -04:00
  • 77990d0dc0 feat(scanner): recompute hashes on rescan and flag content duplicates john-okeefe 2026-08-14 08:52:18 -04:00
  • 0c39e04e4a feat(db): hash_conflicts table and backfill/conflict queries john-okeefe 2026-08-14 08:52:05 -04:00
  • 8599e5c250 docs(sync): document SHA-256 fields and format-aware matching in koreader protocol john-okeefe 2026-08-14 08:26:47 -04:00
  • 830741cd65 feat(sidecar): key book map by per-format hashes john-okeefe 2026-08-14 08:26:32 -04:00
  • 48af5d3e14 feat(opds): always send X-Bookhoard-SHA256 on native EPUB downloads john-okeefe 2026-08-14 08:26:14 -04:00
  • 5584bdefb5 feat(koreader): resolve pushes by SHA via BookResolver and return SHA on pull john-okeefe 2026-08-14 08:25:46 -04:00
  • 60a94df8e1 feat(sync): add shared BookResolver with format-aware SHA-256 matching john-okeefe 2026-08-14 08:25:23 -04:00
  • 9b171a0060 fix(scanner): prevent duplicate media item imports john-okeefe 2026-08-14 08:18:36 -04:00
  • b7a9b470a7 chore(deps): pin foliate-js to d4d87a9 via canonical https URL john-okeefe 2026-08-14 08:17:43 -04:00
  • f5d9578375 feat(reader): wire double-page spread setting into web reader john-okeefe 2026-08-14 08:17:25 -04:00
  • 04e2a069d6 fix(dashboard): stop duplicating items after scan completion v0.8.0 john-okeefe 2026-08-10 14:46:13 -04:00
  • 05c7431d86 feat(ui): accordion sidebar panels + wood texture preview swatches john-okeefe 2026-08-10 14:22:46 -04:00
  • 9a62c10803 Merge branch 'new-ui' v0.7.5 john-okeefe 2026-08-10 13:48:06 -04:00
  • 8d65e03555 fix(ui): move theme checkmark when theme changes in Appearance menu new-ui john-okeefe 2026-08-10 13:43:32 -04:00
  • ab465d8e0e feat(ui): adopt book-open brand icon and add SVG favicon john-okeefe 2026-08-10 13:43:13 -04:00
  • 1461273162 fix(sync): wire dead token cleanup queries into daily maintenance runner john-okeefe 2026-08-10 10:43:05 -04:00
  • 598d70f735 feat(admin): editable tunable settings UI with grouped sub-sections john-okeefe 2026-08-10 08:03:02 -04:00
  • 537330e7e0 feat(app): wire settings registry into startup and admin routes john-okeefe 2026-08-10 08:02:41 -04:00
  • 885f6d8187 feat(api): unified tunable settings endpoints with typed validation john-okeefe 2026-08-10 08:02:22 -04:00
  • 936a48405b refactor(background): parameterize sync queue and worker pool constructors john-okeefe 2026-08-10 08:02:02 -04:00
  • 757398bf15 feat(sync): make annotation tombstone TTL configurable john-okeefe 2026-08-10 08:01:45 -04:00
  • d12911d3c8 feat(api): make device rate limits, OPDS page size, and conversion cache configurable john-okeefe 2026-08-10 08:01:28 -04:00
  • 457a38306d feat(auth): make session duration and password rules configurable john-okeefe 2026-08-10 08:01:11 -04:00
  • bc47450653 feat(db): typed tunable system settings + SettingsRegistry john-okeefe 2026-08-10 08:00:52 -04:00
  • 89ea310414 Merge remote-tracking branch 'origin/main' john-okeefe 2026-08-08 15:43:16 -04:00
  • 4b152bbe4e fix(templates): use expression attributes and fix indentation john-okeefe 2026-08-08 15:40:15 -04:00
  • 64ad10b3f2 feat(admin): add scan settings + system information to settings page john-okeefe 2026-08-07 23:37:14 -04:00
  • a42232e67a fix(admin): expandable sidebar section + library manage toggle john-okeefe 2026-08-07 23:29:01 -04:00
  • 006cc0c2c9 chore(frontend): slim admin.ts, remove dead library.ts john-okeefe 2026-08-07 09:35:47 -04:00
  • 706be09dec feat(admin): redesign library management with HTMX expandable rows + stats dashboard john-okeefe 2026-08-07 09:35:39 -04:00
  • a87c8afc22 refactor(admin): remove separate sidebar, integrate admin nav into main sidebar john-okeefe 2026-08-07 09:35:30 -04:00
  • 2976dad4e5 Merge branch 'new-ui' into main v0.6.0 john-okeefe 2026-08-06 15:24:48 -04:00
  • acc9d08c60 fix: embed time/tzdata so time.LoadLocation works in Alpine container john-okeefe 2026-08-06 15:18:22 -04:00