activitySummary() injectait crawl_run.error en innerHTML sans échappement. Ce message provient d'exceptions du crawler, qui contiennent du contenu scrapé sur Metal Archives — donc influençable depuis l'extérieur. api() n'avait aucun timeout : une API muette (pool DB saturé, upstream nginx silencieux) laissait la vue bloquée sur « Chargement… » indéfiniment. reset-errors vise désormais aussi les lignes coincées en 'processing', en forçage manuel du mécanisme d'auto-réparation du worker. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| migrations | ||
| src | ||
| test | ||
| .dockerignore | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||