Die max()-Semantik aus v14 verglich nur die grobe scroll_fraction. Da scroll_fraction und position_anchor gemeinsam, aber entkoppelt gespeichert werden, konnte ein einzelner Save mit transient zu hoher fraction (z.B. instabiles Layout beim Laden) die Position dauerhaft einfrieren: jeder spätere echte Fortschritt hatte eine kleinere fraction und wurde inklusive Anker verworfen — der Leser landete immer wieder an derselben Stelle. Fix: Vergleich läuft jetzt über den Blockindex im Anker (die Größe, die auch die Sprungposition bestimmt), mit innerFraction als Tiebreaker. scroll_fraction dient nur noch als Fallback für PDFs ohne Anker. Server (_progress_is_further) und Client (_cmpProgress) nutzen identische Logik; loadBookList-Push und lokaler Cache ebenfalls. Bestehende eingefrorene Einträge entfrieren sich beim ersten Weiterlesen selbst. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| css | ||
| js | ||
| icon-192.png | ||
| icon-512.png | ||
| manifest.json | ||