dsh-boot-guard: A Standalone Rescue Console for DSH Web UI Startup Failures

Preface

DeepSeek Harness (DSH) allows the Web UI to be extended through plugins. Plugins break down the capabilities of the local workspace, but they also introduce a practical issue: if a specific plugin fails to load, the Web UI may fail to start entirely, and the plugin management page becomes inaccessible.

dsh-boot-guard is a loader-independent rescue console designed for this scenario. It does not rely on the normal client-side plugin loading chain; when the page is left with only Failed to load plugins, the host provides a rescue entry point to identify suspected faulty plugins, temporarily skip them, refresh, and retry.

The DSH plugin directory is a community site, not an official app store. Below, the features, installation, usage, and security boundaries of SaiSenBox/dsh-boot-guard are introduced.

What This Is

dsh-boot-guard is a DSH Web UI rescue plugin. It does not delete plugins or touch plugin data; the so-called “skip” simply writes a disabled: true array item tagged with “Boot Guard” into the cordis.patch.yml file of the current DSH profile. When restoring, it only processes markers it has written itself.

Version and licensing information is as follows:

  • Package name: dsh-boot-guard
  • Repository: https://github.com/SaiSenBox/dsh-boot-guard
  • Maintainer: SaiSenBox
  • Version: 1.1.2
  • License: MIT © 2026 SaiSenBox
  • peerDependencies: @deepseek-ai/cordis ^4.0.1
  • Node.js: ^22.19.0 || >=24.0.0
  • Tested environment: DSH 0.1.0-rc.6, Node.js 24.5.0, Windows

Core Features

  • Identify suspected faulty plugins from load errors and auto-select them
  • By default, only view user plugins; also supports searching by name or loader entry ID
  • Temporarily skip one or a batch of plugins, then immediately reload and retry startup
  • Restore individual plugins, or restore all rescue-skipped items after a confirmation prompt
  • Clearly distinguishes between “Boot Guard temporary skip” and “disabled in original configuration”
  • Copies a brief diagnostic summary for easy pasting into an Issue for troubleshooting
  • UI available in both Chinese and English, following the language setting in DSH preferences
  • Provides a read-only self-check page adapted for dark mode, light mode, and narrow screens

Installation and Enablement

First, install and run DeepSeek Harness. Install from GitHub:

dsh plugin --profile web add github:SaiSenBox/dsh-boot-guard

This command adds the plugin to the web profile. After installation, restart dsh web:

dsh web

The README also provides an npm installation command. Since it assumes the package has already been published to npm, this document does not confirm the current publication status; if confirmed available, you can use:

dsh plugin --profile web add dsh-boot-guard

For local development installation on Windows:

git clone https://github.com/SaiSenBox/dsh-boot-guard.git
cd dsh-boot-guard
powershell -ExecutionPolicy Bypass -File .\install.ps1

The local installer places dependencies in a directory on the same drive as the DSH profile, avoiding potential broken junctions caused by cross-drive file: dependencies on Windows.

Typical Usage

First, perform a read-only self-check. After starting DSH Web, open the following addresses:

http://127.0.0.1:3080/boot-guard/preview
http://127.0.0.1:3080/boot-guard/preview?theme=light
http://127.0.0.1:3080/boot-guard/health

The self-check page only displays the interface and diagnostic results; it does not modify the actual configuration. Search, filtering, and checkboxes can be tested, but final actions will not be written to the configuration.

When a plugin actually causes startup failure, follow these steps:

  1. When the Failed to load plugins message appears, the recovery center automatically mounts below the error message.

  2. First, check whether the “Suspected Fault” selection is correct; if not, search by name or loader entry ID and select other plugins.

  3. Click “Skip Selected and Reload”. The page will reload without needing to restart the entire DSH process.

  4. After fixing the plugin, restore individually under “Rescue Skipped,” or use “Restore All Skipped.”

Restoring all requires a double confirmation to prevent accidental clicks. A maximum of 64 entries can be processed at a time; if more plugins need handling, skip and restore in batches.

Security Boundaries

This plugin modifies local configuration, so its boundaries are strictly defined:

  • Write endpoints only accept same-origin POST + JSON requests, and by default only allow local loopback connections
  • Validates request body size, entry count, and ID format
  • Boot Guard cannot set itself as skipped
  • If no profile explicitly declaring dsh.profile is found, it automatically enters read-only mode and does not guess the current directory
  • Confirms the configuration is a top-level YAML array before writing; empty files and [] are safely normalized, while other structures are directly rejected
  • Configuration modifications are executed serially, atomically replaced via a temporary file in the same directory, and recalculated after checking for external changes before committing
  • Restoration only recognizes Boot Guard’s own markers and will not clean up user configurations
  • No telemetry is collected, and error information is not sent to external services

If recovery operations genuinely need to be executed from a non-loopback address, you can explicitly set the environment variable before starting DSH:

DSH_BOOT_GUARD_ALLOW_REMOTE_MUTATION=1

This relaxes Boot Guard’s local-only restriction; it is not recommended to enable this without additional authentication protection.

Applicable Scenarios and Notes

  • Suitable for local DSH plugin development, debugging, and troubleshooting, especially providing an emergency entry point when the plugin management page is inaccessible.
  • This plugin runs within the current DSH process and can modify the local configuration of the current DSH profile. Before installation, review the source code, license, and repository information.
  • DSH is still in developer preview, and plugin interfaces may continue to change. The current version has been verified on DSH 0.1.0-rc.6, Node.js 24.5.0, and Windows, and follows Node.js ^22.19.0 || >=24.0.0.
  • If a new version causes issues with the rescue entry point, please submit an Issue including the DSH version and the content from “Copy Diagnostic.”

Links

  • GitHub repository: https://github.com/SaiSenBox/dsh-boot-guard
  • Directory page: https://www.skillhub.cn/plugins/SaiSenBox/dsh-boot-guard
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye