DeepSeek Harness 自動更新插件 dsh-auto-update

前言

DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。目前的官方 CLI 並沒有內置 self-update 能力。社區現有的更新檢查插件,通常只能完成「檢測」這一步,後續仍需用戶手動操作。dsh-auto-update 插件補全了這一環,它能在宿主端啓動時自動對比版本,並按配置決定是僅提醒還是直接執行安裝。

它是什麼

這是一個運行在宿主端的插件,由 frostming 維護,開源協議爲 MIT。

核心功能

  1. 啓動時檢查一次:利用 ctx.effect 註冊 setTimeout,啓動幾秒後自動檢查一次,之後不再重複檢查。
  2. 正確的 semver 比較:能正確處理預發佈版本,例如 0.1.0-rc.5 與 0.1.0-rc.6 的對比。
  3. 兩種模式:
    • notify(默認):只在控制台打印醒目的橫幅,不安裝。
    • install:自動執行安裝命令。
  4. 狀態持久化:檢查結果寫入 ~/.dsh/dsh-auto-update-state.json,保留最近 10 次歷史。
  5. Profile 無關:不依賴 webServer,所有 profile(如 web、headless、tui)均可用。
  6. 優雅卸載:通過 ctx.effect 管理,卸載時自動清理定時器。
  7. 零運行時依賴:僅使用 Node 內置模塊。

安裝

使用以下命令將插件添加到當前 profile:

dsh plugin --profile web add github:frostming/dsh-auto-update

安裝後重啓 dsh web 生效。默認情況下,插件只提醒不安裝,控制台會打印類似以下的橫幅:

════════════════════════════════════════════════════════
  dsh-auto-update: update available
    installed: 0.1.0-rc.5
    available: 0.1.0-rc.6 (latest)
    action:    notify only — run npm install -g @deepseek-ai/dsh@0.1.0-rc.6
════════════════════════════════════════════════════════

開啓自動安裝

要啓用自動安裝,需編輯 profile 的 cordis.patch.yml 文件(路徑通常爲 $DSH_HOME/profiles/<name>/cordis.patch.yml),覆蓋 mode 爲 install:

- insert:
    - id: dsh-auto-update
      name: 'dsh-auto-update'
      config:
        mode: install
        # 可選:自定義安裝命令,{version} / {package} 會被替換
        installCommand: 'npm install -g {package}@{version}'

配置項

鍵 默認值 說明
channels ["latest", "next"] 按優先級諮詢的 dist-tag
startupDelayMs 5000 啓動後檢查的延遲,毫秒
mode "notify" "notify" 或 "install"
installCommand npm install -g {package}@{version} 安裝命令模板
stateFile ~/.dsh/dsh-auto-update-state.json 狀態文件路徑
verbose true 是否打印檢查日誌

注意事項

  • DeepSeek Harness 目前處於 developer preview 階段,官方明確聲明會有破壞性兼容變更。
  • 自動安裝等於接受這種風險,請謹慎開啓。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
羽毛球分组比赛记分
小程序二维码

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

小夜