@seanyao/roll 2026.510.6 → 2026.510.7

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 (2) hide show
  1. package/bin/roll +30 -14
  2. package/package.json +1 -1
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.510.6"
7
+ VERSION="2026.510.7"
8
8
  ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
9
9
  ROLL_CONFIG="${ROLL_HOME}/config.yaml"
10
10
  ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
@@ -1662,18 +1662,24 @@ _project_agent() {
1662
1662
  fi
1663
1663
  }
1664
1664
 
1665
+ _skill_content() {
1666
+ # Strip YAML frontmatter (---...---) — it's roll-internal metadata, not agent instructions
1667
+ awk 'NR==1 && /^---$/{skip=1;next} skip && /^---$/{skip=0;next} !skip{print}' "$1"
1668
+ }
1669
+
1665
1670
  _agent_run_skill() {
1666
1671
  local skill="$1"
1667
1672
  local agent; agent=$(_project_agent)
1668
1673
  local skill_file="${ROLL_HOME}/skills/${skill}/SKILL.md"
1669
1674
  [[ -f "$skill_file" ]] || { err "Skill not found: ${skill}"; return 1; }
1675
+ local content; content=$(_skill_content "$skill_file")
1670
1676
  case "$agent" in
1671
- claude) claude -p "$(cat "$skill_file")" ;;
1672
- kimi) kimi --quiet -p "$(cat "$skill_file")" ;;
1673
- deepseek) deepseek "$(cat "$skill_file")" ;;
1674
- pi) pi -p "$(cat "$skill_file")" ;;
1675
- codex) codex exec --json --output-last-message "$(cat "$skill_file")" ;;
1676
- opencode) opencode run "$(cat "$skill_file")" ;;
1677
+ claude) claude -p "$content" ;;
1678
+ kimi) kimi --quiet -p "$content" ;;
1679
+ deepseek) deepseek "$content" ;;
1680
+ pi) pi -p "$content" ;;
1681
+ codex) codex exec "$content" ;;
1682
+ opencode) opencode run "$content" ;;
1677
1683
  *) err "Unknown agent '${agent}'. Run: roll agent use <claude|kimi|deepseek|pi|codex|opencode>"; return 1 ;;
1678
1684
  esac
1679
1685
  }
@@ -1729,13 +1735,15 @@ _LOOP_ALERT="${HOME}/.shared/roll/loop/ALERT.md"
1729
1735
  _agent_skill_cmd() {
1730
1736
  local skill_path="$1"
1731
1737
  local agent; agent=$(_project_agent)
1738
+ # Strip YAML frontmatter inline for cron commands
1739
+ local strip="awk 'NR==1 && /^---$/{skip=1;next} skip && /^---$/{skip=0;next} !skip{print}' '${skill_path}'"
1732
1740
  case "$agent" in
1733
- claude) echo "claude -p \"\$(cat '${skill_path}')\"" ;;
1734
- kimi) echo "kimi --quiet -p \"\$(cat '${skill_path}')\"" ;;
1735
- deepseek) echo "deepseek \"\$(cat '${skill_path}')\"" ;;
1736
- pi) echo "pi -p \"\$(cat '${skill_path}')\"" ;;
1737
- codex) echo "codex exec --json --output-last-message \"\$(cat '${skill_path}')\"" ;;
1738
- opencode) echo "opencode run \"\$(cat '${skill_path}')\"" ;;
1741
+ claude) echo "claude -p \"\$(${strip})\"" ;;
1742
+ kimi) echo "kimi --quiet -p \"\$(${strip})\"" ;;
1743
+ deepseek) echo "deepseek \"\$(${strip})\"" ;;
1744
+ pi) echo "pi -p \"\$(${strip})\"" ;;
1745
+ codex) echo "codex exec \"\$(${strip})\"" ;;
1746
+ opencode) echo "opencode run \"\$(${strip})\"" ;;
1739
1747
  *) err "Unknown agent '${agent}'. Run: roll agent use <claude|kimi|deepseek|pi|codex|opencode>"; return 1 ;;
1740
1748
  esac
1741
1749
  }
@@ -1906,7 +1914,8 @@ _dashboard() {
1906
1914
  fi
1907
1915
 
1908
1916
  echo ""
1909
- echo " roll loop on|off|now|status|resume|reset · roll brief · roll agent use <name>"
1917
+ echo " loop <on|off|now|status|resume|reset> · brief · agent use <name> · release"
1918
+ echo " setup · update · init · status · peer · help"
1910
1919
  echo ""
1911
1920
  }
1912
1921
 
@@ -1935,6 +1944,7 @@ usage() {
1935
1944
  echo " loop <on|off|now|status|resume|reset> [Autonomous] Manage scheduled BACKLOG executor 管理自主执行循环"
1936
1945
  echo " brief [Digest] Show latest owner brief (regenerate if stale) 展示最新简报"
1937
1946
  echo " agent [use <name>|list] [Config] Per-project agent selection 切换项目 agent"
1947
+ echo " release [Publish] Sync changelog + version bump + npm publish 同步日志并发版"
1938
1948
  echo ""
1939
1949
  echo "Examples / 示例:"
1940
1950
  echo " roll setup # New machine: first-time install 新机器首次安装"
@@ -2016,6 +2026,12 @@ _notify_update() {
2016
2026
  [[ -f "$cache" ]] || return
2017
2027
  local latest; latest=$(awk '{print $2}' "$cache" 2>/dev/null || true)
2018
2028
  [[ -z "$latest" || "$latest" == "$VERSION" ]] && return
2029
+ local newer; newer=$(printf '%s\n%s\n' "$VERSION" "$latest" | sort -V | tail -1)
2030
+ if [[ "$newer" == "$VERSION" ]]; then
2031
+ # Running version is newer than cached — stale cache, clear it
2032
+ rm -f "$cache"
2033
+ return
2034
+ fi
2019
2035
  echo ""
2020
2036
  warn "v${latest} available — run 'roll update' to upgrade 有新版本 v${latest} — 运行 'roll update' 升级"
2021
2037
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seanyao/roll",
3
- "version": "2026.510.6",
3
+ "version": "2026.510.7",
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"