Airmetro/dsh-update-checker ↗★ 2
dsh-update-checker
Auto-check DeepSeek Harness and third-party plugin updates, notify in the Web GUI, one-click update with restart watchdog.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Airmetro/dsh-update-checker说明文档
阅读完整 README ↗dsh-update-checker
A permanent Cordis plugin for the DeepSeek Harness Web GUI that auto-checks for new DeepSeek Harness releases AND installed third-party plugin updates (the former standalone dsh-plugin-checker was merged in v1.1.0), asks the user, and one-click updates with success/failure feedback.
- Host half (
lib/index.js) registers HTTP routes:GET /dsh-update-checker/status.json— fetches the latest@deepseek-ai/dshversion from the npm registry, reads the locally installed version (from the deployment'snode_modules), compares them with semver semantics, and returns a JSON status (including the persistedsuppressUpToDateflag).POST /dsh-update-checker/suppress— persists the "don't remind me again" flag for the up-to-date banner (requires{ "confirm": true }).POST /dsh-update-checker/update— complete update: backs up the deployment lockfile + @deepseek-ai version manifests, runsnpm install @deepseek-ai/dsh@latestin the deployment root, then defensively syncs changed @deepseek-ai packages into$DSH_HOME/profiles/node_modules(skipped for junction-linked packages, which the running Web app resolves through). Requires{ "confirm": true }; supports{ "dry": true }to preview without executing.POST /dsh-update-checker/restart— restarts the dsh web service (spawns a PowerShell helper that kills the port listener and relaunches/start-dsh.cmd; the port and launcher path are derived at runtime). Requires{ "confirm": true }.GET /dsh-update-checker/plugins.json— scans installed third-party (non-builtin) plugins (composition rows +dshfield, layout-agnostic), compares each against npm latest (semver), returns update status.POST /dsh-update-checker/plugin-update— updates one plugin via temp-dirnpm install+ copy (never touches other packages inprofiles/node_modules, junction-aware, backs up the old version first). Requires{ "confirm": true, "name" }.
- Client half (
lib/client.js) is a web module (ModuleLoader format) that registers two cells in the root-scopedshell.overlayslot:- the core banner (top): update / up-to-date / failure states for the main program (立即更新 / 重新检查 / 知道了; 不再提示 persists suppression),