迁移至 1.0 | OpenCode

OpenCode 1.0 是对 TUI(终端用户界面)的一次完全重写。我们从基于 go + bubbletea 的 TUI(存在性能和功能局限)迁移到了内部开发的框架 OpenTUI,该框架采用 zig + solidjs 编写。新的 TUI 与旧版的操作逻辑一致,因为它连接的是同一个 OpenCode 服务器。

升级 (Upgrading)

如果您当前使用的是旧版本,系统不应自动升级到 1.0。不过,某些较旧版本的 OpenCode 始终会抓取最新版本。
若要手动升级,请运行以下命令:
opencode upgrade 1.0.0
若要降级回 0.x 版本,请运行:
opencode upgrade 0.15.31

交互变更 (UX changes)

  • 会话历史更紧凑:仅显示编辑(edit)和 Bash 工具的完整细节。
  • 新增命令栏:几乎所有操作都通过命令栏进行。在任何上下文中按下 Ctrl + P 即可调出,查看所有可用操作。
  • 新增会话侧边栏:提供有用信息,可以切换开启或关闭。
  • 功能移除:我们移除了一些不确定是否有人在使用的功能。如果发现某些重要功能缺失,请提交 Issue,我们会尽快将其加回。

破坏性变更 (Breaking changes)

按键绑定重命名 (Keybinds renamed)

为了确保在不同环境下渲染的一致性,以下是 1.0 版本中重命名的按键绑定对照表:
旧绑定名新绑定名
messages_revertmessages_undo
switch_agentagent_cycle
switch_agent_reverseagent_cycle_reverse
switch_modeagent_cycle
switch_mode_reverseagent_cycle_reverse

按键绑定移除 (Keybinds removed)

以下按键绑定已被移除,其功能已被合并或被新的命令栏操作取代:
  • messages_layout_toggle
  • messages_next
  • messages_previous
  • file_diff_toggle
  • file_search
  • file_close
  • file_list
  • app_help
  • project_init
  • tool_details
  • thinking_blocks