zhengjy01/dsh-updater ↗★ 0

@zhengjunyao/dsh-updater

Track DeepSeek Harness's own releases and update in one click: follows the npm dist-tags and GitHub releases, shows every change between the running build and the target, grades the risk (prerelease, breaking-change wording, version jump, duplicate installs and npm-prefix drift, plugin range compatibility, backup/rollback availability), then hands the install to a detached helper that backs the current install up with an atomic rename, runs npm, verifies what landed, relaunches, and rolls back when the new build does not come up 适合运维与测试人员,需在配置中定义更新通道与风险展示策略。

パッケージ
@zhengjunyao/dsh-updater
互換性
未検証
Harness ピア範囲
^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.5-rc.1
Cordis ピア範囲
^4.0.1
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/09/13

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zhengjy01/dsh-updater

ドキュメント

README 全文を読む ↗

Configuration

File: DSH_HOME/dsh-updater/config.json (default ~/.dsh/dsh-updater/config.json, mode 0600). It is seeded once from the plugin's composition row; after that the file wins (it is re-read before every update).

FieldTypeDefaultMeaning
enabledbooleantrueMaster switch; when false the routes and tools stay unmounted
announceToAgentbooleantrueAnnounce the plugin (tools and behaviour) in the agent system prompt
entry'sidebar' | 'ball' | 'both' | 'off''sidebar'Where the panel entry lives in the GUI
channel'latest' | 'next' | 'alpha''latest'Which npm dist-tag to follow when resolving the target version
checkIntervalMinutesnumber180Background re-check interval in minutes (0 disables the timer)
checkOnBootbooleantrueRun one check shortly after the host boots
registrystring'https://registry.npmjs.org'npm registry base URL
apiBasestring'https://api.github.com'GitHub API base URL
githubTokenstring''Optional GitHub token — raises the 60 req/h unauthenticated release limit
cacheTtlMinutesnumber30How long a cached registry/releases fetch stays fresh (minutes)
npmArgsExtrastring[][]Extra arguments appended to the npm install command (at most 20)
backupWhenUpdatingbooleantrueTake a full backup of the current install before replacing it
backupCountnumber3How many pre-update backups to keep
autoRollbackbooleantrueRestore the backup automatically when the new version fails to boot
confirmOn'warn' | 'high' | 'never''high'Risk levels that require an explicit confirmation before updating
fallbackPortnumber3098Port for the detached recovery console (tries +9 further when busy)
bootTimeoutMsnumber180000How long the new host may take to answer before the attempt fails
maxAttemptsnumber2Install attempts per update request (1 = no automatic retry)
killGraceMsnumber6000Grace period after SIGTERM before the helper SIGKILLs the old host
portFreeTimeoutMsnumber25000How long to wait for the old host to release its port
lingerMsnumber4000How long the helper keeps its console up after success before exiting
readyConfirmMsnumber4000How long a boot that answers the port must hold before it is called ready
bootWatchMsnumber30000How long a host that reported ready is still watched afterwards
installTimeoutMsnumber600000How long the npm install itself may run
logLinesnumber400Lines of log kept for display
autoReloadbooleantrueAuto-reload the page once the new host answers
showOverlaybooleantrueShow the full-screen overlay while waiting
probeIntervalMsnumber1200Reconnect probe interval (ms)
historyLimitnumber40Update records kept in history.json

Every field is clamped to a sane range (maxAttempts 1–5, backupCount 0–20, installTimeoutMs 30000–3600000, …); illegal values silently fall back to the defaults, so the config file can never make the plugin throw.