Skip to content

Run Shelf 1.4.0

Choose a tag to compare

@RuochenLyu RuochenLyu released this 09 Aug 13:29
· 11 commits to main since this release

Run Shelf 1.4.0

本版本源于一次对调度器、Runner、日志链路和 CLI 契约的全面正确性审查:修复多个会
导致任务漏跑、状态失真和 UI 冻结的缺陷,为 AI agent 补齐发现与集成入口,并完成开
源前的文档准备。

调度与运行可靠性:

  • 修复调度器按任务记账导致的泄漏:与手动运行并发时任务可能被永久跳过,现按 run id 记账。
  • 调度与手动运行竞争同一任务时不再误记 failed、误发失败通知,统一记为 skipped。
  • 运行元数据的跨进程回收改在 claim 锁内二次确认,成功记录不再可能被覆写成 stale。
  • 超时改用单调时钟计量,睡眠唤醒后不再误杀正常运行的脚本。
  • 睡眠或关机跨越多个调度点时,错过的运行逐一记录 stale,不再无声消失。
  • 夏令时春季跳变日落在跳变时段的任务当天照常运行一次,不再静默跳过。
  • 保留清理不再删除 meta 损坏的运行目录,日志得以保留排查。

App 修复:

  • 修复新建任务 sheet 因缺少环境对象而崩溃的问题。
  • 手动运行移出 Swift 并发协作线程池,多个长任务并发运行不再冻结日志和刷新。
  • 切换任务或运行记录时不再短暂显示上一个任务的日志内容。
  • 恢复日志滚动位置不再触发全文档布局,也不再因刷新竞态错位。

CLI 契约(破坏性变更):

  • 未知参数一律返回 usage 错误,拼错 --dry-run 不会再造成真实写入。
  • 前台运行失败改为返回 ok: false、error.code: "run_failed"(退出码仍为 8),完整运行记录保留在 result.run。
  • 更新已有任务(含 --dry-run)强制要求 --expected-revision,防止静默覆盖并发修改。
  • envelope 增加 schemaVersion;新增 version、schema task-spec --example、agent-setup 命令;退出码语义统一。

Agent 集成:

  • 新增 runshelf agent-setup:一条命令把集成说明幂等写入 ~/.claude/CLAUDE.md 或 AGENTS.md,内容与 help agent 同源。
  • 设置页新增「命令行与 AI Agent」:安装 CLI、复制集成说明、写入配置文件。
  • 任务记录创建来源,CLI/agent 创建的任务在侧边栏和 Inspector 显示「CLI」标记。

文档与开源准备:

  • README 加入截图与演示动图,新增英文版 README,补齐 CHANGELOG,增加 issue/PR 模板。

校验:

  • scripts/check.sh 全部通过(含全部测试、universal Debug 构建、schema 同步检查)。
  • CLI 契约在隔离数据目录下按 help agent 声明的完整流程端到端验证。
  • 发布产物使用 Developer ID 签名,提交 Apple 公证并 staple 后发布。