Commit Graph

72 Commits

Author SHA1 Message Date
03c8657df9 fix(web): lecteur mobile — précharger les pages CBZ verticales en profondeur via un préchargeur concurrent (batch RAF des tailles d'images, tracking resynchronisé au scroll) pour éliminer les black screens sur les pages lointaines (3e correctif bug #42) 2026-08-26 17:39:28 +02:00
5f63faa648 merge: fix/42-reader-vertical-black-screen-persistent dans develop (fallback page-sized étendu au PDF vertical mobile — 2e correctif #42) 2026-08-26 17:14:18 +02:00
ab77d129d3 fix(web): lecteur mobile — étendre le fallback page-sized aux frames PDF verticales non rendues (même cellule grid que le canvas, fond papier stable) pour éliminer les black screens d'environ 1s au scroll vertical PDF (2e correctif bug #42) 2026-08-26 17:14:11 +02:00
5fda6b8895 merge: fix/42-reader-vertical-black-flash dans develop (fallback page-sized pour pages CBZ verticales non chargées, plus de flash noir au scroll — correctif #42) 2026-08-26 13:46:22 +02:00
5fc70d39b7 fix(web): lecteur mobile — couvrir les pages CBZ verticales non chargées par un fallback de la taille de la page (même cellule grid, fond papier stable) pour éliminer les flashs noirs pendant le scroll vertical (bug #42) 2026-08-26 13:46:17 +02:00
6b164d4bde merge: feature/41-reader-mobile-tap-pinch dans develop (header au tap uniquement en vertical mobile + pinch-to-zoom — évolution #41) 2026-08-26 13:33:14 +02:00
d7dfb46549 feat(web): lecteur mobile — révéler le header au tap uniquement en vertical sur téléphone (scroll/wheel passifs ignorés) et piloter le zoom au pinch à deux doigts borné par les mêmes limites que les boutons, via nouveau module readerGestures (évolution #41) 2026-08-26 13:33:12 +02:00
c996ae24f5 merge: fix/40-reader-mobile-bar-overflow dans develop (barre lecteur compactée et wrappée sur mobile, plus de rognage à droite — correctif #40) 2026-08-26 13:12:10 +02:00
b26116fbe3 fix(web): lecteur mobile — compacter la barre du lecteur sur téléphone (wrap flex, libellés secondaires masqués, navigation/plein écran en icônes, select de mode réductible) pour éliminer le rognage à droite (bug #40) 2026-08-26 13:12:05 +02:00
edaad8f667 merge: fix/39-reader-vertical-scroll-firefox dans develop (stage vertical ancré en haut + overflow-anchor désactivé, correctif Firefox — 7e correctif #39) 2026-08-26 12:40:00 +02:00
b2e7dc5b16 fix(web): lecteur — ancrer le stage vertical en haut du contenu (align-items/align-self: start, height auto) et désactiver l'overflow-anchor du stage pour éviter le centrage overflow au milieu du livre spécifique à Firefox (7e correctif bug #39) 2026-08-26 12:39:53 +02:00
937edd562f merge: fix/39-reader-vertical-scroll-reentry dans develop (sync initiale verticale réévaluée à chaque frame — 6e correctif #39) 2026-08-26 11:59:40 +02:00
3cac26c1fa fix(web): lecteurs CBZ/CBR et PDF — évaluer la capacité de défilement du cadre à chaque frame de la sync initiale au lieu d'abandonner avant rendu du contenu (6e correctif bug #39) 2026-08-26 11:59:35 +02:00
1865be5bd9 merge: fix/39-reader-vertical-scroll-regression dans develop (sync initiale de la page visible en vertical avec garde anti-boucle — 5e correctif #39) 2026-08-26 11:48:39 +02:00
4363f8e31a fix(web): lecteurs CBZ/CBR et PDF — synchroniser la page visible au chargement en mode vertical avec garde anti-boucle, alignée sur le scroll initial réel (5e correctif bug #39) 2026-08-26 11:48:37 +02:00
bf646f3b48 merge: fix/39-reader-vertical-scroll-tracking dans develop (suivi de page vertical assoupli — 4e correctif #39) 2026-08-26 11:35:30 +02:00
9393cd5724 fix(web): lecteurs CBZ/CBR et PDF — assouplir le suivi de page en vertical: commit initial après stabilisation de l'ancrage et ré-ancrage si la page change sans scroll utilisateur (4e correctif bug #39) 2026-08-26 11:35:26 +02:00
529893ece6 merge: fix/39-reader-vertical-scroll-rendering dans develop (ancrage vertical stabilisé et suivi de page conditionné au scroll utilisateur — 3e correctif #39) 2026-08-26 11:23:30 +02:00
4e40a7a236 fix(web): lecteurs CBZ/CBR et PDF — stabiliser l'ancrage vertical jusqu'à stabilisation du rendu et ne suivre la page visible qu'après un vrai scroll utilisateur (3e correctif bug #39) 2026-08-26 11:23:28 +02:00
8a4451ef52 merge: fix/39-reader-vertical-scroll-anchor dans develop (ancrage de la page courante au passage en mode vertical — correctif complémentaire #39) 2026-08-26 10:35:15 +02:00
53e681565e fix(web): lecteurs CBZ/CBR et PDF — ancrer la page courante au passage en mode vertical une fois les pages rendues, sans saut au milieu (correctif complémentaire bug #39) 2026-08-26 10:34:56 +02:00
da7206440f merge: fix/39-reader-vertical-scroll-position dans develop (défilement vertical — ancrage de restauration recalculé sur la plage de défilement réelle, plus d'ouverture au milieu du livre) 2026-08-26 10:11:08 +02:00
fa2d4b8d98 fix(web): lecteur défilement vertical — calculer le ratio de position sur la plage de défilement réelle pour ne plus rouvrir au milieu du livre (bug #39) 2026-08-26 10:10:57 +02:00
f53419c9c8 merge: fix/38-reader-vertical-scroll-restore dans develop (page réinitialisée à l'ouverture d'un livre — départ en haut en mode vertical) 2026-08-24 16:58:28 +02:00
b15920c441 fix(web): lecteur mode vertical — réinitialiser la page à l'ouverture d'un autre livre pour démarrer en haut du document (bug #38) 2026-08-24 16:58:25 +02:00
e65cc166c8 merge: fix/37-reader-webtoon-cbz-naturalwidth dans develop (naturalWidth capturé avant neutralisation currentTarget) 2026-08-24 16:32:32 +02:00
4d5f7cfb07 fix(web): lecteur CBZ/CBR mode vertical — capturer naturalWidth/naturalHeight avant neutralisation de currentTarget par React (régression #37) 2026-08-24 16:32:27 +02:00
902cf8560b merge: fix/37-reader-webtoon-cbz-crash dans develop (error boundary lecteur — crash CBZ/CBR vertical contenu) 2026-08-24 16:19:59 +02:00
b5ec6a8e97 fix(web): lecteur CBZ/CBR mode vertical — crash React contenu par error boundary avec actions de récupération (régression #37) 2026-08-24 16:19:52 +02:00
c31d76a2a9 merge: fix/37-reader-webtoon-cbz-regression dans develop (images CBZ visibles en mode vertical) 2026-08-24 15:45:36 +02:00
0af8a7521e fix(web): lecteur CBZ/CBR mode vertical — images masquées avant connaissance des dimensions (régression #37) 2026-08-24 15:45:31 +02:00
6148368278 merge: feature/37-reader-webtoon-scroll dans develop (mode lecture vertical webtoon) 2026-08-24 15:26:13 +02:00
f7e88c6bc0 feat(web): mode de lecture vertical type webtoon — pages empilées, défilement souris/flèches, préférence persistée 2026-08-24 15:26:06 +02:00
3d211f7feb merge: fix/36-reader-fullscreen-overlay dans develop (header overlay + auto-hide plein écran) 2026-08-24 15:06:37 +02:00
7055372faf fix(web): plein écran lecteur — header overlay et masquage automatique après 2 s d'inactivité 2026-08-24 15:06:32 +02:00
0b14a94af8 merge: feature/35-reader-fullscreen-keyboard dans develop (plein écran lecteur + flèches clavier) 2026-08-24 14:40:29 +02:00
de099dc9ca feat(web): plein écran du lecteur (natif + fallback) et navigation flèches clavier durcie 2026-08-24 14:40:23 +02:00
f8069bdfd6 merge: feature/34-reader-zoom dans develop (option de zoom du lecteur PDF/CBZ) 2026-08-24 14:28:59 +02:00
fcf1760031 feat(web): zoom du lecteur — contrôles +/−/reset (50–300 %) sur PDF et CBZ 2026-08-24 14:28:53 +02:00
b3bd678291 fix(web,api): lecteur PDF — options pdf.js, assets cmaps/fonts et recherche sans limite par défaut 2026-08-24 14:15:25 +02:00
f8c8ffd45c merge: fix/31-reader-pdf-blank-minimal-stable dans develop (détection pages blanches PDF + lecteur minimal stable)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 12:52:56 +02:00
50a0b392e1 fix(web): lecteur PDF — pages blanches après rendu et base minimale stable
Le canvas PDF restait vide après rendu (blank-detected): la détection d'encre
reposait sur un seuil de blanc trop sensible et un fond de canvas non maîtrisé.
Le rendu passe à un fond sentinel explicite avec classification
rendered-ok/blank-detected et un seuil de pixels visibles.

Le lecteur est par ailleurs ramené à une base minimale stable: layout plein
viewport (app-main-reader), suppression des modes de lecture et des préférences
par livre, helpers de pagination/viewport extraits dans readerLayout.ts. Shell,
lecteurs CBZ/EPUB et styles alignés sur cette base.

Refs #31

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 12:52:49 +02:00
7cc44871d9 merge: feature/metadata-series-reader-batch dans develop (séries/volumes, providers ComicVine/MangaDex, correctifs lecteur PDF/CBZ)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:11:34 +02:00
84e789acc4 fix(web): lecteur PDF/CBZ — pages blanches, timeouts et modes fullscreen
- Rendu PDF via module dédié pdfRender (worker), correction des pages
  blanches et gestion des timeouts de rendu
- Lecteur comics : crop plein écran, locators de page unifiés (pdf/cbz/cbr)
  avec ancrage pour le calcul de progression
- Sauvegarde de progression mise en file (queueSave) pour éviter les
  pertes lors des navigations rapides
- nginx/vite : en-têtes et proxy alignés pour le streaming des livres

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:11:25 +02:00
d79f502dd2 feat(api,web): providers ComicVine + MangaDex et pilotage de l'enrichissement
- Adaptateurs comic-vine et mangadex avec helper de fetch partagé,
  timeouts et fallback durcis sur les providers existants
- Scoring des correspondances amélioré, normalisation de la date de
  publication, chaîne de résolution des providers étendue
- Scanner : statuts par livre (scan/enrichissement) et page admin
  d'automatisation alignée

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:11:18 +02:00
93bb40a8cd feat(api,web): modélisation série + volume et parcours de série
- Table series + colonnes seriesId/volumeNumber/volumeLabel sur les livres,
  extraction souple des numéros (T03, 003, etc.) via extract-series-volume
- Contrôleur et page de série, badge volume sur les cartes de livre,
  styles associés (fond/clarté série, ajustements globaux)
- Statuts de scan/enrichissement et provenance des métadonnées en base

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 09:11:10 +02:00
34159e5e9b chore: ignorer les données runtime générées par le scan (sqlite, covers, métadonnées)
Le pattern data/storage ne couvrait pas apps/api/data généré quand l'API
tourne depuis son répertoire. On ignore désormais tout dossier data/
runtime, qui contient la base SQLite et les covers/métadonnées extraites.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-24 08:00:00 +02:00
77c9892be9 merge: fix/reader-worker-metadata-search dans develop (worker pdf.js, shell lecteur, enrichissement par hints)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 18:07:37 +02:00
18d73a4db6 fix(api,web): enrichissement métadonnées — hints locaux et scoring des correspondances
Recherche de fiches par nom peu fiable : sans ISBN, les providers
étaient interrogés avec des titres bruts peu discriminants.

- extraction de hints locaux (titre/auteur/année/isbn du fichier et du
  nom de fichier) persistés dans books.local_metadata_json
- nouveau use-case ScoreMetadataMatch : tri des résultats par score de
  correspondance avant sélection du meilleur candidat
- providers (google-books, open-library, bnf, local) durcis et nourris
  par les hints ; colonne + index local_metadata_json avec migrations
  idempotentes (création et rebuild legacy)
- web : nettoyage de la description de la fiche livre
  (cleanBookDescription, white-space pre-line)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-23 18:07:29 +02:00
5de46a6f6d fix(web,api): lecteur — worker pdf.js dédié, shell commun et préférences par livre
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>
2026-08-23 18:06:22 +02:00