@seanyao/roll 4.707.1 → 4.708.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -266,7 +266,7 @@ cycle 写 `loop:pending`,只做恢复探测,不启动 Builder、不把卡记
266
266
  Roll 的运行模式只有两个:`guided` 和 `autonomous`。它们不是两套 agent 配置,而是同一套 backlog、truth、route profile、execution profile、attest evidence、Evaluator 和 release gates 之上的两种触发方式。
267
267
 
268
268
  - `guided`:owner 通过 `roll supervisor status/next/why` 理解状态和下一步,再显式运行 `roll loop go --cards <id>` 等命令。guided 模式不会静默启动长时间 Story 执行。
269
- - `autonomous`:`roll loop on` 安装 scheduler;scheduler 可以在 pause、budget、route、evidence、Evaluator 和 release gates 内领取合格 Todo。`roll loop pause` / `roll loop off` 回到 guided;`roll loop resume` / `roll loop on` 显式切回 autonomous。
269
+ - `autonomous`:`roll loop on` 安装 scheduler;scheduler 可以在 pause、budget、route、evidence、Evaluator 和 release gates 内领取合格 Todo。`roll loop pause` / `roll loop off` 回到 guided;`roll loop off --all` 是本机所有 `com.roll.*` LaunchAgent 的急停;`roll loop resume` / `roll loop on` 显式切回 autonomous。
270
270
  - 持久化来源只使用已有 loop/supervisor 状态:launchd plist、PAUSE/DORMANT marker、events/runs/backlog。不得新增独立 `mode.yaml` 之类的第二真相。
271
271
 
272
272
  ### BC9 · Supervisor 与执行剖面(v4)
package/guide/en/loop.md CHANGED
@@ -206,6 +206,7 @@ roll loop on # Install launchd scheduler (loop + pr + dream)
206
206
  roll loop off # Remove launchd scheduler
207
207
 
208
208
  roll loop now # Run one cycle immediately (same as launchd fires)
209
+ roll loop now --cards US-1,FIX-2 # Run one immediate cycle scoped to selected cards
209
210
  roll loop test # Quick smoke test: verify tmux/popup/stream chain works
210
211
 
211
212
  roll loop status # Show scheduler state and current loop state
@@ -275,6 +276,8 @@ gates still decide eligibility.
275
276
  `roll loop go` is a manual goal session, not a launchd scheduler tick. While it
276
277
  runs, Roll holds `.roll/loop/go.lock`; scheduled ticks yield when they see that
277
278
  lock, record `goal:tick_skipped`, and do not start another `roll loop run-once`.
279
+ `roll loop now --cards <ids>` uses the same card allow-list for its one-shot
280
+ runner, so a manual tick cannot silently pick a different backlog card.
278
281
 
279
282
  Goal mode can run when the scheduler is off because it starts its own session
280
283
  and does not depend on launchd. For paused projects, run `roll loop resume`
@@ -298,6 +301,12 @@ dirty, the goal pauses with `bootstrap_artifacts_unconfirmed` and prints the
298
301
  files to confirm. Commit or clean them, then run `roll loop go` again. This
299
302
  preflight does not start a cycle and does not count as no-progress.
300
303
 
304
+ For the Roll repository itself, `roll loop go`, `roll loop resume`, and
305
+ `roll loop now` print the runner binary and version before starting autonomous
306
+ work. They fail loud with `runner_stale_for_repo` if the repo-local
307
+ `@seanyao/roll` package version is newer than the running runner; install or
308
+ publish the local build before resuming autonomous work.
309
+
301
310
  `roll loop go` enforces safety only at cycle boundaries. `--budget <usd>` uses
302
311
  the effective run cost ledger and moves the goal to `budget_limited` when the
303
312
  budget is reached. An idle or aborted cycle that ran no agent counts as a known
package/guide/zh/loop.md CHANGED
@@ -176,6 +176,7 @@ roll loop on # 安装 launchd 调度器(loop + pr + dream 三个服
176
176
  roll loop off # 卸载 launchd 调度器
177
177
 
178
178
  roll loop now # 立即执行一次循环(与 launchd 触发的流程完全一致)
179
+ roll loop now --cards US-1,FIX-2 # 立即执行一次循环,但只允许指定卡片
179
180
  roll loop test # 快速冒烟测试:验证 tmux/弹窗/流式输出链路是否正常
180
181
 
181
182
  roll loop status # 显示调度器状态和当前 loop 状态
@@ -244,6 +245,8 @@ Hold、Cut、未满足依赖、skip-list、open PR、已合并交付和 pending-
244
245
  `roll loop go` 是手动 goal session,不是 launchd 定时 tick。运行期间 Roll 会持有
245
246
  `.roll/loop/go.lock`;定时 tick 看到该锁就让路,记录 `goal:tick_skipped`,不会再启动
246
247
  另一个 `roll loop run-once`。
248
+ `roll loop now --cards <ids>` 对它触发的单次 runner 使用同一份卡片 allow-list,
249
+ 所以手动 tick 不能静默改选其他 backlog 卡。
247
250
 
248
251
  goal mode 在 scheduler off 时也能运行,因为它自己启动会话,不依赖 launchd。loop 处于
249
252
  paused 状态时不建议直接启动:`PAUSE-<slug>` 标记仍会在 cycle 边界生效,所以应先执行
@@ -271,6 +274,11 @@ Roll-owned 文件提交并推送;如果历史版本或手工路径仍然只留
271
274
  `bootstrap_artifacts_unconfirmed` 暂停,并打印待确认文件。提交或清理后,再重新运行
272
275
  `roll loop go`。这个 preflight 不会启动 cycle,也不会累加 no-progress。
273
276
 
277
+ 在 Roll 仓自身里,`roll loop go`、`roll loop resume` 和 `roll loop now`
278
+ 开工前都会打印当前 runner 的 binary 与版本。repo-local `@seanyao/roll`
279
+ 包版本高于正在运行的 runner 时,它们会以 `runner_stale_for_repo`
280
+ fail-loud;先安装或发布本地构建,再恢复自治施工。
281
+
274
282
  每次安全闸触发都会记录 `goal:gate_tripped`,`roll loop goal` 会显示最近一次安全闸读数。
275
283
 
276
284
  ### `roll loop goal` 字段含义
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seanyao/roll",
3
- "version": "4.707.1",
3
+ "version": "4.708.2",
4
4
  "description": "Roll — Roll out features with AI agents",
5
5
  "packageManager": "pnpm@11.1.3",
6
6
  "scripts": {