dsh-update-checker
其他 活跃维护

dsh-update-checker

HarryLi-7/dsh-update-checker

轻量级@deepseek-ai/dsh更新检测插件,启动时自动检查npm registry最新版本,以低干扰GUI样式展示更新提示,无额外依赖,不打断开发流程。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
9 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:HarryLi-7/dsh-update-checker
git clone https://github.com/HarryLi-7/dsh-update-checker.git
git clone git@github.com:HarryLi-7/dsh-update-checker.git
README.md main

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/dsh at 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.json is not hot-reloaded (only cordis.patch.yml is).
Older DSH versions without dsh plugin: copy the package into
$DSH_HOME/profiles/packages/, link it into
$DSH_HOME/profiles/node_modules/, and insert update-checker in the
profile's cordis.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-checker entry from cordis.patch.yml
  • Remove ~/.dsh/profiles/node_modules/dsh-update-checker and
    ~/.dsh/profiles/packages/dsh-update-checker
  • Optional: delete the dsh-update-checker.dismissed key from browser
    localStorage

License

MIT