feat(backoffice): améliorer les détails de job avec historique des phases

- Ajoute migration 0015 : colonne phase2_started_at sur index_jobs
- Indexer : renseigne phase2_started_at lors du passage à generating_thumbnails
- API : expose phase2_started_at et book_id dans IndexJobDetailResponse
- Page détail : timeline avec durée de chaque phase (Discovery / Thumbnails)
- Page détail : banners contextuels (success/failed/cancelled) avec résumé en une ligne
- Page détail : description textuelle du type de job, durée dans l'overview
- Page détail : stats normalisées selon le type (index vs thumbnail-only)
- JobRow : affiche le type via JobTypeBadge (cohérence visuelle)
- Badge : labels lisibles pour tous les types de jobs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 16:40:01 +01:00
parent ff59ac1eff
commit 278f422206
6 changed files with 325 additions and 88 deletions

View File

@@ -94,8 +94,11 @@ const jobTypeVariants: Record<string, BadgeVariant> = {
};
const jobTypeLabels: Record<string, string> = {
rebuild: "Index",
full_rebuild: "Full Index",
thumbnail_rebuild: "Thumbnails",
thumbnail_regenerate: "Regenerate",
thumbnail_regenerate: "Regen. Thumbnails",
cbr_to_cbz: "CBR → CBZ",
};
interface JobTypeBadgeProps {