这个项目能做什么

# 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),记录了关于调度优化、超时配置和健康检查实现的设计选择。