Introduction¶
The philosophy of DSH is “Everything is a plugin”. In the web profile, the plugin store is typically used to browse, search, and install plugins. dsh-plugin-hub 0.1.6 already provides a graphical plugin store, including local rating and comments, dependency topology diagrams, operation audit logs, plugin development scaffolds, pre-install quality gates and security scanning, health rankings, and trust badges.
Below introduces yiqizhuapangxiema/harness-plugin-store-optimized. It is a customized and optimized version of dsh-plugin-hub 0.1.6, primarily handling plugin download directories, bundle layer entry ID conflicts, pnpm pathfinding, restart prompts, and several upstream bugs.
What is this¶
One-sentence positioning: dsh-plugin-store-optimized is a customized plugin store for the DSH web profile.
- Repository:
yiqizhuapangxiema/harness-plugin-store-optimized - package.json package name:
dsh-plugin-store-optimized - Maintainer:
yiqizhuapangxiema - License:
MIT; upstream license is visible inLICENSE; secondary development must retain the original author’s copyright notice - Problems solved: Configurable plugin download directory, bundle layer entry ID conflict detection, pnpm automatic pathfinding, accurate “restart to take effect” prompts, enable timeout pass-through of real errors, scoped package support, and upstream bug fixes
Core Features¶
Configurable Plugin Download Directory¶
Add “Plugin Installation Directory” in the settings page or global DSH settings. The default directory is:
<DSH_HOME>/plugins
Saving with an empty value restores the default. The directory is automatically created during store initialization. Plugins installed by the store are persisted as source code folders and automatically registered for deployment; when uninstalling, the plugin folder and empty scope parent directories are deleted synchronously.
Bundle Layer Entry ID Conflict Detection¶
Before installation, it detects whether the entry ID in the new plugin’s bundle layer duplicates an existing bundle layer. If a duplicate is found, it will be intercepted directly and the conflicting IDs listed to prevent plugin tree crashes caused by the same loader entry ID.
pnpm Automatic Pathfinding¶
The installation chain first looks for pnpm in PATH. If pnpm is not in PATH, it automatically falls back to the harness local pnpm shim. This allows plugin installation to continue in some terminal environments.
Accurate Restart to Take Effect Prompt¶
Plugins in the bundles layer are only combined at startup. The installation receipt explicitly prompts that it will take effect after restarting dsh, no longer describing the installation result as hot reloading. When enabling or disabling plugins that are “installed but not loaded”, the same clear prompt is given.
Enable Timeout Pass-through of Real Errors¶
When a plugin enablement times out, the error will include the entry’s real initialization failure reason, rather than just returning “Timeout”.
Scoped Package Support¶
Packages in the form @scope/name can be correctly staged and uninstalled. Scope parent directories are created automatically, and staged directory names are flattened.
Upstream Bug Fixes¶
Verified fixes listed include:
- YAMLSeq uninstall false positive.
- Patch integrity check false positive.
- pnpm uninstall post-failure tolerance.
Installation and Enablement¶
Prerequisites¶
First, install the official dsh CLI:
npm install -g @deepseek-ai/dsh
Prepare pnpm 10+. If pnpm is not in PATH, the store will automatically search for the harness local pnpm shim when installing plugins.
package.json engines requirements:
node ^22.19.0 || >=24.0.0
Method 1: Clone and Install¶
First uninstall the old registry version to avoid both being installed at the same time:
dsh plugin --profile web remove dsh-plugin-hub
Then clone this repository and install:
git clone https://github.com/yiqizhuapangxiema/harness-plugin-store-optimized.git
cd harness-plugin-store-optimized
dsh plugin --profile web add file:<absolute path to this repository>
After installation, restart dsh web to make it effective. Press Ctrl+F5 in the browser to refresh the page.
Method 2: npm Install¶
The npm package dsh-plugin-store-optimized has not been published yet. Once published, you can use:
dsh plugin --profile web add dsh-plugin-store-optimized
Method 3: Patch the Installed Registry Version¶
If you retain the already installed registry version dsh-plugin-hub, you can use the patches provided by this repository. Example:
cd <DSH_HOME>/profiles/web/node_modules/dsh-plugin-hub
git apply --ignore-whitespace <this repository>/patches/installer.js.patch
Apply the remaining 4 patches in the same way. After the upstream releases a new version, upgrade and re-apply the patches.
Regression Testing¶
Run:
node tests/verify-install.mjs
On Windows, it is recommended to add the PATH prefix to ensure pnpm is available.
Typical Usage¶
- Check Node version satisfies
node ^22.19.0 || >=24.0.0and confirm the officialdshCLI is installed. - Uninstall the old version:
dsh plugin --profile web remove dsh-plugin-hub
- Clone this repository and execute:
dsh plugin --profile web add file:<absolute path to this repository>
- Restart
dsh weband refresh withCtrl+F5in the browser. - If you need to modify the plugin persistence location, modify “Plugin Installation Directory” in the settings page or global DSH settings; saving with an empty value restores the default.
Suitable Scenarios and Notes¶
Suitable for developers who need to stably use the DSH web plugin store, especially in the following situations:
- Hope the plugin download directory is configurable rather than fixed to the default directory.
- Need to avoid plugin tree anomalies caused by bundle layer entry ID conflicts.
pnpmis not in the terminalPATH, but still want the installation chain to continue.- Need more explicit “restart to take effect” prompts and enable timeout errors.
Notes:
- Do not install the registry version
dsh-plugin-huband this version simultaneously. Both inserting the same loader entry ID will cause the plugin tree to crash. - Plugins in the bundles layer are only combined at startup. Restart
dshis required after installation; it is not considered hot reloading. - Plugins run in the current
dshprocess. You should check the source code, license, and dependencies before installing to confirm their functionality and permissions are acceptable. - The npm package has not been published yet; currently reproducible methods are
file:clone install or patch install. - This repository is a community customized version. The community directory is an independent site and has no official affiliation with DeepSeek / Fuxin. It should not be understood as an official app store.
Conclusion¶
harness-plugin-store-optimized organizes several installation pain points of dsh-plugin-hub 0.1.6 into a clearer workflow: configurable download directory, detectable bundle layer conflicts, pnpm pathfinding fallback, more accurate restart prompts, and fixes the listed upstream bugs.
GitHub Repository:
https://github.com/yiqizhuapangxiema/harness-plugin-store-optimized
The directory page URL is not provided in the verified information.