v1.17.10 刚发了,OpenCode 又推送了 v1.17.11(6 月 25 日发布)。
当前仓库:178,721 Stars / 21,927 Forks。
这版只有一个新功能,但就这一个就值得更。
会话回滚:我等你等得有点久
changelog 第一行:
Add session snapshots and revert controls so you can roll a session back to an earlier message, including file changes.
会话快照 + 回滚。可以回滚到之前的某条消息,附带文件变更一起回滚。
之前 OpenCode 的 session 是不可逆的。Agent 跑了一长串对话之后改了不该改的文件、或者某步操作搞坏了代码结构,只能手动 git checkout 或者重新开一个 session 从头来。遇到 agent 自作主张的情况就很烦。
v1.17.11 做的事情,我拆一下:
快照机制:每次 agent 执行完一步(生成一条消息、改一批文件),系统自动拍一个快照,记录当前的文件状态和对话节点。
回滚入口:session timeline 里每一条消息旁边多了回滚按钮。点一下就能把整个 session 状态恢复到那一步——不只是对话回到那个节点,当时的文件改动也一并回退。
这个功能在 OpenCode 的 issue 里催了很久了。特别是那些跑长 session 的人(30+ 回合的 debug、重构、跨文件改动),回滚是刚需。
桌面端改进:拖拽 tab + 快捷键
@arvsrn 个人贡献了 5 个 PR,桌面端这次变动不少:
拖拽 tab(@arvsrn,#31364)—桌面端的 tab 现在可以拖拽排序了。多 session 用户终于不用关掉重新开。
Chrome 风格 tab 快捷键 — mod+1 到 mod+9 快速切换 tab。用键盘多的人应该会喜欢。
空状态页面(@arvsrn,#33315)—没有 session 时不再显示空白页,改了设计。
v2 session 视图的 jump-to-latest 按钮重新设计(@arvsrn,#33809)—跳转到最新消息的按钮换了样式,位置更顺手。
桌面端布局改版持续优化 — titlebar tab 的 size 统一、session 归档功能完善。
崩溃修复:v1.17.10 的问题补上了吗
我知道很多人关心这个。直接说结论:changelog 没有用 "crash"/"fix crash" 这个字眼,但有几个修复跟稳定性直接相关。
我翻了 v1.17.10 的已知问题,这次修的主要是这几个:
- Todo dock 跨 session 乱跑:之前切 session 的时候 todo dock 会移位或者消失
- Provider 弹窗/附件/回滚脱离 session:之前这些 UI 元素会跟所属 session 脱钩,切 tab 之后找不到
- Session 已关闭但 tab 还在:之前关掉 session 后 tab 残留,点了还报错
- 草稿跟 server/项目绑定不牢:之前从 Home 创建的 draft 可能跑到别的 server 下
- Session 通知滞后的 toast 不消失:已经打开 session 了,之前没读的通知还在弹
- 去掉 session loading stripe:之前加载 session 时有条进度条一闪而过,有时会卡住不消失
总结一张表:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如果你升了 v1.17.10 之后遇到上述任何一个问题,v1.17.11 就是补丁版本。
会话回滚这个功能意味着什么
我的理解:
之前:OpenCode 的 session 是"写入式"的——agent 改了什么,文件就变了,除非你人肉 git diff 逐行回退,否则不可逆。
现在:session 变成了"可回退式"的——每一步都有快照,可以倒回去。
这对高风险操作(修改配置、重构核心逻辑、批量替换)是个质变。之前这些操作只能在代码仓库里做确认,现在可以直接在 session 层面控制——回滚按钮按下去,不仅对话重置,文件也恢复。
不过有几点我还没试清楚:
- 快照的存储位置和保留策略(一直存?有数量限制?)
- 回滚之后 agent 的状态怎么处理(之前的上下文是保留还是丢弃?)
- 多人协作时回滚是否会影响其他人
这些问题等我跑一阵子再补充。
2 位贡献者
|
|
|
|---|---|
|
|
|
|
|
|
@arvsrn 已经连续三个版本在修桌面端了(v1.17.9/10/11)。如果想让他修某个 bug,大概去 PR 下 @他比较快。
更不更
建议更。原因依次是:
- 会话回滚——长 session 用户是刚需
- 崩溃修复——如果 v1.17.10 碰到了上面表里的问题,更了就好了
- 拖拽 tab + 快捷键——日常体验提升
v1.17.11 整体给我的感觉是:OpenCode 在做一件对的事——让 AI 会话从"不可逆"变成"可回退"。这件事不止 OpenCode 在做(Cursor 也有 checkpoint),但在开源世界里,这是 agent 类工具第一次把这个能力原生做进去。
互动问题:你用 OpenCode 写代码时,最长的一个 session 有多少回合?有没有过改错文件回退不了的经历?






