Le refresh token est rotatif : la chaîne se régénère seule indéfiniment tant que le nouveau token est persisté. La reconnexion manuelle n'était requise que lorsque cet invariant cassait. Trois correctifs : - Refresh PROACTIF : on rafraîchit dès qu'il reste < 2h sur le token (~8h de vie) au lieu des 2 dernières minutes. Un échec transitoire a des heures de marge avant que l'access token meure ; la fenêtre où un kill/timeout perd le token rotatif fraîchement rotaté passe de ~8h à quelques ms. Réglable via MONITORINK_CLAUDE_REFRESH_LEAD_MIN (défaut 120). - Distinction FATAL vs TRANSITOIRE : 400 invalid_grant / 401 sur l'endpoint token -> _RefreshFatal, sans backoff ni re-soumission en boucle (évite la reuse-detection qui révoque toute la famille). 429/5xx/réseau gardent le backoff exponentiel. - Visibilité + auto-réparation : le cas fatal affiche "Reconnexion Claude requise" (pas de repli cache silencieux) et l'alerte se referme seule dès qu'un token frais réapparaît sur disque (re-login isolé), sans redémarrer le conteneur. Timeout du POST de refresh porté à 45s (réglable, MONITORINK_CLAUDE_REFRESH_TIMEOUT) pour réduire la fenêtre de perte du token après rotation serveur. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.5 KiB
7.5 KiB