OxideTerm 外掛相容性
在分配相容邊界前,請先閱讀相關實作:
crates/oxideterm-plugin-manifest/src/registry.rs:目錄發行與修正資料。crates/oxideterm-plugin-registry/src/registry.rs與compatibility.rs:版本選擇、快取需求與啟動探索。crates/oxideterm-plugin-registry/src/install.rs:套件安裝檢查。crates/oxideterm-gpui-app/src/workspace/plugin_entity.rs:重新整理、啟用閘控與任務擁有權。- 受變更影響的特定主機 API、執行環境或語法載入器。
crates/oxideterm-editor-syntax/src/plugin.rs與crates/oxideterm-gpui-editor/src/languages.rs:惰性語法載入與開啟文件重新整理。
主機端合約
選擇主機與平台同時支援的最高發行版本。僅在該相容版本比已安裝外掛更新時提供更新;對於較高但不相容的版本,請單獨說明。絕不靜默降級。
在應用程式升級與降級後,啟動時重新檢查已安裝外掛。套用針對確切外掛 ID 與版本的最新快取修正,但不改寫套件檔案。保留檔案、設定與啟用偏好設定,同時封鎖不相容的啟用。保持啟動重新整理的範圍受外掛實體所有;離線啟動使用最後有效快取。
官方客戶端使用 v2 摘要目錄,並為已安裝外掛與目前市集頁面載入校驗和繫結的歷史紀錄。歷史紀錄必須符合其摘要識別、最新版本、有效主機範圍、大小與 SHA-256。保留已凍結的 v1 端點、確切歷史快照、參照資產與 v1 快取讀取器。所有後續外掛、發行版本與修正僅屬於 v2;現有客戶端必須升級主機才能接收它們。新客戶端僅擷取 v2;若失敗,保留最後有效快取,而非以凍結的 v1 取代。在發行需要 v2 的主機之前,請先發佈 v2。在取代精簡根快取前,先儲存已驗證的原始歷史紀錄;啟動與手動安裝必須針對確切安裝版本解析修正。取消過時的頁面請求,並捨棄來自其他頁面或目錄快照的結果。目錄維護與產生屬於市集每個外掛的來源記錄與發行自動化。
對於語言提取,請驗證語法載入器、Tree-sitter ABI 與實際舊客戶端行為。主機範圍不能取代這些檢查。不要僅僅因為新外掛或應用程式版本發行,就為舊外掛指定上限。
從 2.2.2 版起,語言清單可以宣告 displayName、grammarName、extensions 與字面 fileNames。新的 ID 是動態的;不要為它們擴充舊版列舉或檔案關聯表格。已發佈的語言套件保留其回退關聯。目錄宣告取自已驗證的封存檔,並繫結至 v2 歷史紀錄,其中已安裝清單優先於相容目錄提示。新的宣告需要 >=2.2.2;對舊版套件的普通查詢修正保留其現有主機範圍。在 IDE、本機與 SFTP 預覽中,保持開啟文件重新偵測、遺失外掛路由與離線目錄提示的一致性。
從 2.2.2 版起,語言套件可以將內嵌語法打包在 injections 中。依其宣告的校驗和驗證每個剖析器、重點查詢與父選擇器;選擇器擷取 injection.content。文件擁有每個內嵌剖析器及其取消與釋放。在編輯過程中保留原始位元組坐標,並將子重點限制在包含的區域中,在那裡取代父捕獲,使模板捕獲無法隱藏指令碼符記。打包的語法是其所屬父套件的私有語法,不會註冊單獨的檔案關聯。
對於 ACP 代理提取,請將 ACP 客戶端、權限決策與行程擁有權保留在主機端。已發佈的 acp 清單仍受支援,並會正規化為通用輔助計畫。新的輔助清單宣告功能 acp、協定 acp 與版本 1。代理直接使用 ACP stdio;不要將其流量路由通過一般外掛監控程序。檢查 registry.acp_agents、workspace/acp_plugins.rs 與 workspace/acp_workspace.rs 以了解啟動閘控、啟動解析與清理。2.2.1 版之前的主機無法載入此執行環境。在將捆綁的適配器遷移到外掛繫結時,保留現有代理身分與使用者選項。
已發佈的 Mosh 清單使用 terminal-transport;新的輔助清單宣告功能 terminal-transport、協定 oxideterm-mosh 與版本 1。將 SSH 引導、終端機渲染與本機預測保留在主機端;UDP、SSP 與加密屬於引擎外掛。2.2.1 版之前的主機無法載入它。檢查 oxideterm-mosh 與其工作區擁有的 MoshPluginSessions 以了解啟動閘控與行程退役,然後再進行套件更換。在輸出背壓下,兩個管道方向必須保持獨立。RDP、VNC 與 Mosh 共用 remote-connections 目錄類別。
協調發佈
已發佈的遠端桌面清單使用 remote-desktop;新的輔助清單宣告功能 remote-desktop、協定 oxideterm-remote-desktop 與版本 1。兩者都正規化為通用輔助計畫,位於一般外掛監控程序之外。將原生檢視器、輸入、憑證與 SSH 通道擁有權保留在主機端。需要支援的 contributes.remoteDesktop.protocolVersion,並僅解析受信任、已啟用、相容的已安裝可執行檔。在更新或移除其檔案之前,停止並回收輔助行程;停用自動重新連接,直到有相容的提供者可用。在提取輔助程式時,保持現有二進位 stdio 格式不變。2.2.1 版之前的主機無法載入此執行環境。
通用的 helper 清單需要 2.2.2 版起的主機。在正規化它們時,保留已發佈的清單種類、功能核准邊界與協定承載。執行環境計畫統一不會將子擁有權轉移給外掛監控程序。FIDO 宣告功能 ssh-authentication、協定 oxideterm-security-key 與版本 1;其驗證任務擁有取消與回收。
外掛建立、發行記錄與相容性修正屬於 AnalyseDeCircuit/oxideterm-plugins 倉庫。透過倉庫識別來定位其實際簽出,而不是假設本機目錄名稱。閱讀其 .agents/skills/oxideterm-plugin-release/SKILL.md 並使用其發行指令碼。標準技能也可在以下位置取得:
當該技能或其指令碼尚未發佈時,使用本機簽出。當所需工具遺失時,不要發明替代的發佈流程。僅憑主機實作變更無權授權發佈外掛。
對於變更的行為,使用擁有該邊界的現有 registry 與外掛實體測試。涵蓋受影響的風險:相容版本選擇、升級/降級拒絕、修正復原或離線啟動。不要僅僅因為外掛相容性檔案變更就重新執行不相關的測試套件。