@seanyao/roll 2026.511.2 → 2026.511.4

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/bin/roll +15 -2
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## v2026.511.4
4
+ - **Fixed**: roll init 自动重建 launchd runner scripts — 升级 roll 后直接跑 `roll init` 即可迁移到独立 runner,无需手动执行 roll setup 或 roll loop on
5
+
6
+ ## v2026.511.3
7
+ - **Fixed**: loop/dream/brief 多项目运行隔离 — 共享 run.sh 导致所有项目的 loop 在同一目录执行,改为每个项目独立 runner 脚本(run-{slug}.sh),彻底隔离多项目并发执行环境
8
+ - **Fixed**: roll release 自发版拦截 — 在 roll 自身项目执行 `roll release` 时自动拦截并提示改用 scripts/release.sh,防止误操作绕过 2FA
9
+
3
10
  ## v2026.511.2
4
11
  - **Added**: roll loop monitor 三服务状态 — 监控台新增 loop/dream/brief 三个 launchd 服务的运行状态、调度时间和实时 log tail,一屏掌握全局执行情况
5
12
  - **Fixed**: dashboard 多处展示问题 — 修复 pending_count 算术错误、brief 内联显示 release readiness、移除底部冗余命令列表
package/bin/roll CHANGED
@@ -4,7 +4,7 @@ set -euo pipefail
4
4
  # Roll — AI Agent Convention Manager
5
5
  # Single source of truth for how all AI coding agents behave.
6
6
 
7
- VERSION="2026.511.2"
7
+ VERSION="2026.511.4"
8
8
  ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
9
9
  ROLL_CONFIG="${ROLL_HOME}/config.yaml"
10
10
  ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
@@ -758,6 +758,8 @@ cmd_init() {
758
758
  _sync_conventions
759
759
  echo ""
760
760
 
761
+ _install_launchd_plists "$project_dir"
762
+
761
763
  if [[ "$has_agents" == "true" ]]; then
762
764
  ok "Done. 完成。"
763
765
  else
@@ -1837,7 +1839,8 @@ _install_launchd_plists() {
1837
1839
  local hour="${hours[$i]}"
1838
1840
  local label; label=$(_launchd_label "$svc" "$project_path")
1839
1841
  local plist; plist=$(_launchd_plist_path "$svc" "$project_path")
1840
- local runner="${shared}/${svc}/run.sh"
1842
+ local slug; slug=$(_project_slug "$project_path")
1843
+ local runner="${shared}/${svc}/run-${slug}.sh"
1841
1844
  local log="${shared}/${svc}/cron.log"
1842
1845
  local cmd; cmd=$(_agent_skill_cmd "${sd}/${skill}/SKILL.md" 2>/dev/null || echo "roll loop now")
1843
1846
 
@@ -1958,6 +1961,10 @@ _loop_off() {
1958
1961
  if ! $any_loaded; then
1959
1962
  warn "Loop not enabled for this project 当前项目 loop 未启用"; return 0
1960
1963
  fi
1964
+ local slug; slug=$(_project_slug "$project_path")
1965
+ for svc in loop dream brief; do
1966
+ rm -f "${_SHARED_ROOT}/${svc}/run-${slug}.sh"
1967
+ done
1961
1968
  ok "Loop disabled 已停用"
1962
1969
  return 0
1963
1970
  fi
@@ -2221,6 +2228,12 @@ cmd_brief() {
2221
2228
  }
2222
2229
 
2223
2230
  cmd_release() {
2231
+ local pkg; pkg=$(node -p "require('./package.json').name" 2>/dev/null || true)
2232
+ if [[ "$pkg" == "@seanyao/roll" ]]; then
2233
+ err "roll 自身发版请用 scripts/release.sh(npm publish 需要人工 2FA)"
2234
+ echo " Run: scripts/release.sh"
2235
+ exit 1
2236
+ fi
2224
2237
  _agent_run_skill "roll-release"
2225
2238
  }
2226
2239
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seanyao/roll",
3
- "version": "2026.511.2",
3
+ "version": "2026.511.4",
4
4
  "description": "Roll — Roll out features with AI agents",
5
5
  "scripts": {
6
6
  "test": "find tests/unit tests/integration -name '*.bats' | sort | xargs ./tests/helpers/bats-core/bin/bats"