dsh-vibe-pack:面向 DeepSeek Harness 的事務性純數據配置包管理器

前言

長期維護一個 DSH 實例時,$DSH_HOME 下的配置資源很容易變成一筆糊塗賬:文件是手工複製進去的,改壞了不知道動了哪裏,兩份配置包先後寫入同一個文件時互相覆蓋,出問題之後既查不到來源也回不去。DSH 的理念是「一切皆插件」,但把數據型配置資源的分發和卸載做成可審計的事務,此前並沒有現成工具。

下面介紹的 dsh-vibe-pack 就是針對這個問題:把資源的安裝做成先預覽、再安裝、可回滾的事務,並在全過程追蹤文件歸屬。

這是什麼

dsh-vibe-pack 是一個面向 DeepSeek Harness 的事務性、純數據配置包管理器,由 LeemanCheung 維護,許可證爲 MIT。它圍繞 $DSH_HOME 提供預覽、安裝、Diff、導出、卸載五類操作,配套完整性校驗、所有權追蹤與失敗回滾。

當前版本 1.0.1,聲明兼容 DSH 0.1.2-rc.1 的 web profile(>=0.1.2-rc.1 <0.1.3-0),經 Windows QA 驗證。

核心功能

純數據包格式

一個包的來源是本地目錄,或包含 dshpack.yaml 與清單所列全部載荷的 .dshpack/.zip 歸檔。嚴格的 v1 清單包含 id、版本、兼容範圍、1–10000 個文件、每文件 SHA-256、create/replace/merge 模式與所有權元數據。

接受的載荷只有數據:JSON/YAML/.dshskin、Markdown/文本/TOML/INI、PNG/JPEG/WebP/GIF 圖片。腳本、hook、shell 命令、JS 模塊、URL 抓取、symlink、YAML alias/tag/anchor、內嵌憑據、路徑穿越、重複歸檔路徑一律拒絕,可執行文件和未知擴展名也被拒。歸檔在載荷使用前按壓縮、展開、單文件、字節與條目數限制檢查。

預覽與所有權確認

安裝前強制預覽,報告 create/replace/merge 動作與衝突,安裝動作與預覽 digest 綁定。以下四種情況需要顯式 force 選擇:

  1. 無主文件
  2. 他包所有的文件
  3. create 模式衝突
  4. 安裝後被修改的資源

force 只轉移清單列出的所有權,不會被隱式觸發。

事務與回滾

安裝和卸載由磁盤事務鎖串行化。寫入前先備份每個目標,再按固定順序原子寫入;失敗時按逆序恢復,並報告部分回滾錯誤。賬本原子寫入 $DSH_HOME/.dsh-vibe-pack/ledger.json。卸載同樣保護被修改的資源,除非顯式 force。

符號鏈接與 junction 越界防護

每次受管理的讀取和寫入都先解析真實文件系統位置。在預覽、備份、導出、目錄創建、寫入或移除之前,符號鏈接或 Windows junction 一旦離開配置的 DSH 根即被拒絕。

合併與導出

合併模式接受 JSON 或 YAML 對象,遞歸合併對象鍵,數組與標量整體替換,拒絕原型鍵與機密,輸出確定性數據。導出前先校驗已安裝資源仍與賬本一致,再生成可移植的 .dshpack 歸檔。

UI 與 CLI

安裝後,DSH Web 的 Settings → Vibe Pack 面板提供強制預覽、digest 綁定安裝、賬本歷史、Diff、需獨立確認的卸載和 .dshpack 下載,生成的 Typert 命名空間爲 vibePack。命令行提供 dsh-pack 工具,子命令爲 inspect/plan/install/history/diff/export/uninstall,--root 默認 $DSH_HOME,只在管理顯式指定的測試根時才需要傳。

安裝與啓用

dsh plugin --profile web add github:LeemanCheung/dsh-vibe-pack

安裝完成後,重啓現有的 DSH Web 進程並刷新頁面,Settings 中即可看到 Vibe Pack 面板。

典型用法

先檢查一個包目錄的清單與載荷是否合規:

dsh-pack --root $env:DSH_HOME inspect ./my-pack

安裝前生成動作計劃,確認 create/replace/merge 與衝突情況:

dsh-pack --root $env:DSH_HOME plan ./my-pack.dshpack

確認無誤後執行安裝:

dsh-pack --root $env:DSH_HOME install ./my-pack.dshpack

經過上面的步驟,可以用 history 查看賬本歷史、diff 對比當前差異、export 導出歸檔、uninstall 卸載:

dsh-pack --root $env:DSH_HOME history
dsh-pack --root $env:DSH_HOME diff my-pack
dsh-pack --root $env:DSH_HOME export my-pack > my-pack.dshpack
dsh-pack --root $env:DSH_HOME uninstall my-pack

上述示例使用 PowerShell 的 $env:DSH_HOME 語法。只有在審查完報告的所有權或修改衝突之後,才應使用 --force。

想參與開發,可在倉庫根目錄運行 corepack pnpm typecheck、corepack pnpm test、corepack pnpm build 和 corepack pnpm pack:check。CI 會在 Windows 和 Linux 上重建已提交的 lib 產物並拒絕任何差異,安全驗收用例見 TEST_PLAN.md。

適用場景與注意

適合需要把 $DSH_HOME 下的數據資源打包備份、遷移、分享,並且在意「哪次變更動了哪些文件、能不能回退」的開發者。

使用前注意以下幾點:

  1. 插件不向模型添加 prompt、工具、消息、token 用量或 KV-cache 內容,所有檢查與變更都通過 Host 上的 UI/CLI 顯式執行。
  2. 事務鎖在進程異常退出後會報錯(fail loud),確認無 Vibe Pack 進程活動後可能需手動移除。
  3. 遠程操作與同一 DSH Web 組合中的受信任客戶端共享。
  4. 包格式提供 SHA-256 完整性與所有權校驗,不提供發佈者簽名或網絡分發。
  5. 1.0.1 僅聲明兼容 DSH 0.1.2-rc.1 的 web profile。
  6. 插件以當前 dsh 進程的權限運行,安裝前應審查插件源碼並確認許可證(MIT,見倉庫 LICENSE)。

結尾

dsh-vibe-pack 的價值在於把配置資源的安裝從「手工複製、改完靠記憶」變成一次可預覽、可追蹤、可回滾的事務。社區目錄頁見 https://www.skillhub.cn/plugins/LeemanCheung/dsh-vibe-pack ,源碼與文檔見 https://github.com/LeemanCheung/dsh-vibe-pack 。

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

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

小夜