这个项目能做什么
# 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 | 上午工作时段 |
| 10:23 | 下午3:00 | 下午工作时段 |
| 17:23 | 晚上10:00 | 晚间工作时段 |
| 22:23 | 次日凌晨3:00 | 深夜覆盖 |
每次触发在期望的重置时间前5小时触发。系统使用 `:23` 分钟以避免 GitHub Actions 执行拥堵。
## 设置说明
1. **生成 OAuth 令牌**:运行 `claude setup-token` 并复制生成的令牌
2. **添加密钥**:在 GitHub 仓库设置中配置 `CLAUDE_CODE_OAUTH_TOKEN_1` 以及可选的 `CLAUDE_CODE_OAUTH_TOKEN_2`
3. **启用 Actions**:确保仓库具有 GitHub Actions 的 `id-token: write` 权限
4. **激活**:推送工作流文件以启动调度器
## 自定义
编辑 `.github/workflows/auto-checkin.yml` 以修改 cron 时间表。计时公式为:
```
触发时间 + 5小时 = 会话重置时间
```
示例:
- 每天一次上午9点重置:使用 cron `23 20 * * *`(UTC 4:23 触发 UTC+8 上午9点重置)
- 每天两次分别上午10点和下午4点:使用 cron `23 21,3 * * *`
## 测试
- **GitHub Actions**:导航到 Actions 标签页并手动运行工作流
- **本地测试**:`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` 重新生成令牌,并验证密钥名称完全匹配
- **工作流超时**:确保部署了带超时保护的最新版
- **时间不对**:验证 UTC 转换并注意 GitHub Actions 可能有轻微执行延迟
- **无日志**:检查 Claude 认证状态并在依赖自动化前先进行本地测试
## 安全
- 切勿在源代码中硬编码令牌
- 对所有敏感值使用 GitHub Secrets
- 定期轮换 OAuth 令牌
- 限制仓库访问权限给可信贡献者
项目包含架构决策记录(ADRs),记录了关于调度优化、超时配置和健康检查实现的设计选择。
评论
0 评分人数达到10人后显示
登录后参与讨论。