viburnum:在多臺機器上對齊 DSH 插件檢出與工作臺

前言

在 DeepSeek Harness(DSH)裏做插件,常見做法是把倉庫 clone 到本機、在 profile 裏掛上路徑,再在筆記本和臺式機之間用 git 手工 fetch、push、記「哪臺最後推過」。插件一多,側邊欄裏很難一眼看出是已同步、可拉取、有未提交改動,還是已經分叉。viburnum 是 dsh-works 發佈的客戶端類插件:在同一套 profile 下管理已鏈接的插件檢出,用狀態和一鍵 Sync 儘量讓兩臺機器跑同一份代碼,並自帶安裝入口與工作臺界面。社區目錄見 skillhub.cn 上的 viburnum 條目;源碼與說明以 GitHub 倉庫 爲準。

這是什麼

viburnum 的定位是一句 README 裏的概括:A workbench for your own DeepSeek Harness plugins: create them, mount them, choose which version runs, and keep two machines in sync. 它監視 profile 已鏈接的 clone,在需要時通過 fetch、fast-forward、rebase 或 push 對齊分支,而不替你 commit,也不 force-push。命令行入口是 vib,viburnum 與之等價。UI 文案以英文爲主;README 寫明無遙測、無獨立網絡守護進程、無賬號,外向流量僅爲對已鏈接目錄執行的 git fetch/push。

核心功能

側邊欄與總覽

側邊欄在 Plugins 上方有一行彙總:一個色點表示所有已鏈接 checkout 中最差狀態——綠色當前、紫色可拉取、橙色有未提交、紅色未推送或分叉、灰色未知——右側還有聚合的 ↑ahead ↓behind 計數。

viburnum 頁面與工作臺

viburnum 主列表展示各已掛載檢出:插件圖標、聲明版本、track、方向計數與目錄,並提供 Refresh、Sync all、Install、Hygiene;點某行進入該插件的工作臺詳情。詳情頁以分支爲主控件,展示 incoming changelog(Markdown)、目標/當前版本、內聯 README 與 CHANGELOG、在桌面打開目錄,以及 Update / Sync / Revert、切換 track 等操作。

每個 bundle 跟隨一條 track(例如 main 或試驗用的 dev),且 track 按機器配置,因此筆記本可以跟 dev 而辦公室機器留在 main。Update 僅是 fetch + fast-forward,不涉及 pnpm、lockfile 或 profile 編輯。

安裝入口

支持三種安裝方式:本機目錄(Host 原生文件夾選擇)、倉庫 URL、以及 Organisation(對配置的 GitHub owners 做可搜索分頁列表,在 git 已存 GitHub 憑證時可含私有庫;可預覽 README)。新 clone 進入 shelf(pluginsDir);profile 已鏈接的檢出不會被移動。安裝統一走 pluginManager.installBundle。README 註明從目錄、倉庫 URL 或 GitHub organisation 安裝的能力隨 0.2 路線演進;以當前倉庫文檔爲準。

Sync 與安全邊界

Sync 會推送未發佈的 commit、fast-forward,或對私有分叉 rebase 後再 push;若 rebase 會改寫已發佈歷史則停止並展示兩側;衝突時 abort 並把文件交還給你。Revert 可恢復最近一次 update 或 switch 的快照。

時間線、衛生掃描與漂移

Timeline 記錄自上次查看以來的 incoming commits 與 viburnum 自身操作;vib log 可讀並清空。Hygiene scan(vib hygiene)報告重複檢出、未合併進 main 的本地分支、髒工作區並給出建議,不自動刪除或 checkout。

Settings → viburnum 可配刷新間隔、啓動時刷新、檢出目錄、organisation 列表及默認 org、harness 漂移警告等,寫入 profile 狀態後立即生效。

Harness-drift tracking 會在運行中的 DSH 版本相對上次發生變化時警告,並對 engines.dsh 與當前 harness 不匹配的插件逐項提示。

面向模型的工具與 CLI

提供五個需批准纔可執行寫操作的工具:vib_status、vib_update、vib_sync、vib_switch、vib_revert(讀操作免費)。

CLI 子命令包括:

vib status | refresh | update | sync | switch | revert | log | hygiene | install | new

支持 --json 與 --dry-run。

狀態保存在 $DSH_HOME/profiles/<profile>/.viburnum/state.json(原子寫入);頁面通過 Host 上的 /viburnum/status 與 /viburnum/action(需 x-viburnum: 1 頭)拉取與執行操作,瀏覽器側約每 30 秒輪詢狀態路由。

安裝與啓用

插件須由 DSH 插件管理器裝入 profile,README 給出的示例爲本地路徑添加(請將路徑換成你的 clone 位置):

dsh plugin --profile web add C:\Users\<you>\Documents\deepseek-harness\viburnum

若要在終端直接使用 vib,需把 CLI 鏈到 PATH(仍在插件目錄內執行):

cd C:\Users\<you>\Documents\deepseek-harness\viburnum
npm link

package.json 要求 Node >=22,engines.dsh 爲 ^0.2.1-rc.2。許可證爲 MIT。

配置

在 cordis.patch.yml 中,viburnum 條目可按 id 覆蓋字段,例如:

- id: viburnum
  config:
    checkIntervalMinutes: 15
    fetchTimeoutMs: 30000
字段 默認值 含義
checkIntervalMinutes 5 後臺檢查間隔;0 表示僅在需要時檢查
fetchTimeoutMs 20000 單次 git 進程(含 fetch)超時上限
catalogOwners ['dsh-works'] Organisation 安裝門讀取的 GitHub owners
pluginsDir '' 新倉庫 clone 的 shelf;空則 $DSH_HOME/viburnum/plugins

無效配置會導致插件加載失敗並指出字段與範圍。部分選項也可在 Settings → viburnum 寫入 state,優先於部署默認直至再次修改。

典型用法

  1. 用 profile 鏈接你正在開發的插件目錄(或經 viburnum 的 Install 門安裝新 bundle)。
  2. 打開 viburnum 頁面,看色點與 ↑ahead ↓behind;在一臺機器上 commit 後,在另一臺點 Sync 或對工作臺單庫執行 Update / Sync。
  3. 試驗分支時用工作臺上的 track 切換;筆記本跟 dev、另一臺跟 main 時,每臺各自切換即可。
  4. 終端批量查看:vib status;需要 JSON:vib status --json;演練不寫盤:vib sync --dry-run。
  5. 定期 vib hygiene 查重複目錄與髒樹;版本與 harness 不匹配時留意設置裏的 drift 警告。

README 用一行示意雙機與 origin 的關係:

laptop ⇄ origin ⇄ work machine
             one click: fetch → ff | rebase → push

適用場景與注意

適合在兩臺或以上機器上維護同一批 DSH 插件源碼、又希望界面和 CLI 統一回答「哪個 checkout 是當前?」的開發者。它也覆蓋從目錄/URL/組織安裝 bundle 與基本 hygiene,但仍是你本機 git 與 profile 鏈路的編排層,不能替代 code review 或發佈流程。

使用前請注意:插件隨當前 DSH 進程權限運行,會對你已鏈接的目錄執行 git 操作;安裝或啓用前應自行閱讀源碼與 MIT 許可證,確認 engines.dsh 與當前 harness 匹配。README 強調 viburnum 從不 commit、從不 force-push;rebase 衝突或觸及已發佈歷史時需你手工處理。DSH 生態強調「一切皆插件」;skillhub.cn 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

viburnum 把多機插件開發裏重複的 git 對齊問題收進一個工作臺:狀態色點、track 按機、一鍵 Sync,加上安裝門與 hygiene。若要查閱簡介與分類,可打開 目錄頁;實現細節、貢獻流程與 docs/PLAN.md、DESIGN.md 見 GitHub:dsh-works/viburnum。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜