Files
bookhoard/web
john-okeefe e584200369 feat(reader): send context_text with progress for reflowable EPUBs
The web reader now captures ~100 chars of visible text from the
foliate relocate event's range and includes it as context_text in
the progress PUT body for reflowable formats.

This enables the server's reverseByTextSearch fallback in
ConvertStandardToCRE, which is critical for single-file EPUBs
(e.g. 1984) where foliate emits coarse or fake-section CFIs that
CREngine cannot directly resolve. Previously only the KOReader
plugin sent context_text; the web reader's omission left the
fallback unusable, causing percentage-based position estimation
that was off by ~1 page.

Changes:
- Add contextText state property (line 387)
- Extract visible text from e.detail.range in relocate handler,
  normalize whitespace, and slice to 100 chars (lines 508-512)
- Include context_text in saveProgress PUT body for reflowable
  EPUBs only, alongside epubcfi (line 575)

The server-side chain was already wired: media.go accepts it,
progress.go stores it, and koreader.go passes it to the CFI
converter. No Go changes needed.
2026-06-07 11:45:33 -04:00
..