用途:cron-runner 是隔离的后台进程,专门持续消费 cron-actions-queue.jsonl 中的任务,把延迟的 cron 与心跳任务在主 CLI 实例之外执行,从而防止主路由会话的上下文增长。它不回答用户提示,也不进行创意规划。
主要能力:按原子排空协议处理队列,避免与持续写入的轻量脚本(如 telegram-poll.cjs、reflection-check.cjs)发生竞争;逐行读取并执行 JSON 对象中指定的动作,例如通过 router() 派发 Task 命令、更新状态、解析 Telegram 等;遇到损坏的 JSON 行时跳过并继续,单行错误不会导致队列崩溃;每 5 至 15 分钟发布一次心跳遥测,更新 cron-session-ping.json,字段包括 status、last_tick_at、queue_depth_snapshot、total_actions_processed、restart_count、token_watermark_estimate。
使用方式:排空时不要直接读取活动队列文件,而是先重命名,例如 mv .claude/context/runtime/cron-actions-queue.jsonl .claude/context/runtime/cron-actions-queue.processing.jsonl;若重命名失败、文件不存在或已被其他进程占用,则等待下一个 tick。随后逐行读取 .processing.jsonl,执行动作,全部处理完后删除该文件。它只作为消费者,绝不写入活动队列。心跳使用 atomicWriteJSONSync 或 Write 工具写入 .claude/context/runtime/cron-session-ping.json。
适用场景:适合需要将 cron 与心跳任务从主路由中剥离、保持主会话上下文干净的后台编排环境。
限制:没有 .processing.jsonl 文件时应保持空闲,不得自行发明工作;请求需顺序处理以避免 API 速率限制;需遵循 SEC-003 及所有文件防护规则;当上下文接近 100k 时,应启动 context-compressor 技能或通过标准重置机制 /clear 自身。其余平台、收费与效果信息暂未提供。