fix(reader): stop sending epubcfi for fixed-layout documents

The web reader's saveProgress always sent epubcfi: cfi || "", even
for fixed-layout comics/PDFs. Foliate's comic renderer generates a
fake CFI (epubcfi(/6/{n})) for every page via CFI.fake.fromIndex,
which the server stored as a valid locator. These fake CFIs are
meaningless — the page index is the canonical locator for image-based
content — and they caused koreader to crash on pull (see prior commit).

Only set epubcfi in the request body for reflowable documents.
This commit is contained in:
2026-06-07 00:27:04 -04:00
parent 762181c123
commit 9bd23fc1d7
+3 -1
View File
@@ -562,9 +562,11 @@ document.addEventListener("alpine:init", () => {
? this.book?.sections?.filter((s: any) => s.linear !== "no")
?.length ?? 0
: location?.total ?? 0,
epubcfi: cfi || "",
reading_mode: this.readingMode || undefined,
};
if (!this.isFixedLayout) {
body.epubcfi = cfi || "";
}
const tocItem = this.lastRelocateDetail?.tocItem;
if (tocItem) {