DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-update

A

dsh-update

Manifest valid

DeepSeek Harness (dsh) check-for-updates plugin — top-right "Check for Updates" UI + automatic upgrade after closing (npm / update-dsh.ps1)

UI (client)Machine translated

dsh-update

English | 简体中文

A user-level plugin for DeepSeek Harness (dsh) that adds a "Check for updates" button to the top-right of the Web UI, plus a live update with a progress bar.

  • Grey "Check for updates" button in the session header → "Checking"
  • Blue spinner while checking
  • Liquid-glass toast: "You are already on the latest version, X" when up to date
  • Blue "New version" button + centered update dialog (release notes + "Update") when a newer version exists
  • Click "Update" → a 5-second countdown, then dsh closes itself and the update runs on the way out (cancel any time, or close immediately)
  • A desktop progress card appears in the bottom-right corner while it runs, showing the real stage ([5/6] 安装依赖). It is draggable, its ✕ collapses it into a tray icon (white rounded tile with the blue DeepSeek whale), and clicking that icon brings the card back exactly where you left it
  • No console window is ever shown — the card is started through launch-hidden.vbs (see Development notes)
  • A Windows notification in the bottom-right announces the result when it finishes
  • Checks the GitHub releases feed and drives your own launcher/update-dsh.ps1, so it updates the exact installation the launcher runs; never touches the launcher exe or ~/.dsh user data

English

Requirements

  • DeepSeek Harness (dsh) Web surface (dsh web), v0.1.0+
  • Node 22+ (uses the built-in fetch)
  • The workspace layout the launcher expects: a deepseek-harness source checkout with a sibling launcher/update-dsh.ps1, plus git, pnpm, curl.exe and PowerShell on PATH (the update drives that script)

Installation

Add the plugin to your web profile, then register the row.

dsh plugin --profile web add ADDD1118/dsh-update

Append this to ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
    - id: dsh-update
      name: dsh-update

Restart dsh web and hard-refresh the browser (Ctrl+F5). The button appears in the top-right of the session header (beside "Session log").

The plugin ships prebuilt (lib/index.js + lib/client.js), so no build step is required.

How the update works

  • The check reads the GitHub releases feed for the newest tag; if it is newer than the running version, the "New version" flow lets you update.
  • Clicking "Update" schedules the update rather than applying it live: the source checkout is the working directory of the running server, and Windows will not let that directory be replaced while the server is alive. The schedule is recorded in ~/.dsh/.dsh-pending-update.json.
  • A 5-second countdown then asks dsh to close itself via the launcher's appExit — the same path as a normal shutdown, just without you clicking the X. Cancel at any point to unschedule.
  • When dsh shuts down with an update scheduled, a detached updater waits for the process to fully exit, then runs launcher/update-dsh.ps1 -Tag <tag> (download → pnpm install → build) and writes the outcome to ~/.dsh/.dsh-update-state.json.
  • While that runs, update-progress.ps1 polls that state file and draws the bottom-right card; both it and the completion toast run as independent processes, so they survive even if the updater dies.
  • Reopen dsh and the result is shown once. If the update completed, the marker clears itself automatically — no repeated nagging.
  • Full output of the background update lands in ~/.dsh/.dsh-update.log.

Closing dsh never updates anything by itself. The only way an update runs is if you clicked "Update" and the schedule is still pending; there is no background auto-upgrade. If you force-kill dsh instead of closing it, the scheduled update does not run — use 更新DeepSeekHarness.cmd for that case.


简体中文

功能

为 DeepSeek Harness (dsh) 的 Web 界面右上角新增 "检查更新" 按钮,并支持在关闭 dsh 后自动完成的后台更新。

  • 会话头右上角灰色 "检查更新" 按钮 → 点击后变 "检查中"
  • 检查时显示蓝色转圈
  • 已是最新时弹出液态玻璃提示:"当前已是最新版本,版本号为 X"
  • 有新版时按钮变蓝色 "新版本",点击弹出居中更新对话框(含更新说明 + "更新"按钮)
  • 点 "更新" → 5 秒倒计时后 dsh 自动关闭,更新在退出过程中执行(随时可「取消排期」,或直接「立即关闭」)
  • 更新期间桌面右下角悬浮进度小条,显示真实阶段([5/6] 安装依赖)。可拖动位置;点 ✕ 收起为托盘图标(白底圆角蓝色鲸鱼),点该图标会在你关闭时的位置把浮窗还原
  • 全程不出现任何控制台窗口 —— 通过 launch-hidden.vbs 隐藏启动(见 Development notes)
  • 完成后右下角弹出 Windows 通知告知结果
  • 通过 GitHub releases 检测最新 tag,并驱动你自己的 launcher/update-dsh.ps1,因此更新的正是启动器实际运行的那份代码;不触碰启动器 exe 和 ~/.dsh 用户数据

环境要求

  • DeepSeek Harness (dsh) Web 界面(dsh web),v0.1.0+
  • Node 22+(用到内置 fetch)
  • 启动器期望的目录结构:deepseek-harness 源码检出 + 同级 launcher/update-dsh.ps1;且 PATH 中有 git、pnpm、curl.exe 和 PowerShell(更新由该脚本执行)

安装

将插件加入 web profile,并注册插件行。

dsh plugin --profile web add ADDD1118/dsh-update

在 ~/.dsh/profiles/web/cordis.patch.yml 追加:

- insert:
    - id: dsh-update
      name: dsh-update

重启 dsh web 并强刷浏览器(Ctrl+F5)。按钮出现在会话头右上角("Session log" 旁)。

插件已预构建(lib/index.js + lib/client.js),无需再执行构建。

更新原理

  • 检查时会读取 GitHub releases 的最新 tag;若比当前运行版本新,则通过 "新版本" 流程更新。
  • 点 "更新" 只是排期,不会立即执行:源码检出目录正是运行中服务的工作目录,而 Windows 不允许在进程存活时替换该目录。排期记录写入 ~/.dsh/.dsh-pending-update.json。
  • 随后 5 秒倒计时,通过启动器提供的 appExit 让 dsh 自行退出 —— 与正常关闭走同一条路径,只是不需要你手动点关闭。倒计时期间可随时取消排期。
  • 关闭 dsh 时若存在排期,一个分离的后台进程会等主进程完全退出后执行 launcher/update-dsh.ps1 -Tag <tag>(下载 → pnpm install → 构建),并把结果写入 ~/.dsh/.dsh-update-state.json。
  • 更新期间由 update-progress.ps1 轮询该状态文件绘制右下角进度卡;进度卡与完成通知都是独立进程,即使 updater 意外退出也能给出结果。
  • 重新打开 dsh 后结果只提示一次。若更新确实已完成,标记会自动清除,不会反复弹窗。
  • 后台更新的完整输出见 ~/.dsh/.dsh-update.log。

「关闭 dsh」本身不会触发任何更新。 唯一会执行更新的是你点了「更新」且排期仍然存在 —— 没有后台自动升级。若是强制结束进程(而非正常关闭),排期的更新不会执行,这种情况下请用 更新DeepSeekHarness.cmd。

Development notes

  • src/** is bundled by tsdown into lib/index.js (host, ESM) and lib/client.js (browser, CJS handed to the shell via window.__ModuleLoader__.load). updater.mjs and update-progress.ps1 ship unbundled and are loaded from disk at runtime.
  • update-progress.ps1 must stay saved as UTF-8 with a BOM. Windows PowerShell 5.1 reads .ps1 files as ANSI (GBK on a Chinese system) when no BOM is present, which mangles its Chinese strings badly enough to break parsing.
  • The updater parses only the [N/M] numbers out of update-dsh.ps1's output and supplies its own stage labels: that script's Write-Host output arrives in the console's OEM codepage, so decoding it as UTF-8 would produce mojibake.
  • PowerShell children are launched via launch-hidden.vbs (wscript, window style 0) for the progress card. Two separate reasons: detached + unref alone does not keep a PowerShell child alive after its parent exits, and on Windows 11 console apps are handed to Windows Terminal — so powershell -WindowStyle Hidden still leaves a terminal window on the desktop, because that window belongs to the terminal host rather than to PowerShell. wscript is a GUI-subsystem host with no console of its own.
  • dsh-update-icon.ico is a multi-size ICO (16/24/32/48/64/128/256) composed from the repo's own apps/web/public/favicon.svg whale: the SVG is recoloured to the brand blue #4d6bfe (sampled from packages/skill/skill-badge/assets/dsh-badge.png), rasterised with headless Edge, then drawn onto a white rounded tile. Note the favicon carries a prefers-color-scheme: dark rule that repaints the path white — it must be stripped before rasterising, or the whale comes out white-on-transparent and invisible.

License

MIT

Comments

Loading…

Similar plugins

dsh-desktop-upgrade

by Liu-fu-gui

DeepSeek Harness (DSH) Desktop plugin: adds the missing 「升级 DSH」 entry — tray command + dsh_upgrade model tool, driving the official version service and installer channel via desktopRuntime.updates. 不

Manifest valid

★ 0

MIT

JavaScript

Sep 19, 2026

dsh plugin --profile web add dsh-desktop-upgrade

by stuarthu

Checks npm hourly for newer versions of the installed plugins and asks which ones to upgrade.

Notifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 1

↓ 71/wk

MIT

JavaScript

Aug 22, 2026

dsh plugin --profile web add dsh-update-notifier

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 YannZhou

About section for the DeepSeek Harness settings: version info, npm latest/next update check with one-click install and auto-restart, and GitHub release history.

UI & ExperienceDevelopment & InfrastructureManifest valid

★ 5

↓ 133/wk

MIT

JavaScript

Sep 17, 2026

dsh plugin --profile web add @yannzhou/dsh-about

by a1113622001

DeepSeek Harness (cordis) plugin: self-update for the harness launcher - checks npm for a newer @deepseek-ai/dsh, stages it, and applies it on harness exit (or update-and-restart from the web panel).

Development & InfrastructureTerminal & ClientsManifest valid

★ 3

MIT

JavaScript

Aug 22, 2026

dsh plugin --profile web add dsh-auto-update

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