OpenCode v2.2.4 更新:终端持久化与交互式工件发布

OpenCode v2.2.4 更新:终端持久化与交互式工件发布

OpenCode 官方于 10 月 30 日推送了 v2.2.4 版本更新,该版本为不可变发布,主要涉及开发分支的五个提交。此次迭代重点强化了桌面端终端的稳定性,并引入了新的交互式工件发布机制,同时优化了 Claude Agent 的配置流程及工作树基础分支选择体验。

核心功能升级

桌面终端持久化

桌面终端现在归属于会话层级,具备跨服务器重启的存活能力。滚动缓冲内容在重启后得以保留,且能与 TUI 及其他窗口保持同步。重命名的终端在重启后也会维持原名称。这一变更对应问题跟踪 #60346。

交互式工件发布

通过在 opencode.json 中启用 “experimental”: { “artifacts”: true } 配置项,智能体现在可以通过内置本地提供商或插件提供的存储介质,发布、更新并托管 HTML 或静态工件。该功能在 #60351 中实现。

Claude Agent 引导式配置

在提供商选择器中选中 Claude Agent 后,系统会自动复制 claude auth login 命令,安装 Claude Code 并验证连接状态,确认无误后才进入模型选择阶段。此流程优化记录在 #60603。

快速选择基础分支

创建 worktree 时,用户可通过快捷键 ⌘⌥.(macOS)或 Ctrl+Alt+.(Windows/Linux)打开“选择基础分支”界面。该命令也已集成至命令面板及“设置 > 快捷键”中,详见 #60579。

底层与引擎优化

改进项

  • 新增可选工件功能,包含 artifact_create、artifact_read、artifact_update 及 artifact_delete 操作,并内置本地静态文件提供商(#60351)。
  • 启用的计划任务现在运行于 opencode serve 环境下,多服务器进程间实现协调,确保计划任务仅触发一次。该功能仍通过 experimental.schedules 保持可选状态(#60478)。
  • 提高了 DeepSeek V4.1 Flash 在 OpenCode Go 中的限制阈值(#60625)。

缺陷修复

  • 允许用户、项目及远程配置覆盖 Console 提供的提供商名称、限制、变体、设置及请求头(#60597)。
  • 防止本地 OpenCode 服务请求被环境配置的代理拦截(#60441)。
  • 将 Claude Code 中误导性的 /login 指令替换为 claude auth login,感谢贡献者 @Tarquinen(#60592)。

界面与交互修复

TUI 缺陷修复

  • 当主题或无关提示状态变更时,保留插件应用的提示光标样式(#60599)。
  • 为编辑和补丁差异视图添加缺失的右侧填充(#60614)。
  • 将垂直会话标签的活动脉冲延伸至整个标签宽度(#60338)。

桌面端改进与修复

  • 终端迁移至持久会话 PTY,与 TUI 共享,支持滚动恢复、服务端重命名及重启持久化(#60346)。
  • 新增 Claude Agent 安装、登录、连接检查及“需要登录”状态恢复的引导流程(#60603)。
  • 在命令面板和快捷键中添加“选择基础分支”,绑定 ⌘⌥. 或 Ctrl+Alt+.(#60579)。
  • 简化会话位置弹出窗口,提升长路径的可读性(#60492)。
  • 修复终端标签点击和重命名字段与目标标签错位的问题(#60645)。
  • 命令面板搜索中,匹配命令优先于会话显示(#60616)。
  • 恢复从打开的操作菜单中复制用户消息的功能(#60576)。
  • 减少长会话中流式传输 Markdown 时的重复工作与内存分配(#60549, #60562, #60577)。

SDK 与扩展接口

SDK 增强

  • 新增 client.experimental.artifacts.providers,支持 list、create、get、update、delete 及 view 操作(#60351)。
  • 扩展 client.experimental.persistentPty.update,支持终端重命名或清除用户标题,并暴露 userTitle 及 persistent-pty.updated 事件(#60329)。

扩展功能

  • 为 Effect 和 Promise 插件添加 ctx.experimental.artifact.transform(…),用于注册工件提供商、能力、提示词及默认提供商(#60351)。

发表评论