Sobre el proyecto
# Programador de reinicio de sesión de Claude Code
## Resumen
Esta es una herramienta de automatización basada en GitHub Actions que gestiona reinicios de sesión de Claude Code de forma programada. El sistema activa reinicios automáticos en momentos estratégicamente elegidos para alinearse con los períodos de trabajo típicos, asegurando que los usuarios tengan una ventana de uso renovada de 5 horas cuando la necesiten.
## Capacidades clave
### Gestión automatizada de sesiones
- Activa cuatro reinicios diarios de sesión alineados con períodos de trabajo comunes.
- Usa un sistema de cuenta regresiva de 5 horas entre el disparador y el evento de reinicio.
- Horario personalizable mediante expresiones cron.
### Monitoreo de salud
- Verificaciones Q&A integradas (ej., «1+1=?») para confirmar el funcionamiento de Claude Code.
- Registra los resultados de las verificaciones de salud con marcas de tiempo.
- Verifica que el sistema esté operativo antes de marcar los reinicios como completados.
### Soporte multi-token
- Configura tokens OAuth primarios y de respaldo para mayor fiabilidad.
- Rastrea la actividad por token en los registros.
- Redundancia si un token falla.
### Registro de actividad
- Archivos CSV mensuales almacenados en `logs/YYYYMM-session-log.csv`.
- Los registros incluyen marca de tiempo, tipo de evento, ID de token y hora de reinicio.
- Los commits automáticos de Git preservan el historial de registros.
### Protección contra tiempos de espera
- Tiempo de espera a nivel de trabajo: 5 minutos.
- Tiempo de espera a nivel de paso: 2 minutos por acción.
- Evita que ejecuciones descontroladas consuman recursos.
## Horario predeterminado (UTC+8)
| Hora de disparo | Hora de reinicio | Cobertura |
|------------|-----------|----------|
| 05:23 | 10:00 a. m. | Período de trabajo matutino |
| 10:23 | 3:00 p. m. | Período de trabajo vespertino |
| 17:23 | 10:00 p. m. | Período de trabajo nocturno |
| 22:23 | 3:00 a. m. (día siguiente) | Cobertura de madrugada |
Cada disparo se activa 5 horas antes de la hora de reinicio deseada. El sistema usa los minutos `:23` para evitar la congestión de ejecución de GitHub Actions.
## Instrucciones de configuración
1. **Generar token OAuth**: ejecute `claude setup-token` y copie el token generado.
2. **Agregar secretos**: configure `CLAUDE_CODE_OAUTH_TOKEN_1` y opcionalmente `CLAUDE_CODE_OAUTH_TOKEN_2` en la configuración del repositorio de GitHub.
3. **Habilitar Actions**: asegúrese de que el repositorio tenga el permiso `id-token: write` para GitHub Actions.
4. **Activar**: envíe el archivo de flujo de trabajo para activar el programador.
## Personalización
Edite `.github/workflows/auto-checkin.yml` para modificar las programaciones cron. La fórmula de tiempo es:
```
Hora de disparo + 5 horas = Hora de reinicio de sesión
```
Ejemplos:
- Reinicio diario único a las 9:00 a. m.: use cron `23 20 * * *` (4:23 a. m. UTC activa el reinicio a las 9:00 a. m. UTC+8).
- Dos veces al día a las 10:00 a. m. y 4:00 p. m.: use cron `23 21,3 * * *`.
## Pruebas
- **GitHub Actions**: vaya a la pestaña Actions y ejecute el flujo de trabajo manualmente.
- **Pruebas locales**: `uv run --python 3.13 python src/log_qa_check.py --token TOKEN_1`.
## Estructura de archivos
```
.github/workflows/auto-checkin.yml # Configuración del programador
src/log_qa_check.py # Script de Q&A y registro
logs/YYYYMM-session-log.csv # Registros de actividad mensuales
```
## Solución de problemas
- **Errores OAuth**: regenere el token con `claude setup-token` y verifique que los nombres de los secretos coincidan exactamente.
- **Tiempos de espera del flujo de trabajo**: asegúrese de que esté implementada la versión más reciente con protecciones de tiempo de espera.
- **Horarios incorrectos**: verifique las conversiones UTC y recuerde que GitHub Actions puede tener ligeros retrasos de ejecución.
- **Sin registros**: verifique el estado de autenticación de Claude y pruebe localmente antes de depender de la automatización.
## Seguridad
- Nunca codifique tokens en el código fuente.
- Use GitHub Secrets para todos los valores sensibles.
- Rote los tokens OAuth periódicamente.
- Limite el acceso al repositorio a colaboradores de confianza.
El proyecto incluye Registros de Decisiones de Arquitectura (ADR) que documentan las decisiones de diseño sobre optimización de programación, configuración de tiempos de espera e implementación de verificación de salud.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.