@seanyao/roll 3.606.3 → 3.607.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.
- package/CHANGELOG.md +33 -0
- package/bin/roll +9 -6
- package/dist/roll.mjs +1086 -478
- package/package.json +1 -1
- package/skills/roll-build/SKILL.md +5 -5
- package/skills/roll-design/SKILL.md +35 -27
- package/skills/roll-fix/SKILL.md +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v3.607.2 — 2026-06-07
|
|
4
|
+
|
|
5
|
+
### 自动化流水线
|
|
6
|
+
|
|
7
|
+
- 无技能子模块的项目跑 loop 找不到技能、选 agent 无视项目配置;补全局技能兜底、读项目配置选人、新增 pi 接管(FIX-221) `[loop]`
|
|
8
|
+
- loop 选 agent 被项目级单一默认一票否决:所有难度档坍缩成一个 agent,难题不再给 claude;装机探测永真空转;按 v2 链路修复(FIX-223) `[loop]`
|
|
9
|
+
- 非 claude agent 的 loop 接管命令全量 port(kimi/codex/deepseek/qwen/agy/gemini/antigravity)(US-PORT-010)
|
|
10
|
+
- roll loop now 手动触发降噪:交互终端只看关键节点,不再被逐行 JSON 淹没(FIX-220) `[loop]`
|
|
11
|
+
|
|
12
|
+
### 工程和测试
|
|
13
|
+
|
|
14
|
+
- difftest 卸 oracle 收尾:全仓断言测试期不再起任何旧引擎,桥接表与文档记 oracle 卸任(US-PORT-009e)
|
|
15
|
+
- 看板冻结测试时钟钉死:快照不再随墙钟与时区漂移,任意日期任意时区可复现,提交闸不再被误堵(FIX-222)
|
|
16
|
+
|
|
17
|
+
### 其他
|
|
18
|
+
|
|
19
|
+
- 验收卡史诗归属适配新档案布局:两级目录解析收敛为单一解析点(PR#513)
|
|
20
|
+
|
|
21
|
+
## v3.607.1 — 2026-06-07
|
|
22
|
+
|
|
23
|
+
### 可见性
|
|
24
|
+
|
|
25
|
+
- detectLiveCycle 僵尸周期污染:无 cycle:end 的僵尸周期被误判为"当前正在运行",叠加 state.current_item 过期,dashboard 头行显示已交付数小时的旧故事;已加 >2h 僵尸跳过+最近活跃优先(FIX-217) `[loop]`
|
|
26
|
+
|
|
27
|
+
### 其他
|
|
28
|
+
|
|
29
|
+
- 验收闸查旧档案位:迁移后真报告被判缺失,硬闸假阴性逼出双账,闸址改与写端同源(FIX-216) `[loop]`
|
|
30
|
+
- roll peer mktemp 竞态 + 解析器无法解析自然语言决议;已加 PID 防竞态 + prompt 要求 Resolution: 行 + 解析器优先读该行(FIX-219) `[loop]`
|
|
31
|
+
- 层层嵌套索引站:从总览到史诗到卡片到报告全程可点击浏览(US-META-003)
|
|
32
|
+
- 建卡时自动生成 story 定义文件和全景报告骨架,后续阶段逐步填充(US-META-005)
|
|
33
|
+
- 交付与终评产物写入 story 文件夹,与验收报告同处一层(US-META-006)
|
|
34
|
+
- 存量 story 数据迁移命令:补定义文件、建文件夹、跳过多故事文件并保留反向引用(US-META-007)
|
|
35
|
+
|
|
3
36
|
## v3.606.3 — 2026-06-06
|
|
4
37
|
|
|
5
38
|
### 新功能
|
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="3.
|
|
7
|
+
VERSION="3.606.3"
|
|
8
8
|
ROLL_HOME="${ROLL_HOME:-${HOME}/.roll}"
|
|
9
9
|
ROLL_CONFIG="${ROLL_HOME}/config.yaml"
|
|
10
10
|
ROLL_GLOBAL="${ROLL_HOME}/conventions/global"
|
|
@@ -3960,7 +3960,7 @@ _peer_dispatch_in_tmux() {
|
|
|
3960
3960
|
local session="$1" cmd_str="$2" out_file="$3" err_file="$4" timeout="${5:-180}"
|
|
3961
3961
|
local done_file="${out_file}.done"
|
|
3962
3962
|
local inner
|
|
3963
|
-
inner=$(mktemp /tmp/roll-peer-inner
|
|
3963
|
+
inner=$(mktemp /tmp/roll-peer-inner-$$-XXXXXX.sh)
|
|
3964
3964
|
{
|
|
3965
3965
|
printf '#!/bin/bash -l\n'
|
|
3966
3966
|
# FIX-050: portable PATH assembly (was hardcoded /opt/homebrew/bin)
|
|
@@ -4074,9 +4074,12 @@ _peer_call() {
|
|
|
4074
4074
|
_peer_parse_resolution() {
|
|
4075
4075
|
local output="$1"
|
|
4076
4076
|
local resolution
|
|
4077
|
-
#
|
|
4078
|
-
|
|
4079
|
-
|
|
4077
|
+
# Prefer explicit "Resolution:" or "决议:" line (most reliable).
|
|
4078
|
+
resolution="$(printf '%s\n' "$output" | grep -oiE '^(Resolution|决议)\s*:\s*(AGREE|REFINE|OBJECT|ESCALATE)\b' | head -1 | grep -oiE '\b(AGREE|REFINE|OBJECT|ESCALATE)\b' | tr '[:lower:]' '[:upper:]')"
|
|
4079
|
+
if [[ -z "$resolution" ]]; then
|
|
4080
|
+
# Fallback: keyword at line start (legacy, kimi natural-language detection).
|
|
4081
|
+
resolution="$(printf '%s\n' "$output" | grep -oiE '^[^a-zA-Z]*\b(AGREE|REFINE|OBJECT|ESCALATE)\b' | head -1 | grep -oiE '\b(AGREE|REFINE|OBJECT|ESCALATE)\b' | tr '[:lower:]' '[:upper:]')"
|
|
4082
|
+
fi
|
|
4080
4083
|
printf '%s\n' "$resolution"
|
|
4081
4084
|
}
|
|
4082
4085
|
|
|
@@ -4197,7 +4200,7 @@ cmd_peer() {
|
|
|
4197
4200
|
fi
|
|
4198
4201
|
|
|
4199
4202
|
local prompt
|
|
4200
|
-
prompt="[PEER_REVIEW round=${round} tool=${from_tool}→${to_tool}]\n\n${context}"
|
|
4203
|
+
prompt="[PEER_REVIEW round=${round} tool=${from_tool}→${to_tool}]\n\n${context}\n\n---\n请以以下格式结束你的回复(必须单独一行):\nResolution: AGREE|REFINE|OBJECT"
|
|
4201
4204
|
|
|
4202
4205
|
local peer_session=""
|
|
4203
4206
|
if command -v tmux >/dev/null 2>&1; then
|