Bundle
dsh-update-checker
DSH web plugin: check DeepSeek Harness updates from Settings — local dsh --version vs npm registry latest/next, one-click update, timeline, notifications, history.
- Source
- duntansen
- stars
- 3 stars
- License
- MIT
- Updated
- Updated 2 hours ago
Readme
# dsh-update-checker
[English](README.md) | [中文](README.zh.md)
A [DeepSeek Harness](https://github.com/deepseek-ai/DeepSeek-Harness) (DSH) web plugin that checks whether your local Harness is up to date — right from Settings.
<img src="assets/screenshot.png" alt="dsh-update-checker screenshot" width="50%" />
> **English**: Check DeepSeek Harness updates from Settings (local `dsh --version` vs npm `latest`/`next`).
>
> **中文**: 在设置页一键自检 DeepSeek Harness 是否有新版本(本地 `dsh --version` vs npm 最新版)。
## Features
- **Update check**: reads the local version via `dsh --version`, compares it with the npm registry `latest` / `next` dist-tags of `@deepseek-ai/dsh`
- **One-click update**: when a new version is found, click a button to run `npx -y @deepseek-ai/dsh@latest` and watch the live install progress in the page
- **Version timeline**: shows the most recent 8 published versions with release dates, highlighting your current version
- **Auto-check & notifications**: re-checks every 6 hours while the Settings page is open; a browser system notification fires when a new version is detected
- **Check history**: the last 10 checks are saved to `~/.dsh/dsh-update-checker-history.json` and shown in the page
- Semantic version comparison (handles `rc` prerelease segments correctly)
## Install
From GitHub:
```sh
dsh plugin --profile web add github:duntansen/dsh-update-checker
```
Then restart `dsh web` and open the GUI. Open **Settings → Update Check** to use it.
## Usage
Open **Settings → Update Check** — a full page with all features:
The page shows:
- **Current / latest / next versions** and a status badge (`✓ up to date` / `⬆ update available`)
- **One-click update** button (`⬇ Update to x.y.z`) when an update is available — shows live terminal output, then prompts to restart `dsh web` when done
- **Version timeline**: the most recent 8 releases with dates, your current version highlighted in green
- **Check history**: recent check times and version transitions
- **Re-check** button and the last check time
Auto-check: the plugin checks when the Settings page opens and then every 6 hours while it stays open. When a new version is detected, a browser notification is fired (the first time, the browser asks for notification permission).
## How it works
- **Host**: registers HTTP routes via the `webServer` service:
- `GET /dsh-update-check` — local version + npm latest/next + timeline + history
- `GET /dsh-update-check/status` — live update task output (polled)
- `POST /dsh-update-check/update` — start the update (same-origin protected, single instance)
- Local version is read with `dsh --version`; npm registry data via global `fetch`. Commands run cross-platform (Windows `cmd.exe` / POSIX `/bin/sh`).
- **Client**: a `settings.section` entry (`__ModuleLoader__` CJS bundle, no build step) that calls the routes above and renders the page.
## Project layout
```
dsh-update-checker/
├── package.json # dsh bundle patch + web client declaration
├── cordis.patch.yml # inserts the plugin row into a profile layer stack
├── assets/
│ └── screenshot.png # README screenshot
└── lib/
├── index.js # host entry: HTTP routes + version comparison
└── client.js # client entry: Settings page
```
## License
MIT
Install
dsh plugin --profile web add github:duntansen/dsh-update-checker
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-update-checker from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.