Skip to content

v1.2.0:SQLite 数据库重构

发布日期:2026年2月14日


一句话总结

这次更新将 OpenCode 的数据存储从分散文件迁移到统一的 SQLite 数据库,性能更稳、查询更快,同时新增 --dir--timeout 命令行参数。


重要提示:首次启动需要迁移数据

这是什么?

OpenCode 1.2.0 将所有会话数据从原来的多个小文件,迁移到一个 SQLite 数据库文件中。

对你有什么影响?

首次启动时会自动执行迁移,根据你的数据量大小,可能需要几秒到几分钟。

如果迁移出问题怎么办?

  1. 原始数据不会被删除,可以安全降级
  2. 如需重新迁移,删除数据库文件:
    • macOS/Linux:~/.local/share/opencode/opencode.db*
    • Windows:%APPDATA%\opencode\opencode.db*
  3. 遇到问题请提交 GitHub Issue,标题中注明 "sqlite"

新功能:命令行参数增强

--dir 参数:指定工作目录

现在可以在运行 Agent 时指定工作目录:

bash
# 在指定目录运行
opencode run --dir /path/to/project "修复登录页面的 Bug"

--timeout 参数:设置超时时间

超时配置从 API 移到 CLI,更容易控制:

bash
# 设置 5 分钟超时
opencode --timeout 300

SDK 更新:PartDelta 事件

如果你使用 OpenCode SDK 开发应用,新增了 PartDelta 事件,只发送文本的增量变化,而不是每次都发送完整内容:

typescript
PartDelta: BusEvent.define(
  "message.part.delta",
  z.object({
    sessionID: z.string(),
    messageID: z.string(),
    partID: z.string(),
    field: z.string(),
    delta: z.string(),
  }),
)

好处:减少数据传输量,实时性更好。


桌面端改进

  • 终端窗口大小调整不再出问题
  • 大文件 Diff 显示性能优化
  • VPN/隧道连接时使用 prompt_async 避免超时
  • 服务端地址变化时自动重连

问题修复

TUI 不再因工具参数错误崩溃

之前如果工具输入格式不对,opencode run 会直接崩溃。现在会优雅处理。


要不要升级?

情况建议
数据量大、想要更好性能✅ 升级
桌面端有大文件 Diff 需求✅ 升级
用得好好的,没问题可以观察几天再升

升级命令

bash
opencode upgrade

技术细节(可跳过)

点击展开完整更新列表

Core(核心)

  • 回归 SQLite 数据库实现
  • 超时配置从 API 移到 CLI 命令行参数
  • 更新 AI SDK 包,支持 Claude Opus 4.6 自适应推理

TUI(终端界面)

  • 修复工具输入格式错误导致的崩溃
  • run 命令添加 --dir 参数

Desktop(桌面端)

  • 修复 Rust 编译问题
  • 移除 OPENCODE_SQLITE 环境变量
  • 修复终端大小调整
  • VPN/隧道连接使用 prompt_async 避免超时
  • 服务端地址变化时重新挂载 SDK
  • 大文件 Diff 显示性能优化

社区贡献(12 位)

  • @BlankParticle:添加 --dir 参数
  • @neriousy:大文件 Diff 性能优化
  • @Seungjun0906:文档同步、韩语翻译
  • @ysm-dev:服务端地址变化重连
  • @Annopick:中文文档修正
  • @eytans:VPN 超时修复
  • @G36maid:Arch Linux pacman 安装文档
  • @yanhao98:超时配置迁移
  • @niushuai1991:中文文档标准化
  • @kitlangton:行内代码链接支持
  • @0xK3vin:工具输入错误处理
  • @Brendonovich:桌面端 Rust 修复

← 返回更新日志