À propos du projet
# Planificateur de Réinitialisation de Sessions Claude Code
## Vue d'ensemble
Cet outil d'automatisation basé sur GitHub Actions gère les réinitialisations de sessions Claude Code de manière planifiée. Le système déclenche des réinitialisations automatiques à des moments stratégiquement choisis pour s'aligner sur les périodes de travail typiques, garantissant aux utilisateurs une fenêtre d'utilisation fraîche de 5 heures lorsque nécessaire.
## Fonctionnalités Principales
### Gestion Automatisée des Sessions
- Déclenche quatre réinitialisations quotidiennes alignées sur les périodes de travail courantes
- Utilise un système de compte à rebours de 5 heures entre les événements de déclenchement et de réinitialisation
- Calendrier personnalisable via des expressions cron
### Surveillance de Santé
- Vérifications intégrées par Q&A (par ex. « 1+1=? ») pour confirmer le fonctionnement de Claude Code
- Journalise les résultats des vérifications de santé avec des horodatages
- Vérifie que le système est opérationnel avant de marquer les réinitialisations comme terminées
### Support Multi-Jeton
- Configurez un jeton OAuth principal et un jeton de secours pour fiabilité
- Suit l'activité par jeton dans les journaux
- Redondance en cas d'échec d'un jeton
### Journalisation d'Activité
- Fichiers CSV mensuels stockés dans `logs/YYYYMM-session-log.csv`
- Les enregistrements incluent horodatage, type d'événement, ID du jeton et heure de réinitialisation
- Les commits Git automatisés préservent l'historique des journaux
### Protection contre les Dépassements
- Temps maximal au niveau du job : 5 minutes
- Temps maximal au niveau de l'étape : 2 minutes par action
- Empêche les exécutions incontrôlées de consommer des ressources
## Calendrier par Défaut (UTC+8)
| Heure de Déclenchement | Heure de Réinitialisation | Période couverte |
|------------------------|--------------------------|------------------|
| 05:23 | 10:00 | Période matinale |
| 10:23 | 15:00 | Période après-midi |
| 17:23 | 22:00 | Période du soir |
| 22:23 | 03:00 (jour suivant) | Couverture tardive |
Chaque déclenchement se produit 5 heures avant l'heure de réinitialisation souhaitée. Le système utilise les minutes `:23` pour éviter la congestion des exécutions GitHub Actions.
## Instructions d'Installation
1. **Générer un jeton OAuth** : Exécutez `claude setup-token` et copiez le jeton généré
2. **Ajouter des Secrets** : Configurez `CLAUDE_CODE_OAUTH_TOKEN_1` et optionnellement `CLAUDE_CODE_OAUTH_TOKEN_2` dans les paramètres du dépôt GitHub
3. **Activer les Actions** : Assurez-vous que le dépôt a la permission `id-token: write` pour GitHub Actions
4. **Activer** : Poussez le fichier de workflow pour déclencher le planificateur
## Personnalisation
Modifiez `.github/workflows/auto-checkin.yml` pour ajuster les calendriers cron. La formule de timing est :
```
Heure de Déclenchement + 5 heures = Heure de Réinitialisation de Session
```
Exemples :
- Une seule réinitialisation quotidienne à 9h00 : utilisez cron `23 20 * * *` (4h23 UTC déclenche une réinitialisation à 9h00 UTC+8)
- Deux fois par jour à 10h00 et 16h00 : utilisez cron `23 21,3 * * *`
## Tests
- **GitHub Actions** : Rendez-vous dans l'onglet Actions et exécutez manuellement le workflow
- **Test local** : `uv run --python 3.13 python src/log_qa_check.py --token TOKEN_1`
## Structure des Fichiers
```
.github/workflows/auto-checkin.yml # Configuration du planificateur
src/log_qa_check.py # Script Q&A et journalisation
logs/YYYYMM-session-log.csv # Registres d'activité mensuels
```
## Dépannage
- **Erreurs OAuth** : Régénérez le jeton avec `claude setup-token` et vérifiez que les noms des secrets correspondent exactement
- **Dépassements de workflow** : Assurez-vous que la dernière version avec les protections de délai est déployée
- **Heures incorrectes** : Vérifiez les conversions UTC et gardez à l'esprit que GitHub Actions peut subir de légers retards d'exécution
- **Pas de journaux** : Vérifiez le statut d'authentification de Claude et testez localement avant de compter sur l'automatisation
## Sécurité
- Ne jamais coder les jetons en dur dans le code source
- Utiliser GitHub Secrets pour toutes les valeurs sensibles
- Rotation périodique des jetons OAuth
- Limiter l'accès au dépôt aux contributeurs de confiance
Le projet inclut des Architecture Decision Records (ADRs) documentant les choix de conception autour de l'optimisation du scheduling, de la configuration des timeouts et de l'implémentation des vérifications de santé.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.