Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture and supports local development via a source code checkout. In this mode, the core code usually points to the deepseek-ai/deepseek-harness repository. Common update detection plugins in the community mostly judge by comparing the version of @deepseek-ai/dsh on the npm registry, which can cause false positives (the local commit count is often greater than the published versions on npm); if npm install is run, it can break the link structure of the pnpm workspace.

dsh-git-update-notifier is specifically designed to solve these issues. It does not rely on the npm registry to detect the source mode; instead, it advances the local checkout directly via git. It also supports npx and npm installation modes, using the npm registry for version comparison. The plugin automatically checks at 24:00 each day; if DSH is not running at that time, it performs a catch-up check on the next startup.

Plugin Overview

  • Name: dsh-git-update-notifier
  • Owner: lmr233
  • License: MIT
  • Purpose: On the first DSH startup each day, detect upstream commits via git and ask in the Web GUI whether to update (works with source checkouts and does not modify npm dependencies).

Core Capabilities

  1. Automatic detection and interaction: Automatically checks for updates at 24:00 local time each day. If it did not run that day, it performs a catch-up check at startup. When an update is found, a card appears in the bottom-right corner of the Web GUI, allowing the user to choose “Update now”, “Later”, or “Defer”.
  2. Resumable downloads and verification: Downloads support resumable transfer. Before installation, it supports three-layer verification using sha512/sha1/package identity.
  3. Failure handling: After an installation failure, it supports retry (reusing the local package) and rollback. If any stage fails, a complete diagnostic log is written to $DSH_HOME/dsh-git-update-notifier-logs/.
  4. Self-update: The plugin also detects its own version. It can automatically update git checkouts, npm dependencies, or GitHub dependency modes; for manually copied instances, it only prompts to update manually.
  5. Mode adaptation: It automatically recognizes three modes—source checkout, npx cache, and npm installation—and uses git pull or npm install logic accordingly.
  6. Proxy support: On Windows, git does not read the system proxy. The plugin detects and applies a proxy by itself (supports environment variables or the system proxy) and supports explicitly setting DSH_GIT_UPDATE_NOTIFIER_PROXY.

Installation and Enablement

Install it into the web profile using the official command:

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

After installation, restart dsh web for changes to take effect.

Typical Usage

You can control detection behavior with environment variables:

  • Set the release channel (default is latest; you can switch to next or alpha):
    DSH_GIT_UPDATE_NOTIFIER_CHANNEL=next
  • Set the registry mirror:
    DSH_GIT_UPDATE_NOTIFIER_REGISTRY=https://registry.npmmirror.com
  • Set the proxy:
    DSH_GIT_UPDATE_NOTIFIER_PROXY
  • Manual check: Click the “Check for updates” button on the settings page.

Behavior and Interaction

  • Prompt and settings page: The update prompt is displayed as a floating card in the bottom-right corner of the Web GUI (click-through). The settings page also includes a persistent section showing the status, version number, manual check button, and defer options.
  • Deferral mechanism: After choosing to defer, you can set it for 1 day, 3 days, 1 week, 2 weeks, or 1 month. Before it expires, it will not prompt again, but you can still view and update from the settings page.
  • Retry and rollback: If installation or download fails, the settings page provides “Retry installation” and “Roll back to before update” buttons. The rollback script is generated directly in the $DSH_HOME directory, ensuring that rollback can be performed via an external script even if DSH cannot start.
  • Catch-up check mechanism: If DSH is not running at 24:00, the next startup will perform a catch-up check to ensure the daily check is not missed.

Technical Details and Notes

  • Runtime environment: Requires Node.js version ^22.19.0 || >=24.0.0.
  • Build requirements: The plugin is plain hand-written JavaScript with no build step and can be run directly.
  • Host-side code changes: If host-side code such as lib/index.js is modified, you must restart dsh web for changes to take effect (simply refreshing the page is not enough).
  • Manual copy limitation: Manually copied instances cannot be updated automatically and must be replaced manually.
  • Proxy handling: On Windows, git does not read the system proxy by default; the plugin actively detects and uses one.

Summary

dsh-git-update-notifier solves the problem of difficult update detection and easily breaking the workspace in source checkout mode. It advances commits through git and, together with complete verification, rollback, and diagnostic mechanisms, provides reliable update assurance for local development. For more details and source code, see the plugin directory or the GitHub repository.