Régression worker PDF : le worker pdf.js est désormais instancié une
seule fois via un port dédié (?worker&url) et reconfiguré à chaque
montage, au lieu d'un workerSrc recalculé qui cassait le rendu.
- ReaderShell : chrome commun aux lecteurs (toolbar, zones de tap,
statut) et contrat ReaderControls pour EPUB/PDF/CBZ
- préférences de lecture par livre (mode horizontal/vertical, fit) :
table reader_preferences + migrations idempotentes, module API,
DTO partagés, client web avec fallback localStorage hors-ligne
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Chaîne de résolution metadata (local, Open Library, Google Books, BNF)
avec activation/priorité/clé API par provider, colonnes isbn13 et
identifiers sur les livres, et intégration au scanner pour compléter
métadonnées et jaquettes manquantes. Module automation: réglages
persistés, planifications scan/enrichissement et déclenchement manuel,
exposés via des endpoints admin.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>