OpenCode 2.0 大改版:三項刻意的不兼容變更與遷移路徑

OpenCode 2.0 major release with three breaking changes and migration guide

開源 AI 編程工具 OpenCode 發布 2.0 版本。官方在遷移文件中指出,OpenCode 1 與 OpenCode 2 同樣使用 opencode 指令,但預設不再並存安裝;若以套件管理器安裝過 V1,需先移除,因為 V2 的 curl 安裝程式會取代 V1 的執行檔。[1]

三項刁意的不兼容變更

官方列出 V2 的三項刁意不兼容變更:[1]

  • 插件:使用新的插件 API
  • 伺服器 API 與客戶端:採用新的契約
  • 終端客戶端設定:由分層的 tui.json(c) 檔案,改為單一的全局 cli.json 檔案(會自動遷移)

官方指出,上述範圍以外受支援的 V1 功能,預期仍與 V1 兼容;一些 V1 架構接收、但在 V2 沒有對應的位置會被刁意忽略,並已在文件中列出。已有受支援的伺服器設定位置、代理定義、指令定義、技能,以及 .opencode/ 下的其他檔案,繼可繼續運作而毋需改動;官方強調,若文件所謂受支援的行為在 V2 失效,視之為兼容性錯誤,而非預期的遷移要求。[1]

官方建議的遷移步驟

官方表示,使用者需在開始使用 V2 前重覽所有內容,實務上的遷移順序為:[1]

  1. 保留現有設定與檔案定義
  2. 啟動 V2,並核對模型、認證、代理、權限與 MCP 伺服器
  3. 移植插件,因為 V1 的插件無法在 V2 執行
  4. 移植呼叫伺服器 API 的整合
  5. 準備好時才把設定轉為原生 V2 格式(此步驟可選)

官方提醒,驗證遷移期鋒保留 V1 設定的副本;由於 V1 與 V2 使用相同的設定位置,不要把 V1 指向已轉為原生 V2 專用格式的檔案。[1]

設定與插件格式

官方指出,V2 會從與 V1 相同的位置讀取全局與專案設定(~/.config/opencode/opencode.json(c)、專案根目錄的 opencode.json(c)、以及 /.opencode/opencode.json(c)),並在記憶體中把受支援的 V1 位置與原生 V2 位置正規化,而不改來源檔案;V1 設定格式仍受支援。[1]

插件方面,設定鍵由 plugin 改名為 plugins,原本的「套件+選項」元組改為物件形式;V2 會同時從 .opencode/plugin/ 與 .opencode/plugins/ 發現本機插件,官方建議 V2 檔案放在後者。[1]

伺服器 API

官方指出,V2 有修訂後、更易用的伺服器 API 與一組新客戶端;呼叫 V1 伺服器 API 的整合必須遷移至 V2 API,並可使用 @opencode/client 套件存取已發布的 V2 API。[1][2]

參考資料

[1] OpenCode 官方文件 — Migrate from V1
[2] OpenCode 官方 — 更新記錄 (Changelog)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

*