- Templates paramétrés (data/workflows/templates/) : substitution de variables
({{modele_checkpoint}}, {{resolution}}, {{resolution_largeur/hauteur}},
{{vram_profile}}) — jamais de réécriture de topologie (PRD §4.6)
- Génération de JSON concrets (/workflows) + régénération automatique à chaque
écriture du registre, commit git ; suppression si le modèle disparaît
- Champ comfyui_checkpoint ajouté au schéma et au formulaire registre ;
génération refusée tant qu'il est null (anti-hallucination)
- Smoke test : prompt canari sans modèle (EmptyImage→PreviewImage) posté sur
COMFYUI_URL/prompt, statut remonté dans l'UI, dégradation gracieuse
- Endpoint de téléchargement /workflows/fichier/[nom]
- Tests : 11 nouveaux cas (substitution, conversion numérique, variable
inconnue, paliers VRAM, résolution invalide, checkpoint null, smoke test
accepté/refusé/injoignable)
- Package YNH : question comfyui_url + COMFYUI_URL dans l'env applicatif
- Vérifié : check/lint/test (38)/build verts, autofixer propre, test fumée
HTTP complet (seed templates, refus sans checkpoint, génération, JSON
concret correct, téléchargement, smoke test dégradé, commits git)
veille-ia — application SvelteKit
Voir le README racine pour la vue d'ensemble, le dev local et les variables d'environnement, et SPECS_SVELTE.md pour les conventions de code (prioritaires sur tout choix frontend).
npm ci
npm run dev:local # dev zéro config : DEV_USER=dev + ALERTS_TOKEN=dev-token-local + DATA_DIR=./data
npm run dev # dev nu (lit .env — voir .env.example)
npm run check # svelte-check — 0 erreur / 0 warning exigé
npm run lint # prettier + eslint
npm run test # vitest
npm run build # build adapter-node (BASE_PATH=/veille pour un sous-chemin)
node build/index.js
Test de POST /api/alerts en local (avec dev:local) :
curl -X POST http://localhost:5173/api/alerts \
-H "authorization: Bearer dev-token-local" \
-H "content-type: application/json" \
-d '{"type":"nouvelle_sortie","titre":"Test","resume":"Résumé test.","sources":["https://example.org"],"date":"2026-08-01"}'