大数跨境

OpenCode v1.17.14 里那个人干 43 个 PR,他到底在做什么

OpenCode v1.17.14 里那个人干 43 个 PR,他到底在做什么 创见AI实验室
2026-07-07
7
导读:去 GitHub 翻了一下统计页,发现这 5 天合并了 181 个 PR,300 个文件改动。13 个贡献者里,前两位 @rekram1-node 59 个 + @kitlangton 43 个,两个
opencode更新 4.png

打开 v1.17.14 的 release notes 的时候我愣了一下——距离上一版(v1.17.13)整整 5 天。前面几版都是 19 小时、半天这种节奏突然来一个 5 天。

然后去 GitHub 翻了一下统计页,发现这 5 天合并了 181 个 PR,300 个文件改动。13 个贡献者里,前两位 @rekram1-node 59 个 + @kitlangton 43 个,两个人干了 57%

这两个名字我都熟。rekram1-node 是 OpenCode 的核心维护者,活多很正常。但 kitlangton 这名字之前没怎么注意过——一个人一个月干 43 个 PR,这是个什么工作状态?

所以这篇文章就是顺着这个问题往下挖:kitlangton 那 43 个 PR 在做什么?看完之后我对 OpenCode 后面要发生的事,多了一层完全不同的理解。

先说 codemode 这个新东西(毕竟这是 release notes 头条)

不绕弯子先说 codemode,因为这玩意是 v1.17.14 release notes 里唯一被写进「Core / Improvements」头条的:

Added a code mode MCP adapter for running confined orchestration scripts against connected MCP tools.

我一开始没看懂这句话。直到翻 commit 才发现这事折腾了 OpenCode 两次

  • 第一次(7 月 1 日):@rekram1-node 提了一个叫 feat: experimental codemode 的大 PR(#34677),一次性把所有 codemode 代码合进 main
  • 隔了几天:回滚(commit revert: back out experimental codemode),原因是"太大拆不开"
  • 然后重组成 23 个小 PR,逐个合并

也就是说 7 月初那个 181 个 PR 里有 23 个是 codemode,并且这 23 个全部来自一次"合并失败 → 回滚 → 重做"的折腾。

codemode 到底解决啥问题

我用 MCP 工具集接了 12 个 server,平时问题不大,但工具超过 20 个之后模型就开始"挑花眼"——让它写个多步任务,它给你挑错工具的概率明显升高。

codemode 的解法很直接:把工具关进一个 JavaScript 解释器,让模型写一段 JS 脚本来编排工具调用,而不是一个一个调:

// 之前:连续 5 次工具调用github.listPRs("opencode")github.listIssues("opencode")github.getRepo("opencode")// 每一步工具都要把 30+ 工具列表塞进 prompt // 现在:一次脚本搞定const data = await Promise.all([  github.listPRs("opencode"),  github.listIssues("opencode"),  github.getRepo("opencode"),])return data.filter(p => p.reactions > 10).slice(05)

实际用下来的体感:prompt 长度能砍掉七成,工具多的项目调用准确率也明显上升。但有个关键细节——v1.17.14 release notes 里写了:

Not included: OpenCode registry/session integration, MCP adapter wiring, TUI changes

意思是 codemode 作为独立包发布了,但还没集成进 OpenCode 内部。也就是说,你升级 v1.17.14 之后没法直接用 codemode——这是个"先发包,等下个版本集成"的玩法。OpenCode 的人可能下个版本(v1.17.15?)就把 codemode 接进来。

然后说那个干 43 个 PR 的人

@kitlangton 这名字在 OpenCode 仓库里出现频率挺高,但之前我没特别留意。181 个 PR 里 14 个直接是 codemode(feat(codemode): ...),其余 29 个呢?

我把他那 43 个 PR 的标题拉出来按 prefix 分了一下,结果是这样:

Prefix
数量
feat(codemode)
14
refactor(core)
13
feat(core)
6
feat(tui)
4
feat(v2)
1
其他
5

注意 refactor(core) 和 feat(core) 加起来 19 个——这是在做 OpenCode 内核重写。

kitlangton 在做的 3 件大事

我把这 19 个核心 PR 仔细读了一下,发现他在搭的是整个 OpenCode v2 的地基。最值得说的是这 3 个 PR:

我把他那 43 个 PR 里跟核心相关的挑出来 3 个,按"我能看懂的程度"从高到低排:

PR #1refactor(core): migrate built-in tools to internal plugins

之前 OpenCode 的内置工具(read / write / bash / glob)是写死在核心代码里的——第三方想加个工具只能 fork 整个仓库。这条 PR 把内置工具改造成内部插件,做完之后第三方工具作者接入门槛大幅降低

虽然 release notes 没明说,但看 v2 的路线图,这是插件化生态的第一步。

PR #2refactor(core): simplify system context into a belief model

这条标题我一开始也没看懂。看完 PR 描述才反应过来:OpenCode 在重构 prompt 架构——把 system context(系统提示)改成"信念模型",意思是让模型在对话里更清楚自己"知道什么、不知道什么"。

技术细节我不太懂,但意思是说 v2 的对话引擎会让模型对上下文的把握更稳。

PR #3feat(server): durable log reads, changes feed, and watermarked snapshots

服务端日志改造——"持久读 + 变更流 + 水位快照"。

durable 这个词是关键:以前会话日志是临时的,关掉 OpenCode 之后就没了;这条 PR 改完之后服务端能持久存,水位快照意味着可以增量读。

如果往远看一步,这个 PR 是在为 OpenCode v2 的云端历史会话铺路。

普通人现在能感知到吗

不能。

这 19 个 PR 全是底层重构,OpenCode 升级 v1.17.14 之后用起来跟之前一模一样。这也是为什么 kitlangton 这种工作容易被忽略——他在搭地基,但地基是看不见的。

但这也正是我想写这篇文章的原因——如果你只看 release notes 头条,你只会觉得 v1.17.14 是个 codemode 的版本。但 OpenCode 真正的大动作,其实是 kitlangton 在一个人默默搭 v2 架构。

顺便说一下那个 5 个月才合并的 PR

@arvsrn 这次也有 5 个 PR 合并进 v1.17.14,但故事不一样——他其中那个叫 feat(app): v2 review panel overhaul#31882)的 PR,从 5 月 21 日创建到 7 月 6 日合并,整整 46 天

opencode-v11714-03-v2-review.png

这事为啥要单说呢?因为 46 天的 review 流程在 OpenCode 仓库里不常见——他们家 PR 通常是几天到一周。我去看了一下 PR 描述:

Tabs logic is copied from my other unmerged PR (#31364), can dedup once that lands

@arvsrn 在等另一个 PR #31364(tab 逻辑)合并完,才能把自己的 dedup 合并。这是被依赖卡住了——不是他自己拖,是他自己在等的那个东西还没合并。

@arvsrn 这 5 个 PR 加起来做的事:

  • v2 review panel 全 UI 重写(带截图那种)
  • 终端体验改进(terminal improvements)
  • 模型搜索体验改进(model search picker)
  • 子代理 UI 对齐 v2
  • 下拉搜索 bug 修复

合在一起看,是把 Desktop 端往 v2 风格统一。升级 v1.17.14 之后,Desktop 端打开 review 面板会看到完全不一样的 UI。

总结一下这 5 天在发生什么

把这 181 个 PR 当作 5 天的"快照"读,你会发现 OpenCode 现在在做的是三件并行的事

  1. codemode 的实验和试错(23 PR,rekram1-node 主导)
  2. v2 内核架构的地基搭建(19 PR,kitlangton 主导)
  3. Desktop 端体验往 v2 风格统一(5 PR,arvsrn 主导)

这三件事互相之间没有依赖关系——codemode 可以独立发布,v2 内核可以慢慢搭,Desktop UI 可以独立推进。但它们合起来读,指向同一个方向:OpenCode 在憋 v2

v1.17.15 是什么我没猜,但我猜kitlangton 那 19 个核心 PR 做完之后,OpenCode 会切到一个 v2 beta 分支。到那时候再回头看 v1.17.14,会发现它其实是个"承上启下"的版本——codemode 是新功能的探路,v2 内核是新架构的奠基,Desktop UI 是用户能立刻感知到的过渡。

如果你想升级

桌面端用这个(顺便体验 v2 review panel):

brew upgrade opencode         // macOS / Linuxscoop upgrade opencode        // Windows

CLI 就一行:

npm install -g @opencode-ai/cli@latest

第一次启动会比平时慢 1-2 秒——codemode 包加载 + v2 schema 重新生成。第二次起就正常了。

如果你的目的是为了用 codemode——v1.17.14 还不能直接用,要等 codemode 集成进 OpenCode 内部,估计是下一个版本的事。


互动问题:你日常用 OpenCode 用的哪些功能?有没有什么你觉得"已经够用"但其实底层在重构的方向?

精选系列





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