What's new
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.80
(or :latest)
Foundation-only patch — no user-visible change yet. This is the second of five PRs landing the upcoming Kobo highlight feature: upload your KoboReader.sqlite, see every highlight in a browser view, export as Markdown / CSV / JSON, and overlay them in the in-browser EPUB reader.
Kobo position → EPUB CFI converter (#239)
New service module that takes a Kobo Bookmark row's position fields and produces a CFI string that epub.js can use directly to highlight the right text on a page. The 99.3%-proven prototype from May's research session is now production code — DOM parser replaces the regex that caused the prototype's one nested-span failure, and parsed spines + chapter trees get cached per-EPUB so a book with 100 highlights doesn't re-parse the chapter HTML 100 times.
Verified against 145 real highlights from a real device: 100% round-trip, up from the prototype's 99.3%.
Also includes belt-and-suspenders preservation tests for the v4.0.78 schema migration: a 100-row populated pre-migration DB is now mechanically pinned to be bit-exact identical after the migration runs (highlighted_text, note_text, highlight_color, and every other pre-existing column). Upgrade-safety claim is now tested, not just argued for.
The user-visible payoff still arrives in v4.0.81+ as P3 (import endpoint), P4 (view + Markdown / CSV / JSON export), and P5 (web-reader overlay rendering) ship.