dsh-update-copilot:DSH 更新助手

前言

在 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。它一次掃描會覆蓋:

  • dsh core;
  • shipped bundles:dsh-basedsh-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 進程權限運行,安裝前應檢查源碼、許可證與依賴;
  • dsh core 升級會影響當前 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 社區目錄是獨立站點,不應理解爲官方應用商店。

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

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

小夜