前言¶
DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。目前的官方 CLI 並沒有內置 self-update 能力。社區現有的更新檢查插件,通常只能完成「檢測」這一步,後續仍需用戶手動操作。dsh-auto-update 插件補全了這一環,它能在宿主端啓動時自動對比版本,並按配置決定是僅提醒還是直接執行安裝。
它是什麼¶
這是一個運行在宿主端的插件,由 frostming 維護,開源協議爲 MIT。
核心功能¶
- 啓動時檢查一次:利用
ctx.effect註冊setTimeout,啓動幾秒後自動檢查一次,之後不再重複檢查。 - 正確的 semver 比較:能正確處理預發佈版本,例如
0.1.0-rc.5與0.1.0-rc.6的對比。 - 兩種模式:
notify(默認):只在控制台打印醒目的橫幅,不安裝。install:自動執行安裝命令。
- 狀態持久化:檢查結果寫入
~/.dsh/dsh-auto-update-state.json,保留最近 10 次歷史。 - Profile 無關:不依賴
webServer,所有 profile(如web、headless、tui)均可用。 - 優雅卸載:通過
ctx.effect管理,卸載時自動清理定時器。 - 零運行時依賴:僅使用 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 進程權限運行,安裝前應檢查源碼與許可證。