前言¶
在 DSH 的插件化用法裏,單個 Profile 可以掛載多個能力,但第三方插件的來源、更新和回滾仍然需要明確控制。DSH STORE 是運行在 DeepSeek Harness(DSH)設置頁中的第三方插件商城與安全生命週期管理器,由 AI-Scarlett 維護。它不開發獨立桌面端,不修改 DSH 源碼,也不替換 @deepseek-ai/* 官方包。
這是什麼¶
DSH STORE 的包名/Bundle 名稱是 dsh-safe-plugin-manager。它把插件發現、固定來源安裝和生命週期管理放在 DSH 設置頁內完成,而不是把安裝動作拆到獨立桌面端或手工腳本里。
已覈實能力包括:
- 從 GitHub 在線目錄讀取插件;網絡失敗時回退到隨包發佈的已知快照。
- 候選發現庫與可信安裝庫物理隔離;候選條目必須經過固定 Commit 審覈後晉級。
- 支持按名稱、包名、分類或 GitHub 倉庫搜索。
- 支持 22 個分類篩選、推薦置頂和“只看推薦”篩選。
- 目錄安裝目標固定到 40 位 Git Commit,不接受 npm-only、任意下載地址或浮動分支。
核心功能¶
固定來源安裝¶
DSH STORE 不要求用戶信任一個浮動分支或任意下載地址。目錄中的安裝目標固定到 40 位 Git Commit,安裝命令直接指向該 Commit。這樣安裝入口和來源版本是同一個對象,避免分支繼續變化後安裝結果漂移。
生命週期保護¶
從商城發起的安裝、更新、遷移、停用、啓用和卸載,會進入一次性計劃、精確確認、Profile 前置哈希、備份、健康檢查和失敗回滾流程。這個流程的目標不是“能裝上”,而是把每個包操作變成可確認、可回滾的動作。
Guardian 重啓驗收¶
DSH STORE 提供獨立 macOS launchd Guardian,用於心跳、Boot ID、重啓和運行驗收。包操作完成後,商城會標記“待重啓”;只有 Guardian 心跳正常時,才生成一次性的 RESTART DSH <profile> 計劃。
舊版更新修復¶
已覈實資料提到舊版更新安全修復入口會使用官方 DSH CLI 與 --ignore-scripts,必要時僅 --allow-build。這比放開整個 Profile 的腳本權限更保守,也更接近“只修必要項”的做法。
Catalog 分層與兼容¶
Catalog 分層兼容包括:2 MiB 兼容橋/主索引,512 KiB 單詳情上限,失敗關閉。目錄讀取失敗或完整性不一致時,不會繼續混用不可信數據。
安裝前準備¶
首次安裝發生在管理器尚未運行時,因此還沒有計劃確認、自動備份、健康檢查和失敗回滾保護。運行安裝命令前,需要先手動備份目標 Profile 的以下文件(文件存在時):
package.json
pnpm-lock.yaml
pnpm-workspace.yaml
cordis.patch.yml
下面以 web Profile 爲例。如果目標 Profile 名稱不同,請在命令中替換 web。
安裝命令¶
使用固定 GitHub Commit 安裝:
dsh plugin --profile web add 'git+https://github.com/AI-Scarlett/DSH-Store.git#0bc733064bfc8ff16f6e8144188a7ac563092e12'
不要把 Commit 換成 main 等浮動分支,也不要繞過 DSH CLI 直接運行 pnpm 或手工編輯 Profile。命令失敗時,保留完整錯誤和安裝前備份,不要連續重複執行。
啓用與驗收¶
經過上面的步驟後,建議按下面順序驗收:
- 運行以下命令,確認配置可以成功合成:
dsh --profile web --dump-config
- 在商城中用獨立計劃安裝隨包提供的 DSH Guardian。Guardian 是獨立 macOS launchd Guardian,用於心跳、Boot ID、重啓和運行驗收。
- 包操作完成後,等待商城標記“待重啓”。只有 Guardian 心跳正常時,才生成一次性的
RESTART DSH <profile>計劃。 - 啓用 Guardian 後,不要手工運行
pnpm dsh web或dsh web,否則第二個實例可能以EADDRINUSE退出。 - 如果異常,在 GitHub Issues 提交原始錯誤;不要提交憑據、完整 Profile 文件或環境變量。
典型用法¶
搜索與篩選¶
在商城中可以用名稱、包名、分類或 GitHub 倉庫搜索。分類篩選、推薦置頂和“只看推薦”適合先縮小候選範圍,再查看具體插件的來源和狀態。
固定 Commit 安裝¶
安裝時使用目錄固定的 40 位 Git Commit。已覈實示例爲:
dsh plugin --profile web add 'git+https://github.com/AI-Scarlett/DSH-Store.git#0bc733064bfc8ff16f6e8144188a7ac563092e12'
包操作與回滾¶
安裝、更新、遷移、停用、啓用和卸載都從商城發起。操作會進入一次性計劃、精確確認、Profile 前置哈希、備份、健康檢查和失敗回滾流程。真實生產 Profile 的完整“安裝—重啓—停用—啓用—更新—卸載—回滾”閉環仍是獨立驗收項,不能由測試結果替代。
適用場景與注意¶
適合以下使用方式:
- 需要把第三方 DSH 插件集中在一個設置頁入口內管理。
- 希望插件來源固定到明確 Commit,而不是浮動分支。
- 希望安裝、更新、停用、啓用和卸載有確認、備份、健康檢查和失敗回滾。
- 希望在重啓後由 Guardian 做心跳、Boot ID 和運行驗收。
需要注意:
- DSH STORE 是第三方插件商城,不是 DSH 官方應用商店。
- 第三方插件會隨當前 DSH 進程/Profile 的可用權限運行;使用前應檢查源碼、許可證和實際運行權限。
- 已覈實資料未提供許可證;星標數也未確認。
- 首次安裝前必須手動備份目標 Profile 文件,因爲此時管理器保護尚未生效。
- 不要把 Commit 換成浮動分支,也不要繞過 DSH CLI 直接操作 Profile。
- 命令失敗時不要連續重複執行,先保留完整錯誤和安裝前備份。
鏈接¶
- GitHub 倉庫:https://github.com/AI-Scarlett/DSH-Store
- 目錄頁:已覈實資料未提供固定 URL;目錄來源以 GitHub 倉庫和不可變 Commit 爲準。