In the DeepSeek Harness (DSH) ecosystem, maintaining plugins and integration repositories usually requires manual operations. When a new version is released, developers need to handle git pull, dependency installation, and the build process on their own. The dsh-updater plugin aims to simplify this workflow by providing an automated, secure, and low-risk update mechanism.
This is a plugin maintained by GodCC6, aimed at providing automatic update capabilities for DSH. It supports both git checkout and global npm installation forms, and covers integration repositories under ~/.dsh/integrations/.
Core Features¶
The plugin provides the following capabilities:
- Status check:
dsh_update_status. Detects the installation form (git / npm / unknown), compares the harness itself and each integration repository to identify version lag, and displays the progress and result of the most recent update task. - Manual update:
dsh_update_run. Runs the update in the background. For git installations, it executesgit pull --ff-only, then runspnpm install --frozen-lockfileandpnpm build; for integration repositories, it performs ff-only pulls one repository at a time. - Cancel update:
dsh_update_cancel. Interrupts an in-progress update task at any time, automatically rolls back partially completed steps, and sets the background task status to killed. - Automatic mode: Enabled by setting
autoApply: true. When a new version is detected and the system meets idle conditions (no running job and the session has been silent foridleQuietMs), it applies the update automatically. For target repositories that are diverged or dirty, it only reports them and does not perform updates; if the same version fails, it does not retry. - Web panel: Under Settings → Updater in the Web interface, you can view the status capsule, perform check/one-click update/cancel operations, and view pendingRestart notifications.
Installation¶
Install the plugin using the following command:
dsh plugin --profile web add github:GodCC6/dsh-updater
Configuration¶
Default configuration is defined by patch lines in cordis.patch.yml. Main configuration options are as follows:
| Field | Default | Description |
|---|---|---|
checkOnStart |
true |
Whether to check for updates immediately when the plugin starts |
checkIntervalMinutes |
30 |
Interval between scheduled checks (minutes) |
autoApply |
false |
Whether to automatically apply detected updates |
idleQuietMs |
120000 |
Idle quiet threshold (milliseconds) |
npmDistTag |
latest |
dist-tag used for npm-form updates |
integrationsDir |
~/.dsh/integrations |
Path to the integrations directory |
Typical Usage¶
- Check the current installation form and update status:
dsh_update_status
- Run a background update task:
dsh_update_run
- Cancel an in-progress update:
dsh_update_cancel
- Operate from the Web panel: go to
Settings → Updater.
Notes¶
- Zero privileges: No sudo permission is required while the plugin is running, and all file write operations are limited to the user directory.
- Zero dependencies: The plugin is written entirely based on Node.js built-in modules, with no third-party dependencies.
- No automatic restart: After an update completes, the plugin only sets a
pendingRestartstatus hint, and the action of restarting dsh is controlled by the user. - Safety mechanism: By default, it only notifies that a new version is available; performing an update requires explicitly invoking a command. Pull operations use only
--ff-only, and on failure automatically roll back to the pre-update state, leaving no half-updated state.
Summary¶
The dsh-updater plugin reduces maintenance risk in the DSH environment by separating checking from execution, adopting a fast-forward strategy, and automatically rolling back on failure. Developers can manage the update workflow through the command line or Web panel, keeping plugins and integration repositories up to date. For more details, refer to the plugin directory or the GitHub repository.