OpenCode v1.17.18 是 3 天前发的。我以为会安静几天,结果今天 v2 分支一下午出来两个 TUI 修复 PR——而且都不是人类写的。
我看完两个 PR 之后最大的感受不是"修了什么 bug",而是OpenCode 的开发流程变了:bot 探索方案、出视频证据,kitlangton 看完关掉、重新提一版、合并。这套流程以前没见过。
今天这 2 个 PR 是这样的
两个 PR 都在 v2 分支(不是 v1.17.x),都是 TUI 修复,标题前缀都是 fix(tui):。
#36516 fix(tui): show background subagent completion(已关闭)时间:2026-07-12 20:41 UTC(北京时间)。提交者:opencode-agent[bot]。状态:closed(未合并)。
干的事:当你 launch 一个后台 subagent(比如让 Researcher 跑 30 分钟),它跑完之后父会话屏幕是空的——以前只能等下一个 prompt 时模型自己说"我之前派了一个 Researcher,它说……"。这个 PR 改完后,subagent 结束时会往父 transcript 推一条 notice:
颜色按状态变:info(完成)/ warning(取消)/ error(失败)。技术上是走 synthetic event 通道,带 metadata {source: "subagent", childID, agent, state},TUI 端 SessionNoticeMessageV2 读这个 metadata 渲染。
改动 3 个文件 +56 行:
packages/core/src/tool/subagent.ts+16/-5packages/core/test/tool-subagent.test.ts+9/-0packages/tui/src/routes/session/index.tsx+31/-3
提交分支命名 completion-ui-study——"study" 这个词暗示是实验性的,不是要直接合并的。
#36567 fix(tui): restore clicked reverted prompt(开放中)时间:2026-07-12 21:49 UTC。提交者:opencode-agent[bot]。状态:open(等 review)。
干的事:你点一条历史消息 → "Revert" → 服务端 revert 成功。但本地 prompt 不会更新成那条消息——这跟 /undo 的行为不一致。/undo 一直会把 prompt 恢复成 revert 的那条,包括 files、agents、mention 全带回去。
这个 PR 的修法不是各管各的,而是抽出公共函数。新建 packages/tui/src/util/revert-prompt.ts,里面一个 revertedPrompt(message): PromptInfo 函数。click-revert 和 /undo 都调它——保证两条路径行为一致。
改动 4 个文件 +80/-19,其中 2 个是新文件(util + test):
packages/tui/src/routes/session/dialog-message.tsx+12/-4packages/tui/src/routes/session/index.tsx+10/-15packages/tui/src/util/revert-prompt.ts+19/-0 NEWpackages/tui/test/util/revert-prompt.test.ts+39/-0 NEW TEST
bot 提 PR、kit 重做一遍、3 分钟合并
这是我今天看完时间线最想讲的。
#36516 不是被合并的,是被关闭后由 kitlangton 重新提了一遍。整个流程:
- 20:41:03
#36516被创建,分支completion-ui-study,提交者opencode-agent[bot] - 20:41:11 github-actions 自动打上
v2+tui+evidence标签 - 23:37:35 kitlangton 关闭 #36516(branch name 带 "study"——他看出这是 bot 探索用的)
- 23:38:01 kitlangton 24 秒后提交
#36530——同一个标题、同样的代码 diff,但 commit 信息是手写的(更结构化),PR body 列了完整 testing 步骤 - 23:43:13 合并 + 关闭分支(合并 commit
5414697b,head_ref 自动删除)
从 bot 提交到合并总耗时 41 分钟。
关键观察:
- bot 的 PR 大概率不会被直接合并。bot 的工作是"探索 + 出证据",最终决定权在人。
- 视频证据是新规。两个 PR 都上传了
.webm或.mp4作为 release asset(#36516 是 final.webm 2.65s + final.png;#36567 是 revert-click-demo.mp4 6.05s)。PR body 里直接嵌入预览,你可以看视频而不用自己 build。 - kitlangton 一人 review。今天 v2 分支一天有 30 个新 PR,但合并速度很慢——kitlangton 一个人 review + 重写。
这两个 PR 改完后你能感觉到什么
短期:什么都不用做。两个 PR 都在 v2 分支,v1.17.18(2026-07-10)才是当前能用版本。TUI 修复要等 v2 发布才能用上。
中期:subagent 完成有通知了。这个改动对重度 subagent 用户(频繁用 Explore / Researcher / Oracle 后台跑)非常直接——以前 30 分钟 silent waiting 的体验没了。
另一个:点 Revert 行为一致了。<code>/undo</code> 和"点击消息 → Revert"两条路径现在走同一个函数,files/agents/mention 全带回去。重构代码本身也是进步——以前是两份重复代码在两个地方维护。
关于 bot 工作流的判断:
- 短期(今年):bot 写的代码还是需要人类重做一遍才能合并。kitlangton 不是信任 bot,而是把 bot 当作"探索工具 + 出视频证据工具"。
- 中期(明年):这套工作流如果扩散到其他开源项目,maintainer 工作量会从"写代码"变成"review + 重做"。看 OpenCode 的 bot PR 质量,是观察"AI 辅助开源"未来形态的窗口。
- 用户能做的最实际的事:在 GitHub 上
Watchv2 分支。第一个 beta/release-candidate 出来时,你会收到通知。
一点观察
我今天最意外的不是修复内容(两个 TUI 修复都不大),而是提交者列表里全是 bot。
如果这件事扩散——bot 提 PR → 出视频 → 人类重做 → 合并——开源协作的分工就变了:写代码的人少了,review 的人多了。今天 OpenCode 还是 kitlangton 一人 review,但其他项目呢?等 PR 数量是现在的 10 倍的时候,谁来 review 那些 bot 提的 PR?
这两个 PR 给我的不是答案,是一个清晰的窗口——让我们看到 AI 辅助开源接下来可能会长成什么样。
我会继续看 v2 分支。如果有更多有意思的 PR(特别是新功能级别的,不是修复),再写一篇。






