Sobre o projeto

# Claude Code Session Reset Scheduler ## Visão Geral Esta é uma ferramenta de automação baseada em GitHub Actions que gerencia resets de sessões do Claude Code de forma agendada. O sistema dispara resets de sessão automatizados em horários estrategicamente escolhidos para se alinharem com períodos típicos de trabalho, garantindo que os usuários tenham uma janela de uso de 5 horas renovada quando necessário. ## Principais Capacidades ### Gerenciamento Automatizado de Sessão - Dispara quatro resets de sessão diários alinhados com períodos de trabalho comuns - Utiliza um sistema de contagem regressiva de 5 horas entre os eventos de disparo e reset - Cronograma personalizável via expressões cron ### Monitoramento de Integridade - Verificações integradas de validação de Q&A (ex: "1+1=?") para confirmar a funcionalidade do Claude Code - Registra os resultados da verificação de integridade com carimbos de data/hora - Verifica se o sistema está operacional antes de marcar os resets como concluídos ### Suporte Multi-Token - Configuração de tokens OAuth primários e de backup para confiabilidade - Rastreamento de atividade por token nos logs - Redundância caso um token falhe ### Registro de Atividade - Arquivos de log CSV mensais armazenados em `logs/YYYYMM-session-log.csv` - Os registros incluem carimbo de data/hora, tipo de evento, ID do token e hora do reset - Commits automáticos no Git preservam o histórico de logs ### Proteção contra Timeout - Timeout ao nível de job: 5 minutos - Timeout ao nível de step: 2 minutos por ação - Evita execuções descontroladas que consomem recursos ## Cronograma Padrão (UTC+8) | Hora do Disparo | Hora do Reset | Cobertura | |------------|-----------|----------| | 05:23 | 10:00 AM | Período de trabalho matutino | | 10:23 | 3:00 PM | Período de trabalho vespertino | | 17:23 | 10:00 PM | Período de trabalho noturno | | 22:23 | 3:00 AM (dia seguinte) | Cobertura de madrugada | Cada disparo ocorre 5 horas antes do horário de reset desejado. O sistema utiliza o minuto `:23` para evitar congestionamento na execução do GitHub Actions. ## Instruções de Configuração 1. **Gerar Token OAuth**: Execute `claude setup-token` e copie o token gerado 2. **Adicionar Secrets**: Configure `CLAUDE_CODE_OAUTH_TOKEN_1` e opcionalmente `CLAUDE_CODE_OAUTH_TOKEN_2` nas configurações do repositório GitHub 3. **Habilitar Actions**: Certifique-se de que o repositório tenha a permissão `id-token: write` para o GitHub Actions 4. **Ativar**: Faça o push do arquivo de workflow para acionar o agendador ## Customização Edite `.github/workflows/auto-checkin.yml` para modificar os cronogramas cron. A fórmula de tempo é: ``` Hora do Disparo + 5 horas = Hora do Reset da Sessão ``` Exemplos: - Reset diário único às 9:00 AM: use cron `23 20 * * *` (Disparo às 4:23 AM UTC para reset às 9:00 AM UTC+8) - Duas vezes ao dia às 10:00 AM e 4:00 PM: use cron `23 21,3 * * *` ## Testes - **GitHub Actions**: Navegue até a aba Actions e execute o workflow manualmente - **Teste Local**: `uv run --python 3.13 python src/log_qa_check.py --token TOKEN_1` ## Estrutura de Arquivos ``` .github/workflows/auto-checkin.yml # Configuração do agendador src/log_qa_check.py # Script de Q&A e logging logs/YYYYMM-session-log.csv # Registros de atividade mensais ``` ## Resolução de Problemas - **Erros de OAuth**: Regenere o token com `claude setup-token` e verifique se os nomes dos secrets coincidem exatamente - **Timeouts de Workflow**: Certifique-se de que a versão mais recente com proteções de timeout esteja implantada - **Horários Incorretos**: Verifique as conversões de UTC e lembre-se que o GitHub Actions pode ter pequenos atrasos de execução - **Sem Logs**: Verifique o status de autenticação do Claude e teste localmente antes de confiar na automação ## Segurança - Nunca coloque tokens diretamente no código-fonte - Use GitHub Secrets para todos os valores sensíveis - Rotacione os tokens OAuth periodicamente - Limite o acesso ao repositório a colaboradores confiáveis O projeto inclui Architecture Decision Records (ADRs) documentando escolhas de design em torno de otimização de agendamento, configuração de timeout e implementação de verificação de integridade.