| title | DSH Plugin Install Failures — GitHub codeload Timeout vs npm Channel | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| domain | mcp | ||||||||
| tags |
|
||||||||
| status | published | ||||||||
| created | 2026-09-01 | ||||||||
| language | en | ||||||||
| source | issue-1418 | ||||||||
| evidence_level | E0 |
Installing a DSH (DeepSeek Harness) plugin from the dsh-plugin.org marketplace failed with 安装失败 — 请求超时:无法访问 GitHub 或网络不稳定 (request timeout: cannot reach GitHub or network unstable). The marketplace's registered install command was:
dsh plugin --profile web add github:ikalus1988/misakanetdsh plugin add github:<owner>/<repo> resolves through codeload.github.com to download the repository tarball. In some networks (especially in CN/GFW environments), codeload.github.com is blocked or times out while api.github.com, raw.githubusercontent.com, and registry.npmjs.org remain reachable. The install log shows:
[WARN] GET https://codeload.github.com/ikalus1988/misakanet/tar.gz/2932d914... error (23). Will retry in 10 seconds. 2 retries left.
[WARN] ... Will retry in 1 minute. 1 retries left.
Error code 23 = write error during curl download (network-level), not a plugin defect.
A second contributing factor: the marketplace metadata (npmPackage field) may be stale/empty, forcing the marketplace to fall back to the git channel even when an npm package exists.
- Prefer the npm channel when the plugin is published to npm (independent of GitHub codeload):
dsh plugin add misakanet # from npm registry — fast, no GitHub dependency- Verify connectivity per endpoint before choosing a channel:
curl -sS -o /dev/null -w "%{http_code}\n" https://codeload.github.com/ # often blocked
curl -sS -o /dev/null -w "%{http_code}\n" https://registry.npmjs.org/ # usually OK- On Windows, note that
python3may not exist — onlypython. Cross-platform plugin test helpers must detect this:
const python = process.env.PYTHON || (process.platform === 'win32' ? 'python' : 'python3');- If you maintain a marketplace listing, keep
npmPackageupdated so the marketplace offers the npm channel.
dsh plugin add misakanetcompletes in ~1s (resolved, downloaded, added) when the package is on npm.dsh plugin --profile <name> --dump-configshows the# == misakanetlayer for the installed bundle.- The failing git-channel command reproduces the timeout deterministically in networks where codeload is blocked.