CDL Copilot · production · VPS srv1899780

Déploiement 5938a7f

Lundi 21 septembre 2026 — 3 commits depuis 9dd2092 · front, motion system, tests e2e

Les 4 contrôles demandés

#VérificationRésultat
1Conteneur sain
docker compose ps
OKUp (healthy)
2Sonde
GET /api/health
OK — HTTP 200
{"statut":"ok"}
3/api/events → 401, PAS 307
POST /api/events -d '{}'
OK — HTTP 401
{"erreur":"non autorisé"}
4La 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) 5938a7ffix(accueil): give the Tour de France table its columns back
Branchemain (fast-forward depuis 9dd2092, sans conflit)
Image construite21/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 :

AffirmationContrôle
Aucune migration SupabaseConfirmésupabase/migrations/ vide dans le diff
Aucune nouvelle variable d'environnementConfirmé.env.example non touché
Aucune dépendance ajoutéeConfirmépackage.json + package-lock.json non touchés
Uniquement du front et des testsConfirmé — 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 modulessrc/lib/mouvement.ts, mouvement-client.ts, indicateur-glissant.tsx, compteur-anime.tsx
Erreurs console0

Capture — accueil après déploiement

Accueil CDL Copilot après déploiement du commit 5938a7f
Compte formateur de test (zz-test-copilot-formateur@exemple.invalid) — 21/09/2026 18:14. Sidebar navy, police Instrument Sans, cartes et jauges rendues : le CSS est bien appliqué. « Vos prochaines sessions » s'affiche, donc la clé service_role fonctionne aussi sur ce build.

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.