Les 4 contrôles demandés
| # | Vérification | Résultat |
|---|---|---|
| 1 | Conteneur sain docker compose ps |
OK — Up (healthy) |
| 2 | Sonde GET /api/health |
OK — HTTP 200 {"statut":"ok"} |
| 3 | /api/events → 401, PAS 307 POST /api/events -d '{}' |
OK — HTTP 401 {"erreur":"non autorisé"} |
| 4 | La page a du style .next/static + public/ copiés |
OK — 14/14 assets en 200 CSS appliqué (voir capture) |
Commit effectivement déployé
| Commit (git log -1) | 5938a7f — fix(accueil): give the Tour de France table its columns back |
| Branche | main (fast-forward depuis 9dd2092, sans conflit) |
| Image construite | 21/09/2026 18:10:31 UTC — 394d70054678 |
| Conteneur démarré | 21/09/2026 18:10:40 UTC |
Ce que le commit contient — vérifié avant le build
Les 4 affirmations du message ont été contrôlées sur le diff réel 9dd2092..5938a7f, pas sur parole :
| Affirmation | Contrôle |
|---|---|
| Aucune migration Supabase | Confirmé — supabase/migrations/ vide dans le diff |
| Aucune nouvelle variable d'environnement | Confirmé — .env.example non touché |
| Aucune dépendance ajoutée | Confirmé — package.json + package-lock.json non touchés |
| Uniquement du front et des tests | Confirmé — 43 fichiers, src/ + tests/e2e/ + globals.css |
Contrôle de non-régression : aucune ligne supprimer_inscription / annuler_paiement retirée — les deux portes vivantes restent intactes.
Le motion system est bien dans l'image
Les nouveaux tokens CSS sont présents dans la feuille de style servie, et appliqués par le navigateur :
| Tokens dans le CSS | --duree-bascule, --duree-entree, --duree-sortie, --duree-pression, --duree-menu-entree, --duree-menu-sortie, --ease-doux, --ease-entree |
| Valeur calculée en page | --duree-bascule: .2s · --ease-entree: cubic-bezier(.2,0,0,1) |
| Nouveaux modules | src/lib/mouvement.ts, mouvement-client.ts, indicateur-glissant.tsx, compteur-anime.tsx |
| Erreurs console | 0 |
Capture — accueil après déploiement
Un point observé, à surveiller
Une connexion sur sept a affiché l'accueil « membre » (à zéros) au lieu de l'accueil formateur, juste après le redémarrage du conteneur. Reproduit une fois sur 7 essais — 6/6 corrects ensuite.
Mécanique : page.tsx fait if (profilCourant && estFormateur(role)) → accueil formateur, sinon accueil membre. Si chargerProfilCourant() revient null transitoirement, le formateur tombe sur l'accueil membre.
Aucune fuite de données : la RLS a bien tenu — les vues d'exploitation renvoyaient [] à ce compte, d'où les zéros. C'est un défaut d'affichage, pas de sécurité. Non causé par ce déploiement : page.tsx et roles.ts ne figurent pas dans le diff 9dd2092..5938a7f.