前言¶
在 DeepSeek Harness(DSH)這類插件化工作區中,維護者常常要同時處理多類依賴:dsh 本體、隨 DSH 發佈的 bundle 包,以及各 profile 中安裝的第三方插件。插件來源可能來自 npm 版本、git commit pin,也可能是本地 link: checkout;不同 profile、不同來源都會各自產生漂移。逐倉庫手動檢查成本高,而盲目自動更新又可能把未審覈的第三方代碼帶入當前環境。
下面介紹的 dsh-update-copilot 走的是中間路徑:先掃描所有更新對象,再彙總版本距離與變更材料,最後只對你明確觸發的目標執行更新。它由 hezhongtang 維護,採用 MIT 許可;package.json 中版本號爲 0.7.0。
這是什麼¶
dsh-update-copilot 是一個 DSH 插件,定位爲 Update Copilot。它一次掃描會覆蓋:
dshcore;- shipped bundles:
dsh-base、dsh-web-app; - 每個 profile 的插件依賴。
掃描結果按 package 跨 profile 合併,使同一包在多個 profile 中的狀態能放在一行中查看。更新只針對符合條件、且獨立擁有的安裝,並且只作用於該包展示出來的 eligible profiles;對 dsh core,它只報告、不自動升級。README 說明這樣做是因爲升級 harness 會重啓每個 session,所以該決定保留給人工。
掃描能力¶
對每一項,插件會給出:
- semver distance;
- 風險等級:
major對應 high,minor對應 medium,patch對應 low; - changelog material;
- 外鏈:npm 版本頁、commit、release、compare view、倉庫地址。
來源判斷分兩條通道:
npm registry:
full semver compare
prerelease-aware logic
git upstream:
pinned-commit vs HEAD
link: checkouts:
read-only ls-remote
更新執行與護欄¶
更新動作被限制在明確允許的目標內。npm 與 GitHub specs 只通過官方 dsh plugin CLI 執行;link: checkout 在其自身目錄中執行 git 更新:auto-stash → pull → restore;發生衝突時交回人工處理。file: installs 以及官方 @deepseek-ai/* packages 保持拒絕。
護欄包括:
same-origin POST + explicit confirm
strict target allowlist
single-flight lock
5-minute timeout
更新過程會通過 SSE 將 live progress 寫入對應行的 progress bar,更新不會靜默發生。
Agent 工具¶
插件暴露三個 agent tools:
update_copilot_scan
update_copilot_brief
update_copilot_update
典型用法是直接問 agent:
check for updates
agent 會先運行 update_copilot_scan,然後爲 outdated items 生成 brief,並在執行任何更新前呈現風險。更新工具會拒絕沒有 confirm: true 的調用,因此只有你確認後纔會繼續。
Web 界面¶
插件提供幾處入口:
- Settings 旁的 sidebar trigger,打開 compact popup;
- Settings → Update Copilot,打開完整頁面;
- Update all quick action,用於按序執行符合條件的 outdated packages。
完整頁面中還有一個 opt-in 開關:
Settings → Update Copilot
Refresh every 30 minutes
off by default
插件面向用戶字符串提供 bilingual UI。
安裝與啓用¶
先安裝插件:
dsh plugin --profile web add dsh-update-copilot
也可以直接從 GitHub 倉庫安裝:
dsh plugin --profile web add github:hezhongtang/dsh-update-copilot
安裝完成後,重啓 dsh web,然後打開:
Settings → Update Copilot
在其它 profile 中也相同,把 --profile web 替換爲對應 profile:
dsh plugin --profile <name> add dsh-update-copilot
典型用法¶
經過上面的安裝與啓用步驟後,可以先從 agent 或界面開始使用。
1、使用 agent:要求“check for updates”,讓 agent 掃描、生成摘要並展示風險。
2、使用界面:點擊 Settings 旁的 sidebar button 打開 compact popup;需要完整頁面時,打開 Settings → Update Copilot。
3、當 DSH 本身無法啓動時,運行:
node …/dsh-update-copilot/lib/cli.js
該命令不會 boot profile,因此可用於無法進入正常 DSH 會話時檢查問題。
4、Host export check:插件會掃描第三方插件中 @deepseek-ai/* 的 named imports,並對照當前 DSH host packages。若發現問題,會給出可複製的 cordis.patch.yml disable snippet 和 dsh plugin remove 命令。
適用場景與注意¶
適合的場景是:維護多個 DSH profile,插件來源同時包含 npm、git commit pin 和本地 link: checkout,希望先看到版本距離、變更材料和風險,再決定是否更新。
需要注意:
- 該插件以當前
dsh進程權限運行,安裝前應檢查源碼、許可證與依賴; dshcore 升級會影響當前 DSH 會話,因此插件只報告;- 更新工具依賴顯式確認;未帶
confirm: true的更新調用會被拒絕; file:installs 與官方@deepseek-ai/*packages 不會被該插件自動更新;- peer dependencies 爲:
{
"@deepseek-ai/cordis": ">=4.0.0-rc.7 <5.0.0",
"@deepseek-ai/dsh-tools": ">=0.0.1-rc.1"
}
其中 @deepseek-ai/dsh-tools 爲 optional。
鏈接¶
GitHub:
https://github.com/hezhongtang/dsh-update-copilot
目錄頁(地址來自插件線索,未在所抓取的 README 或 package.json 中直接確認):
https://www.skillhub.cn/plugins/hezhongtang/dsh-update-copilot
DSH 社區目錄是獨立站點,不應理解爲官方應用商店。