DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-updater

J

dsh-updater

Manifest valid

DSH web plugin: version check and safe update while preserving user configuration

UI (client)

dsh-updater

A DeepSeek Harness web plugin that checks the local DSH version against the official latest and updates the installation checkout — while never touching user configuration (~/.dsh) and never discarding your own commits.

  • Settings page ("Updates") — source / running / latest version, outdated badge, branch + working-tree guards, check button, update buttons, live operation log, and an update confirmation dialog with a dry-run preview (from→to versions plus the exact commits that would be added and the local commits that would be kept).
  • Sidebar footer badge — a compact version pill (green = verified up to date, amber = update available or unverified, red = check error); click to refresh.
  • Auto-check + toast — when the cached version check is stale (30 min) the page auto re-checks, so version data can never be older than about 30 minutes while the page is open; a newly-detected update raises a transient toast.
  • One-click commit & push to your fork — when the working tree has uncommitted changes the button enables: it stages everything, commits on the current branch (local: working tree sync (dsh-updater …)), and pushes to origin (your fork). A commit that fails to push is reported as partial — your work is committed locally, only the network hop failed.
  • Honest diagnostics — the official latest comes from the git upstream tag (the npm registry is a fallback, since it may lag behind the git repo); a failed upstream fetch marks the verdict unverified — never shows a false green "up to date" on stale data. A failed npm lookup is only a hard error when the upstream ref is absent.
  • Host HTTP surface GET /__dsh-update/status|info, POST /__dsh-update/check|preview|update|commit-push.

How it works

DSH is a git checkout. "Update" means: fetch the official upstream and rebase your local-patches branch onto it. Your own commits (e.g. the local core patches used by dsh-archived-sessions) are replayed on top — a conflict stops the rebase and is reported, never auto-resolved. The "official latest" version is the tag on the tip of upstream/<branch> — the update itself rebases onto that ref, so it is the authoritative source. The npm registry is a fallback for installs without a configured upstream remote. Your user configuration lives in ~/.dsh, which is outside the checkout and is never written by this plugin.

Install

  1. Clone/build this package (npm install && npm run build).

  2. Add it to your web profile (~/.dsh/profiles/web):

    package.json → dependencies:

    "dsh-updater": "link:D:/PROJECT/dsh-updater"
    

    cordis.patch.yml:

    - insert:
        - id: dsh-updater
          name: 'dsh-updater'
          config:
            installPath: 'D:/Program Files (x86)/deepseek-harness'
    
  3. Restart dsh web (or rely on the profile patch layer hot-apply). Open Settings → Updates.

Configuration

KeyDefaultMeaning
installPathauto-detect (cwd walk-up)Absolute path of the DSH checkout (the git repo to update)
upstreamRemoteupstreamRemote holding the official repo
upstreamBranchmasterOfficial remote branch to follow
patchesBranchlocal-patchesLocal branch expected to carry your commits; updates only run on it
registryPackage@deepseek-ai/dshnpm package whose latest dist-tag is the fallback version signal (official version is from the upstream tag)
registryBasehttps://registry.npmjs.orgnpm registry base

Update semantics

  • Only the checkout changes. ~/.dsh (settings, credentials, profiles, sessions, attachments) is never touched.
  • Dirty working tree → the update refuses. Commit or stash first. Untracked files and local commits are never silently discarded.
  • Wrong branch → the update refuses. It only runs on patchesBranch (local-patches), the branch that carries your commits.
  • Conflict → the rebase stops and reports the conflicted files; you resolve (or git rebase --abort). Nothing is auto-resolved.
  • Restart required after updating — the running process still executes the old code. The plugin reports source-vs-running mismatch and prompts you to restart dsh web; it never restarts for you.
  • Version verdict is git-first. The "official latest" and the outdated/up-to-date badge are derived from the upstream remote tip (upstream/<branch>). The npm registry is only a fallback; a stale npm latest dist-tag will never hide a real upstream update.

Development

npm install
npm run build     # tsc + tsdown (node half + client bundle)
npm run typecheck
npm run watch     # tsdown --watch

See dsh-archived-sessions for the sibling plugin this one's structure mirrors.

Comments

Loading…

Similar plugins

dsh-updater

by zhuoxuanliu53-svg

DSH Web GUI plugin: check and apply DeepSeek Harness official source updates

Manifest valid

★ 0

TypeScript

Aug 21, 2026

dsh plugin --profile web add dsh-updater

by windrover

A DeepSeek Harness plugin that adds a Check-updates button to the Plugins settings: scans every installed bundle for published updates and DSH-runtime compatibility, with a per-plugin update action.

Tools & CapabilitiesManifest valid

★ 0

MIT

JavaScript

Oct 19, 2026

dsh plugin --profile web add dsh-plugin-update-checker

by xiaokang6

DeepSeek Harness Web GUI admin plugin: manual restart + auto version check (header button + settings page)

Manifest valid

★ 0

MIT

JavaScript

Aug 18, 2026

dsh plugin --profile web add dsh-admin

by ADDD1118

DeepSeek Harness (dsh) check-for-updates plugin — 右上角检查更新 UI + 关闭后自动升级 (npm / update-dsh.ps1)

Manifest valid

★ 0

MIT

TypeScript

Sep 12, 2026

dsh plugin --profile web add dsh-update

by jijiz1

One-click version checker, updater, and restart UI for DeepSeek Harness (DSH).

Manifest valid

★ 0

MIT

JavaScript

Aug 21, 2026

dsh plugin --profile web add dsh-self-updater

by archyciao

DeepSeek Harness (dsh) 插件:设置页「关于」- 版本显示/检查更新/一键重启

Manifest valid

★ 0

JavaScript

Sep 9, 2026

dsh plugin --profile web add dsh-about-updater