大数跨境

OpenCode v1.18.2 上线,subagent 默认禁止嵌套,Mod+N 顺手加上了

OpenCode v1.18.2 上线,subagent 默认禁止嵌套,Mod+N 顺手加上了 创见AI实验室
2026-07-16
6
导读:48 小时 3 版 → OpenCode v1.18.x 系列正在以小时级节奏消化 v1.18.0 桌面端 v2 收尾的余波。
opencode更新 11.png

19 小时——这是 v1.18.1 到 v1.18.2 的距离。

我昨天才发《OpenCode v1.18 上线:v2 desktop 收官》(Opencode系列/2026-07-15),结果今天凌晨就收到 v1.18.2 的发布通知。点开一看,release notes 646 字符,8 项改动——但里面藏着 1 个真正的关键 PR。

这个 PR 解决了一个从 v1.17.20 就报上来的 bug:subagent 能无限递归开 subagent

v1.18.2 是什么节奏

oc-v1182-01-cadence.png
  • v1.18.0:2026-07-14 20:29 UTC(38 commits,desktop v2 收官)
  • v1.18.1:2026-07-14 21:37 UTC(1h8m 后,6 commits)
  • v1.18.2:2026-07-15 16:15 UTC(18h37m 后,14 commits)

48 小时内 OpenCode 连发 3 个版本。其中 v1.18.2 比 v1.18.1 多了 14 个 commit / 646 字符 release body / 8 项改动 / 1 个社区贡献者

bot 是这次的主力。14 个 commit 里 opencode-agent[bot] 贡献了 7 个——包括 subagent_depth 这个核心防护。

v1.18.2 唯一的主角:subagent_depth

oc-v1182-02-subagent.png

如果你只让我看 v1.18.2 的 1 个 PR,我会看 PR #37124fix(core): limit subagent nesting depth

这个 PR 是谁写的?opencode-agent[bot]。99 行 + 4 文件。

它解决的是 issue #36878(2026-07-14 15:28 UTC 提交):

在 OpenCode 1.17.20 中,当 permission.task: "allow" 是全局配置时,custom subagent 能 dispatch 另一个自己:

root└─ concurrency-reviewer   └─ concurrency-reviewer      └─ concurrency-reviewer

实测到 depth 2 就开始失控,需要 user 自己在 reviewer agent 配置 task: false 才能阻止。dev 上目前没有 hard runtime depth limit 也没有 same-agent cycle guard。

影响是什么?递归 subagent 会无限吃 token / 时间,还会让每个 child 都保留 Task permission,可能在某个 child 卡 permission wait 时把 parent chain 都阻塞住

PR #37124 怎么修

就 1 行默认配置 + 1 个新字段:

// 默认配置(99 行 PR 加的核心字段){  "subagent_depth": 1,  // 默认 1 = root + 1 层}// 想开嵌套就改这里

默认 depth=1,意味着 root 可以 dispatch 1 层 subagent,但 subagent 自己不能再 dispatch。task dispatch 一旦 depth 到限值,直接 reject

这意味着:

  • 现有 user 不需要改任何配置,无感升级到 v1.18.2 就自动防护
  • 想要嵌套的 user 显式设 subagent_depth: 2 即可
  • bot 写了对应测试覆盖默认守卫 + 显式 opt-in

值得注意:bot 不只是补了代码,还单独开了 PR #37132 加文档解释这个新配置。从今往后 user 看 OpenCode docs 就能找到 subagent_depth 的语义。

桌面端 4 项:Mod+N + Help + null archive + Windows drawer

oc-v1182-03-desktop.png

subagent_depth 之外的 6 项里,桌面端占了 4 项。挨个看:

1. Mod+N 新 tab 快捷键(PR #37079,bot)

之前只能用 Mod+T 开新 tab。现在 Mod+N 是另一条快捷键——Mod+T 是 terminal / browser 用户熟悉的, Mod+N 是浏览器用户的习惯(Mac Chrome / Safari 都是这个)。

2. Help 按钮 release 露出(PR #37098,bot)

之前 Help 按钮被 dev-channel guard 挡住——也就是说 正式版用户根本看不到 Help 按钮。这是个挺尴尬的事:你在 release build 里看不到帮助,只能在 dev build 看。

bot 把 guard 去掉了,bottom-corner Help 链接 release build 也露出。2 行代码改动。

3. null archive session 不丢(PR #36999,@Brendonovich)

老版本 server 把 archive_time: null 的 active session 错误地从 home list 丢弃。兼容这条 wire payload 后,session 一直可见。

这是数据完整性相关的修——确保你之前的 session 不会因为版本差异突然消失。@Brendonovich 是 OpenCode 持续贡献者,专门处理这类兼容性问题。

4. Windows drawer close 按钮隐藏(PR #36952,@Hona)

在 Windows 桌面端,drawer 的关闭按钮跟系统窗口 chrome 冲突。Windows 上隐藏,macOS / Linux / web 保留。@Hona 也是稳定贡献者。

Core + 1 个社区贡献者

模型调优(PR #36976,bot):Meta 系列模型(Llama 等)reasoning 深度跟其它模型不一致,现在默认调成 xhigh 跟其它模型对齐。1 行配置改动。

社区贡献者(PR #36542,@BB-84C)

v1.17.15 加的 fs.ensureDir(dir) 到 Config.ensureGitignore——每个 resolved config dir 都会跑。并发解析多份配置时会触发 AlreadyExists race。

@BB-84C 改法是把 ensureDir 包一层 catch,发现 race 时吞掉。8 行代码 + 1 行测试。Release notes 里 OpenCode 正式致谢

Thank you to 1 community contributor:

  • @BB-84C:
    • fix(core): tolerate AlreadyExists in FSUtil.ensureDir (#36542)

一点观察

48 小时 3 版 → OpenCode v1.18.x 系列正在以小时级节奏消化 v1.18.0 桌面端 v2 收尾的余波

节奏信号

  • v1.18.0 → v1.18.1 = 1h8m(hotfix 间距)
  • v1.18.1 → v1.18.2 = 18h37m(次 hotfix 间距)

bot 是主力:14 个 commit 里 bot 贡献 7 个(含 subagent_depth 这个核心防护)。说明 v2 分支在跑 codemode 等大 feature 的同时,bot 也在盯 v1.18.x 的稳定性修。

社区贡献者持续给力:v1.18.2 的 @BB-84C + v1.17.19 的 @nabilfreeman + @geraint0923——OpenCode 这几个版本每次都有 1-2 个 release notes 致谢的外部贡献者。

v1.18 系列会持续多久? 我猜 1-2 周内还有 v1.18.3 / v1.18.4 出来。但 v1.19 应该不会出现——因为 OpenCode 的下一个大版本号直接就是 v2.0(Opencode系列/2026-07-15 那篇预估 2026-09 ~ 2026-10 发布)。

精选系列





【声明】内容源于网络
0
0
创见AI实验室
创见AI实验室,我们不只是介绍工具,我们共同创造工作方式的未来。
内容 168
粉丝 0
创见AI实验室 创见AI实验室,我们不只是介绍工具,我们共同创造工作方式的未来。
总阅读1.7k
粉丝0
内容168