覆盖时间:2026-03-06 ~ 2026-03-12(W11) 版本跨度:v1.2.20 → v1.2.24,7 天 5 个版本 项目地址:github.com/anomalyco/opencode
用 AI 写代码,你一定遇到过这种时刻:
让 Agent 帮你重构一个模块,它改了十几个文件,写完你才发现方向不对。这时候怎么办?撤销?undo 到哪?重新开一个对话从头描述?
这是所有 AI 编程工具用户的共同痛点。本周,opencode 给出了一个答案。
🌟 本周最值得关注:会话时间线,终于可以 Fork 了
3 月 12 日,核心成员 @adamdotdevin 合并了一个等待了将近两个月的 PR——Restore to Message + Fork Session(#17092)。
这个功能简单说就是:把 git 的分支思维,带到 AI 对话层。
具体能做什么?
打开 Desktop App,每一条你发出的用户消息旁边,现在会有两个新按钮:
「Reset to this point」(重置图标):把对话截断到这条消息,之后的 AI 回复全部收起来,同时把这条消息的内容重新填回输入框——让你修改后重新发送,在同一个对话内走一条新路。
「Fork to new session」(分叉图标):从这条消息开口,新开一个独立对话,原对话原封不动保留。新对话里,消息内容自动填好,直接改改就能发。
而被 Reset 收起来的消息不是删掉了——它们还在,显示在输入框上方的 "已回滚消息"面板里,随时可以点 Restore 恢复回来。整个过程是可逆的。
三个最典型的使用场景
场景一:Agent 走偏,换个指令重试
你让 Agent 写一个用户注册 API,它写成了 REST 的,但你其实想要 GraphQL 版本。直接在你发出的那条消息旁点 Reset,改成"用 GraphQL 写一个用户注册 API"重新发送,干净利落,对话不会越来越长越来越乱。
场景二:方案对比,两条路都想看看
同一个排序算法,用快排还是归并哪个更好?以前只能选一个写完再换。现在从同一条消息 Fork 出两个对话,各走各的,最后对比结果再合并到项目里。像 git checkout -b 一样切换探索分支,改变工作方式的感觉。
场景三:探索性重构,随时有退路
做大规模重构时,每隔几轮在关键节点 Fork 一个"存档"对话,下面怎么搞都有后路。这比手动 git stash 更轻量——不需要动文件系统,只是会话层面的分支。
为什么这个功能迟到了两个月?
其实这不是一个新想法。Issue #9661 在 1 月 21 日就提出了"Desktop/Web 缺少 Revert 和 Fork 操作",此后社区先后有 4 个 PR 尝试实现类似功能,但都因为各种原因没有合并。最终还是核心成员亲自下场,328 行代码一次交付。
当前限制:这个功能目前只在 Desktop App,TUI 用户暂时用不到。Fork 出来的子对话和原对话之间也没有可视化的父子关系,fork 多了可能需要自己管理一下。文件层面的回滚还是需要配合 git 或 snapshot 手动处理。
🖥 Windows ARM64,等来了
另一个值得单独说的大更新:Windows ARM64 原生支持,今天正式合并(PR #16696)。
Surface Pro X、联想 ThinkPad X Elite 这些 Qualcomm 芯片笔记本的用户,此前只能跑 x64 模拟模式,性能和功耗都有明显折损。这次覆盖了完整发布链路:
- CLI 的 ripgrep、Parcel watcher 等依赖全部加入 ARM64 解析
- Tauri Desktop 和 Electron Desktop 的 sidecar CLI 都映射了 ARM64 二进制
- 自动更新元数据(latest.yml)支持 x64 + ARM64 合并发布,升级弹窗能正确推送对应架构
这是社区贡献者 @Hona 独立完成的,历经 17 次提交打磨 CI 流程,可以说相当扎实。
📦 其他本周值得关注的更新
GitLab 用户解锁 1M Context 窗口
v1.2.24 新增了自动向 GitLab API 发送 context-1m-2025-08-07 beta 请求头(@Krule 贡献),无需任何配置即可解锁 100 万 token 上下文窗口。同版本还新增了 Copilot GPT-5.4 xhigh 模型支持,TUI 侧也初步加入了 Workspace 管理能力。
一键"不再问我":Auto-accept Permissions 模式上线
v1.2.22 新增了"自动接受所有权限请求"模式,适合跑长流程自动化任务时不想被各种确认弹窗打断的场景。配合新增的 OPENCODE_SKIP_MIGRATIONS 环境变量(遇到数据库迁移问题时的应急手段),这个版本对自动化工作流用户相当友好。
类型系统大规模重构
@kitlangton 今天连续合并了 5 个 PR,将 SessionID、ProjectID、PartID、MessageID、WorkspaceID 全部通过 Drizzle + Zod 做了 Branded Type(品牌化类型)处理。通俗说就是:以后这些 ID 在类型层面天然不能混用,彻底堵住了一类因为"传错了 ID"引发的运行时 bug,对大型项目的稳定性提升很有意义。
🐛 本周主要 Bug 修复
已修复
- PTY session handle 泄漏(v1.2.21):终端 session 未正确释放 handle,长时间使用会耗尽文件描述符。@kikuchan 提交修复。
- edit 工具破坏行尾符(v1.2.21):写回文件时把 CRLF 强制转成 LF,Windows 项目受影响。@ranqn 修复,现在保留原始行尾符。
- Git Bash / MSYS2 / Cygwin 路径解析失败(v1.2.21):POSIX 风格路径(
/c/Users/...)导致 diff view 中断,v1.2.21 专项修复。 - fsmonitor 守护进程泄漏 60GB 内存(v1.2.20):CI 环境长时间跑测试后内存积累超 60GB,本周修复。
- TUI
/mcp和/export命令切换失效(v1.2.22):两个命令的开关行为均为回归 bug,本周修复上船。
仍在跟踪
- #17122:Linux 下 TUI 终端 UI 无限重渲染,CPU 飙升,今日新开,kommander 介入处理中。
- #16878:v1.2.21 后部分旧 session 无法加载。临时方案:设置
OPENCODE_SKIP_MIGRATIONS=1绕过。thdxr 已介入。
📊 本周数据速览
| 本周版本 | v1.2.20 ~ v1.2.24,5 个版本 |
| 今日合并 PR | 10+ 个(含 ARM64、Fork Session、强类型 ID 等) |
| Open Issues | 5,020+(本周新增约 100+) |
| Stars | ~117k |
| 核心主题 | Fork Session · Windows ARM64 · 强类型 ID 重构 · Electron Desktop |
opencode 这个项目的节奏一直很猛,平均 1.4 天发一个版本。这周两个最大的更新一个改变了"用 AI 写代码时走错路的代价",一个补上了一个平台支持的空白——都是实实在在落地的东西,不是路线图上的 PPT。
Fork Session 这个功能我个人觉得值得所有 AI 编程工具都跟进,它触碰的是 AI 对话工具的一个根本性体验问题:对话是线性的,但思考和探索从来不是。
下周持续跟踪:Linux TUI 重渲染 bug 修复进展、旧 session 加载问题解决情况、Fork Session 是否扩展到 TUI。
截至发稿(2026.3.14),opencode GUI 和 TUI 都升级到1.2.26版本了,都支持fork功能! 大家快去体验!