@seanyao/roll 3.617.1 → 3.618.1

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 CHANGED
@@ -2,6 +2,57 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## v3.618.1 — 2026-06-18
6
+
7
+ ### 新功能
8
+
9
+ - **Reasonix agent 支持**:新增 DeepSeek 原生编程 agent 接入,`roll loop` 可选用 reasonix 跑 worker,与 pi/kimi 同等待遇;agent 注册表、展示名、smoke 检查和 loop spawn 全部贯通。(US-AGENT-002, FIX-359) `[agents]`
10
+
11
+ - **跨卡暖上下文(默认关闭,lever-4)**:codex 会话在相邻 cycle 之间复用,省去每轮冷启动重读近千万 token 的仪式开销——实测 execute 阶段大头就在冷上下文。默认 OFF,需手动开启;关闭时零影响。(lever-4) `[loop-engine]`
12
+
13
+ ### 修复
14
+
15
+ - **评审闸不再误杀合理的大改动**:之前评审闸在异构评审真正跑完、写出证据之前就检查,导致任何跨多个模块或超过 3 个文件的合理改动(哪怕真做了不同厂的异构评审)都被判"没评审"而让整轮失败——loop 因此交付不了任何实质性大改。现在改成"评审先跑、闸后查":异构评审写出证据后闸才检查,真评审过的大改正常通过;没有异构评审者的单 agent 场景仍走原有的自评兜底。(FIX-362) `[loop-engine]`
16
+
17
+ - **国内模型的成本不再被当美元记账**:deepseek/pi/kimi 等按人民币(¥)结算的模型,`roll cycles`、`#loop` 看板、`roll status` 等所有成本展示面现在显示正确币种符号(¥),不再硬编码 `$`;`runs.jsonl` 新增 `cost_currency` 字段记录币种;混币种视图(¥+$)按币种分别汇总,不盲目相加。(FIX-361) `[cost]`
18
+
19
+ - **不再误拉 IDE 配置目标当评审者**:agy 在 headless 环境反复弹 Google OAuth 登录框——已禁用它当评审者(`canReviewHeadless=false`),止住弹窗拖垮 cycle;agy 仍留注册表可手动使用。(FIX-360) `[pairing]`
20
+
21
+ - **结对评审池只收能 headless 运行的 reviewer**:`roll pair init`、pairing selector、Review Score 和 peer-gate retry 现在共用 agent profile 的 `canReviewHeadless` 能力;Cursor/Trae 这类 IDE 配置目标不再进入评审/评分候选池,避免选中后 spawn 不出 verdict 拖垮 cycle。(FIX-328) `[pairing]`
22
+
23
+ - **"接着上一张卡的思路开干"加了防越积越多的保险**:这个提速功能(默认关闭)原本每个循环都会把工作记忆传给下一张卡,一张接一张连环传下去,会让后面的卡背着越来越多前面卡的旧思路、越跑越偏。现在只有"从零开始"的循环才会留记忆,最多隔一张卡传一次,不会再连环累积——把这个开关做成了"开了也不会越用越糟"。(FIX-355) `[loop-engine]`
24
+
25
+ - **暖会话捕获不再因发布失败而丢失**:以前 cycle 没干净交付保留工作树时暖会话捕获被跳过;现在挪到 agent 退出后立即执行,无论 publish/preserve 结果都记录。(FIX-354) `[loop-engine]`
26
+
27
+ - **循环现在能看出"花多久才动第一笔"**:以前一个循环从开工到产出第一处改动之间是一段黑箱(只有固定心跳),看不出 agent 摸索仓库用了多久,也就没法判断"预构建/项目地图"这类提速开关到底有没有用。现在加了一个"首次落笔"标记,把开工→第一处改动的耗时单独标出来,让提速效果可量、可证伪。(FIX-357) `[loop-engine]`
28
+
29
+ - **发版与发布扛 GitHub API 瞬时抖动**:`roll release` 和 runner publish 遇 gh GraphQL EOF 不再直接崩溃——先重试再回落 REST,网络抖动可自愈,不需人工收尾。(FIX-353) `[release]`
30
+
31
+ - **事件流时间戳统一为毫秒**:阶段事件用毫秒而结对闸与周期终态用秒的静默不一致已修复——所有时长计算现在归一,不再暗中打坏。(FIX-352) `[loop-engine]`
32
+
33
+ - **`roll brief` 已退役**:这个 owner 简报能力面尚未成熟,直接移除避免误导。查看项目状态请用 `roll backlog` 或 `roll status`。(FIX-356a) `[loop]`
34
+
35
+ ### 改进
36
+
37
+ - **技能可视化图谱页面**:站点新增技能关系图浏览页,展示技能之间的依赖与调用关系。(#795) `[site]`
38
+
39
+ ## v3.617.2 — 2026-06-17
40
+
41
+ ### 修复
42
+
43
+ - **各类 agent 的展示、用量和 smoke 行为改走统一注册表**:模型名、实时观察窗、usage recovery、dashboard 回填、pairing 成本和 loop smoke 不再散落写 claude/pi/kimi/codex 特判;新增 agent 只需补 AgentSpec,非 claude 不再显示成 `?` 或被 mock smoke 降级。(FIX-313) `[loop]`
44
+ <!-- evidence: .roll/features/loop-engine/FIX-313/latest/FIX-313-report.html -->
45
+
46
+ - **Loop 页的"已合并显示"这次真生效了**:上一版加的"PR 合了 → 显示绿色"其实是哑的——一个缓冲区上限太小的 bug 让它读不到 git 记录、静默失效;现在已合并的交付会正确显示为已交付(绿),且只按这个循环自己开的 PR 判定,不会被别的 PR 误判成绿。(FIX-349, FIX-348, FIX-350) `[loop-observability]`
47
+
48
+ - **重复的故事编号当场拦住**:同一个编号被两个地方使用时,不再静默读到错的卡;新增一个 CI 检查,扫到重复编号就报错。(FIX-340) `[loop-engine]`
49
+
50
+ - **发布没成功的循环不再误标"失败"**:循环把活干完、过了质量闸,但因为临时的 GitHub 故障没能开 PR 时,现在显示"未发布"(中性灰),不再误显示成"失败"(红);`roll loop run-once --help` 也改为显示帮助,不再误跑一个循环。(FIX-351) `[loop-engine]`
51
+
52
+ ### 性能(可选,默认关闭)
53
+
54
+ - **两个 execute 提速开关(默认关,需手动开启)**:`prebuild_dist`(循环工作区一建好就预构建,省 agent 找入口的往返)和 `project_map`(spawn 时给 agent 注入精简的仓库结构 + 本卡相关文件,省它摸索)。对所有 agent 通用、不破循环隔离;不开就完全没影响。(FIX-338) `[loop-engine]`
55
+
5
56
  ## v3.617.1 — 2026-06-17
6
57
 
7
58
  ### 质量与可信
package/README.md CHANGED
@@ -48,7 +48,6 @@ First time through? Start with [Getting started](guide/en/getting-started.md).
48
48
  | `roll loop watch [-n <lines>] [--verbose\|--raw] [--attach]` | Read-only, concise, real-time view of THIS project's loop — auto-tails `.roll/loop/live.log` through the renderer (cycle / story / results / ALERT / cost / heartbeat). It never writes to or signals a running cycle; Ctrl-C ends the view, not the loop. `--attach` joins the loop's tmux observe window read-only |
49
49
  | `roll loop go [--epic <e>\|--cards <ids>] [--budget <usd>] [--for <duration>] [--review <auto\|hetero\|self\|off>]` | Run goal mode manually until the scoped work completes, pauses, or hits a budget/usage/timebox guardrail; it can run while the scheduler is off, and a paused loop should be resumed first; final review defaults to `auto` |
50
50
  | `roll loop goal` | Show persisted goal scope, review mode, usage, limits, safety gate, and last decision |
51
- | `roll brief` | Show latest owner brief |
52
51
  | `roll backlog [sync\|block\|defer\|lint\|…]` | View, manage, and sync (from GitHub Issues) pending tasks |
53
52
  | `roll loop alert [list\|ack\|resolve\|log]` | View / clear loop alerts |
54
53
  | `roll status` | Verdict-first truth summary read from the ONE snapshot — LOOP · CYCLE · RELEASE · STORY, with the STORY line's attest-coverage % (`done ≡ merged ∧ attested`) — then convention/AI-client sync health |