Об этом проекте
# Планировщик сброса сессий Claude Code
## Обзор
Это инструмент автоматизации на базе GitHub Actions, который управляет сбросом сессий Claude Code по расписанию. Система выполняет автоматический сброс сессий в стратегически выбранные моменты времени, чтобы соответствовать типичным рабочим периодам и гарантировать пользователям наличие свежего 5-часового окна использования, когда это необходимо.
## Ключевые возможности
### Автоматизированное управление сессиями
- Выполняет четыре ежедневных сброса сессий, синхронизированных с обычными рабочими периодами.
- Использует систему обратного отсчета в 5 часов между событиями запуска и сброса.
- Настраиваемое расписание через cron-выражения.
### Мониторинг состояния
- Встроенные проверки верификации Q&A (например, «1+1=?») для подтверждения работоспособности Claude Code.
- Логирование результатов проверок состояния с временными метками.
- Проверка работоспособности системы перед отметкой сбросов как завершенных.
### Поддержка нескольких токенов
- Настройка основных и резервных OAuth-токенов для повышения надежности.
- Отслеживание активности для каждого токена в логах.
- Резервирование на случай отказа одного из токенов.
### Логирование активности
- Ежемесячные CSV-файлы логов, сохраняемые в `logs/YYYYMM-session-log.csv`.
- Записи включают временную метку, тип события, ID токена и время сброса.
- Автоматические коммиты Git сохраняют историю логов.
### Защита от таймаутов
- Таймаут уровня задачи: 5 минут.
- Таймаут уровня шага: 2 минуты на действие.
- Предотвращает потребление ресурсов из-за бесконечных циклов выполнения.
## Расписание по умолчанию (UTC+8)
| Время запуска | Время сброса | Период покрытия |
|------------|-----------|----------|
| 05:23 | 10:00 AM | Утренний рабочий период |
| 10:23 | 3:00 PM | Дневной рабочий период |
| 17:23 | 10:00 PM | Вечерний рабочий период |
| 22:23 | 3:00 AM (следующий день) | Покрытие в ночное время |
Каждый запуск происходит за 5 часов до желаемого времени сброса. Система использует минуты «:23», чтобы избежать перегрузки выполнения GitHub Actions.
## Инструкции по настройке
1. **Генерация OAuth-токена**: Запустите `claude setup-token` и скопируйте сгенерированный токен.
2. **Добавление секретов**: Настройте `CLAUDE_CODE_OAUTH_TOKEN_1` и опционально `CLAUDE_CODE_OAUTH_TOKEN_2` в настройках репозитория GitHub.
3. **Включение Actions**: Убедитесь, что репозиторий имеет разрешение `id-token: write` для GitHub Actions.
4. **Активация**: Отправьте файл workflow, чтобы запустить планировщик.
## Настройка
Отредактируйте `.github/workflows/auto-checkin.yml`, чтобы изменить cron-расписания. Формула времени:
```
Время запуска + 5 часов = Время сброса сессии
```
Примеры:
- Ежедневный сброс в 9:00 AM: используйте cron `23 20 * * *` (4:23 AM UTC запустит сброс в 9:00 AM UTC+8).
- Дважды в день в 10:00 AM и 4:00 PM: используйте cron `23 21,3 * * *`.
## Тестирование
- **GitHub Actions**: Перейдите на вкладку Actions и запустите workflow вручную.
- **Локальное тестирование**: `uv run --python 3.13 python src/log_qa_check.py --token TOKEN_1`
## Структура файлов
```
.github/workflows/auto-checkin.yml # Конфигурация планировщика
src/log_qa_check.py # Скрипт проверки Q&A и логирования
logs/YYYYMM-session-log.csv # Ежемесячные записи активности
```
## Устранение неполадок
- **Ошибки OAuth**: Перегенерируйте токен с помощью `claude setup-token` и убедитесь, что имена секретов совпадают точно.
- **Таймауты workflow**: Убедитесь, что развернута последняя версия с защитой от таймаутов.
- **Неверное время**: Проверьте преобразование UTC и помните, что у GitHub Actions могут быть небольшие задержки выполнения.
- **Отсутствие логов**: Проверьте статус аутентификации Claude и протестируйте локально перед использованием автоматизации.
## Безопасность
- Никогда не храните токены в исходном коде.
- Используйте GitHub Secrets для всех конфиденциальных значений.
- Периодически меняйте OAuth-токены.
- Ограничьте доступ к репозиторию доверенными участниками.
Проект включает Architecture Decision Records (ADRs), документирующие решения по оптимизации расписания, конфигурации таймаутов и реализации проверок состояния.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.