HarryLi-7
dsh-update-checker
No description
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-update-checker
DSH (DeepSeek Harness) profile plugin: checks the npm registry for newer
@deepseek-ai/dsh releases at startup and shows a quiet, GUI-styled notice in
the web sidebar when an update is available — click it to copy the update
command or open the npm page.
Features
- Checks
registry.npmjs.org/@deepseek-ai/dshat startup (fire-and-forget, never blocks boot), cached for 6 hours; re-polls every 30 min in the GUI - Only appears when a newer version actually exists — silent otherwise
- Sidebar footer item (expanded: icon + "vX.Y.Z 可用"; collapsed: icon only)
- Popover with: current/latest version, one-click copy of the update command, npm link, and 忽略此版本 (dismiss per version)
- Style tokens from the DSH GUI (
--dsw-*design system) — auto-adapts to light/dark themes - Zero disk footprint: host side is pure in-memory; the only persistent state is a single localStorage key (dismissed version, a few bytes, overwritten — never grows)
- Fail-safe: registry unreachable or network errors → nothing is shown, nothing crashes
Install
This is an official DSH bundle (dsh.bundle manifest + in-package
cordis.patch.yml), so it installs through the standard plugin command:
# from the directory that contains the plugin checkout:
dsh plugin --profile web add ./dsh-update-checker
dsh plugin (requires pnpm) links the package into the
profile, appends the bundle to dsh.profile.bundles, and the bundle's own
patch layer mounts the plugin. Verify without booting, then boot/restart:
dsh --profile web --dump-config # shows a "# == dsh-update-checker" layer
dsh --profile web
Remove with dsh plugin --profile web remove dsh-update-checker.
For a running harness the bundle takes effect on the next restart — profile
package.jsonis not hot-reloaded (onlycordis.patch.ymlis). Older DSH versions withoutdsh plugin: copy the package into$DSH_HOME/profiles/packages/, link it into$DSH_HOME/profiles/node_modules/, and insertupdate-checkerin the profile'scordis.patch.yml.
How it works
| Side | File | Role |
|---|---|---|
| Host | lib/index.js | Registers GET /dsh-update-checker/check; queries the npm registry on startup and on stale reads (6 h TTL); semver comparison (prerelease-aware); local version read from the running @deepseek-ai/dsh package |
| Client | lib/client.js | Sidebar footer slot item; polls the endpoint every 30 min; popover with copy/npm/dismiss actions; dismissal persisted per version in localStorage |
Update command
The popover copies:
npx --yes @deepseek-ai/dsh@latest --profile web
Stop the running harness first, run it in a terminal, then reopen the GUI.
Uninstall
- Remove the
update-checkerentry fromcordis.patch.yml - Remove
~/.dsh/profiles/node_modules/dsh-update-checkerand~/.dsh/profiles/packages/dsh-update-checker - Optional: delete the
dsh-update-checker.dismissedkey from browser localStorage
License
MIT