L'admin mélangeait pipeline legacy et récent (onglet "Queue" pointait vers
geocode_queue mort → erreur "Cannot read properties of undefined (reading
'reduce')"), dispersait les logs (Monitor/Historique/Jobs) et les actions
(Géocodage/Jobs/Checkpoints) sur des onglets séparés sans lien entre eux.
Nouvelle nav (5 onglets) :
- Vue d'ensemble : stats bands + genre/pays (ex-Dashboard) + cartes live
auto-refresh 15s (crawl en cours, géocodage, jobs en attente, file
d'enrichissement) — fusion Dashboard+Monitor+Queue.
- Groupes : liste bands inchangée + filtre "Conflits seulement" (nouveau
has_conflict sur GET /admin/api/bands) ; le modal band affiche maintenant
une section "Conflits en attente" resolvable inline (garder ma valeur /
accepter Metal Archives) — remplace l'onglet Conflits séparé.
- Activité : liste chronologique unique (GET /admin/api/activity, fusion
crawl_run tous types + admin_audit_log), cliquable → dialog avec logs
complets du run (GET /admin/api/logs?run_id=) ou diff avant/après pour une
action admin. Remplace Crawl runs + Historique + Audit + la liste de jobs
de l'ex-onglet Jobs.
- Actions : toutes les commandes (crawl, géocodage, maintenance) sur une
seule page, groupées, chaque bouton vérifié contre son endpoint réel +
checkpoints en lecture seule. Remplace Jobs + les boutons de Géocodage.
- LLM : inchangé.
Backend
- endpoints morts supprimés (audit-log, conflicts liste, crawl-runs liste —
tous remplacés par /admin/api/activity ou le filtre has_conflict) ;
vérifié 1:1 qu'aucun appel front ne pointe vers un endpoint disparu et
qu'aucun endpoint restant n'est orphelin.
- GET /admin/api/bands : nouveau filtre has_conflict.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>