Date: 20/01/2026 00:05 Status: TERMINÉ
Le dashboard ai-jobs.html ne montrait pas les jobs en temps réel. Les compteurs se mettaient à jour mais pas la grille des jobs.
Erreur btoa Unicode : btoa() ne supporte pas les caractères Unicode. Les jobs avec du texte français causaient l'erreur InvalidCharacterError: The string to be encoded contains characters outside of the Latin1 range
Hash check bloquant : Un check de hash empêchait parfois la mise à jour de la grille
Jobs zombies : Des vieux jobs restaient en status "running" dans PostgreSQL/Redis
// Encodage (dans updateJobsGrid)
const jobB64 = btoa(unescape(encodeURIComponent(JSON.stringify(job))));
// Décodage (dans showJobDetails)
const job = JSON.parse(decodeURIComponent(escape(atob(jobB64))));
Le hash check a été retiré pour forcer la mise à jour de la grille à chaque poll.
# PostgreSQL - Marquer les jobs running comme failed
docker exec supabase-db-prod psql -U supabase_admin -d postgres -c \
"UPDATE ai_jobs SET status = 'failed', error_message = 'Job zombie', completed_at = NOW() WHERE status = 'running';"
# Redis - Supprimer current_tool obsolète
docker exec redis-prod redis-cli -a PASSWORD DEL 'ai:current_tool'
const API_BASE = 'https://ai-orchestrator.33800.nowhere84.com';
| Outil | Status | Durée |
|---|---|---|
| Bark | ✅ | 25s |
| ComfyUI | ✅ | 95s |
| FaceFusion | ✅ | 21s |
| Ollama | ✅ | 12s |
| MusicGen | ✅ | 142s |
| SadTalker | ✅ | 69s |
| TripoSR | ✅ | 20s |
7/10 outils testés via jobs - Tous fonctionnels
/stock_8to/33800-stack/monitoring/generate.d/20-ai-jobs.shLive refresh : La page ai-jobs.html appelle l'API toutes les 5 secondes, pas besoin de régénérer le dashboard pour voir les nouveaux jobs
Paramètres jobs : Chaque outil a ses propres noms de paramètres
source_image, driven_audioimage_filesource_file, target_filetext, voicemodel, promptFichiers inputs : Doivent être dans /stock_8to/33800-stack/ai-data/inputs/ (pas d'URLs)
Nettoyage zombies : Si des jobs restent "running" alors que rien ne tourne sur win11, les marquer failed via PostgreSQL
Régénération inutile : J'ai passé trop de temps à régénérer le dashboard au lieu de debugger le JavaScript côté client. Le live refresh est censé fonctionner SANS régénération.
Mauvais paramètres de test : J'ai soumis des jobs avec des noms de paramètres incorrects (image_url au lieu de source_image, image_path au lieu de image_file), causant des échecs qui n'étaient pas des bugs du système.
Modification excessive : Au lieu de trouver la cause racine (btoa Unicode), j'ai modifié plein de trucs inutilement (hash check, template literals, etc.)
Pas de vérification du déploiement : Je n'ai pas vérifié que les modifications étaient bien déployées sur O2switch avant de demander à l'utilisateur de tester.
Temps perdu : ~2 heures pour un problème qui aurait dû être résolu en 15 minutes.
Debugger côté client d'abord : Quand le JS ne fonctionne pas, regarder la console du navigateur AVANT de modifier le code.
Vérifier le déploiement : Toujours vérifier que le fichier sur O2switch contient bien les modifications (wget -q -O - URL | grep "pattern").
Ne pas régénérer pour du live : Le dashboard ai-jobs utilise le live refresh JavaScript. Les nouvelles données viennent de l'API, pas de la régénération.
Tester avec les bons paramètres : Vérifier la documentation des outils avant de soumettre des jobs de test.
a3c2f1f - Fix base64 decode for detailsa159955 - Fix grid update - use string concat293f3bc - Remove hash check - force grid update9e9f351 - Fix live refresh (API URL HTTPS)6e72ac2 - Fix live refresh: btoa unicode + remove hash check (GitLab)