nginx ne posait aucun Cache-Control sur index.html. Le navigateur appliquait
son cache heuristique et gardait l'ancien index.html, qui référence les anciens
assets fingerprintés — eux marqués immutable un an. Conséquence : un
déploiement pouvait rester invisible pendant une durée indéterminée, sans
Ctrl+Shift+R. no-cache ne désactive pas le cache, il impose une revalidation :
304 tant que rien ne change, nouveau build dès qu'il change.
Côté page admin, un 401 (jeton absent ou expiré au bout de 30 min) produisait
« Impossible de charger les utilisateurs » — un message qui accuse le serveur
alors que la session est simplement morte, l'interface continuant de croire
l'utilisateur connecté. Les 401 et 403 sont désormais distingués et nommés.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>