opencode v2.1.0 上线 Windows 持久 PTY 与 TUI todo 列表,并在 SDK 与插件契约中把 provider 重放数据统一改名为 `native`
v2.1.0 于 2026 年 10 月 20 日发布在 @opencode/cli —— v2 线的第一个 minor,同样没有 GitHub release 页面 —— 本文读取 opencode.ai/changelog 的官方 changelog 条目(2026-10-21 抓取)。这次发布把三个头条功能与一批有意的破坏性契约重构(#57260)打包在一起。
要点:Windows PTY、TUI todo,以及不再死于 Bun 截止时间的长命令
Windows 持久终端:Windows x64 与 ARM64 获得持久 PTY,与 macOS/Linux 工作流对齐(#56245)。TUI todo 列表:通过 { "experimental": { "todo": true } } 开启,任务列表渲染在会话、紧凑卡片与侧边栏中;todowrite 工具在同一实验开关下回归,接受 { todos: [{ content, status }] }(#56947)。长时间运行的 TUI 命令:过去会撞上 Bun 五分钟 fetch 截止时间的插件命令、shell 调用与请求,现在可以一直跑到结束(#55149)。
破坏性部分:重放数据统一叫 “native”
一次有意的重构(#57260)把同一概念在 SDK、HTTP 消息/事件流与插件契约中统一改名:文本/推理部分及其生命周期事件(以及 session.tool.called)的 state 改为 native;助手/压缩消息、session.step.ended/session.step.failed/session.compaction.ended 与插件压缩钩子结果的 providerState 改为 native;工具成功/失败事件的 resultState 改为 native;导出的 schema 类型 SessionMessage.ProviderState 改为 SessionMessage.Native。工具的执行 state 与 UI metadata 是分开的两回事,不在改名范围内。工具调用与结果改为共享一个可选的 tool.native(取代 providerState/providerResultState),重放按 provider/model ID 匹配而不是按来源。改名之外:Credential.Key.configuration 被移除,配置答案改存 metadata;新的摘要压缩通过 metadata.keepID 引用保留的消息(recent 移除),并把 provider 压缩窗口存进 native.messages(providerContext 移除);session.compacted 事件被移除,改用 session.compaction.started/ended。changelog 明确说明:已存储的会话、凭据与旧导入仍可通过兼容解码器读取——不需要数据库迁移。
2.1.0 的其他内容
会话归档回归,支持过滤与恢复(#53759)。已保存的权限动作与资源模式事后可编辑(#56659)。摘要压缩现在覆盖整段对话、逐字保留近期文本,并更早启动(#57091)。新增 streamUsage 模型兼容选项,为拒绝 stream_options 的 provider 关闭该字段(#57255)。TUI 方面,/models 打开时定位当前模型并保留服务端的模型排序(#57151)。SDK 方面,Gemini Live 加入 client.voice.session(...),通过 WebSocket 支持 gemini-3.8-live* 模型,使用已存的 Google key 或 GEMINI_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY / GOOGLE_API_KEY 鉴权(#56888);client.permission.saved.update(...) 可修改已保存权限的动作或资源(#56659);client.session.list(...) 支持归档过滤(#53759);插件作者在 Effect 与 Promise 两套 API 中都拿到了分页的 ctx.session.list(...)(#56264)。
同日跟进的 v2.1.1
npm 的 latest 在同日 13:33 UTC 移到 2.1.1(发布于 2026-10-20)。截至 2026-10-21 它尚无 changelog 条目,因此这里的事实仅来自仓库 v2.1.0…v2.1.1 的 compare 与 npm,不在此之外做断言:新设计 TUI 一波落地——模型切换器、settings 与 export 对话框、会话导出对话框、免费模型选择器、设置项描述(#56093 至 #56100)——外加一个在包规范化之后构建 provider 变体的修复(#57075),以及 models.dev 目录刷新向全服务端广播(#57148)。
source: https://opencode.ai/changelog