DSH plugin add 安装 Git 插件失败却提示 allowBuilds?DeepSeek Harness 排查

故障排查发布于 2026-08-27作者: DSH Plugin 插件中心
DeepSeek HarnessDSH pluginallowBuilds插件安装报错Git 安装失败
DSH plugin add 装 Git 插件失败却提示 allowBuilds?先看 pnpm 报错码:ERR_PNPM_GIT_FETCH_FAILED 是网络问题不是构建策略,改 allowBuilds 无效;只有 ERR_PNPM_IGNORED_BUILDS 这类构建策略失败才需要改。

DSH plugin add 安装 Git 插件失败后提示你改 allowBuilds,但这个提示往往是误报——它只看命令长得像不像 Git 地址,不看你实际死在网络还是构建策略上。 先看 pnpm 的原始报错,再决定要不要动 allowBuilds:网络问题改它没用。

DSH plugin add 报错却提示 allowBuilds:症状与误报原因

典型场景是 dsh plugin --profile <name> add git+https://… 这类 Git 安装:pnpm 还没拉到仓库就失败,DSH 却接着提示「Git 插件通过 prepare 构建,请编辑 allowBuilds」。 有用户实跑遇到(讨论原文),环境为 DSH 0.1.1-rc.2、Node 24、Windows,过程如下:

  1. 执行 dsh plugin --profile web add git+https://github.com/your-repo.git
  2. 终端先出现 pnpm 报错 ERR_PNPM_GIT_FETCH_FAILEDFailed to connect to github.com port 443: Timed out
  3. 紧接着 DSH 提示去编辑 allowBuilds——但仓库根本没下载,prepare 构建一步都没执行。

关键点:pnpm 自己的报错没有被吞掉(安装子进程原样输出 stderr),报错码是判断方向的唯一可靠依据。而 allowBuilds 提示是 DSH CLI 的诊断逻辑选的——它只看命令参数是不是 Git 形状(git+ / github: / .git),既不读退出码也不读 ERR_PNPM_* 码,所以网络失败也会被套上构建策略的提示(plugin.ts 源码)。

DSH 插件安装报错怎么判断:网络失败还是构建策略失败

判断方法只有一个:读 pnpm 原始报错里的错误码。 两类报错码对应两条完全不同的修复路径:

pnpm 报错码含义改 allowBuilds 有用吗
ERR_PNPM_GIT_FETCH_FAILED仓库没下载成功(网络/超时)没用
Failed to connect … port 443: Timed out连不上 github.com没用
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWEDGit 依赖的 prepare 脚本被构建策略拦截有用
ERR_PNPM_IGNORED_BUILDS包带安装脚本被构建策略忽略有用

反向情况也值得知道:纯 npm 包因构建策略失败时,反而不提示 allowBuilds。比如某依赖链(pi-ai → genai client → protobufjs)携带安装脚本被 pnpm 拦截,首个报错就是 ERR_PNPM_IGNORED_BUILDS,但因为它不是 Git 形状的命令,提示被抑制——真正需要 allowBuilds 提示的用户反而看不到(讨论回复)。

DSH plugin 安装重试:网络问题修网络,构建策略才动 allowBuilds

网络类失败:先修连接,再重试安装,不要改 allowBuilds。 按步骤排查:

  1. 确认网络本身可达:终端执行:
bash
curl -I --max-time 10 https://github.com

应返回 HTTP 状态行(200 或 3xx),超时或失败即网络问题; 2. 检查代理:DSH 安装子进程会读取系统代理与 HTTPS_PROXY 环境变量,先确认浏览器能打开 GitHub、系统代理正常,再用环境变量核对代理配置:

bash
env | grep -i proxy
  1. 网络恢复后重试:再次执行原安装命令,pnpm 报错消失、进入安装流程即成功:
bash
dsh plugin --profile <name> add git+https://github.com/your-repo.git
  1. 无法直连 github.com 的网络环境,改用 npm 镜像或国内可达的仓库镜像地址,或改装 npm 分发的插件。

构建策略类失败:才需要动 allowBuilds。 只有看到 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWEDERR_PNPM_IGNORED_BUILDS 才按 DSH 提示编辑 allowBuilds(把对应包加入白名单),保存后重跑安装。

allowBuilds 误报修复进度:DeepSeek Harness 补丁等官方合入

这个误报已被社区定位到根因并修好,补丁分支待官方合入。 作者 adoresever 按 ERR_PNPM_* 报错码重写了提示门控(补丁分支):

  1. 只有 stderr 包含 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWEDERR_PNPM_IGNORED_BUILDS 才提示 allowBuilds;
  2. ERR_PNPM_GIT_FETCH_FAILED 等网络失败不再提示;
  3. 已通过构建后 CLI 回归测试(Git 网络失败 / Git 构建策略失败 / npm 构建策略失败三种场景 19/19 通过);
  4. 因上游限制外部 PR 创建,补丁等维护者拉取或 cherry-pick——官方合入前,按本文判断报错码即可绕开误报。

命令行装插件最容易在「源 + 网络」这一步踩坑,误报还会把人带偏去改 allowBuilds。如果不想跟这些报错打交道,DeepSeek Harness 桌面端内置了官方插件中心 DSH Plugin Hubdsh-plugin.org)——可视化浏览、一键安装/卸载/更新,安装过程有确认弹窗和系统日志,遇到失败能直接看到是哪一步出的错。

注意事项

  1. 网络失败先修网络,别动 allowBuilds——改了也没用,还可能把安全白名单改宽。
  2. 判断依据以 pnpm 原始报错码为准,不以上面的 allowBuilds 提示为准。
  3. 补丁合入前可留意 DeepSeek Harness Release Notes,确认新版本是否包含该修复。

来源:Discussion #4702apps/cli/src/plugin.ts补丁分支 fix/plugin-build-policy-diagnostic

常见问题

dsh plugin add 装 git+https 插件失败却提示编辑 allowBuilds 是什么原因?

这是 DSH CLI 的诊断缺陷:提示只看命令参数是不是 Git 形状(git+ / github: / .git),不读 pnpm 实际退出码。网络超时(ERR_PNPM_GIT_FETCH_FAILED)根本没走到构建阶段,也会被误判为需要改 allowBuilds(来源)。

怎么判断是网络问题还是构建策略问题?ERR_PNPM_GIT_FETCH_FAILED 和 ERR_PNPM_IGNORED_BUILDS 分别代表什么?

看 pnpm 的原始报错码:ERR_PNPM_GIT_FETCH_FAILED 或 Failed to connect … Timed out 是网络;ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS 才是构建策略。pnpm 报错会原样输出在终端里,改 allowBuilds 只对后者有效。

allowBuilds 误报什么时候会修复?补丁分支 fix/plugin-build-policy-diagnostic 是什么?

社区已出补丁分支 fix/plugin-build-policy-diagnostic(来源):只有构建策略报错码才提示 allowBuilds,网络失败不再提示,E2E 19/19 通过,等待官方合入后更新版本即可。

网络超时导致 dsh plugin add 装 Git 插件失败怎么解决?怎么用 curl 和 env 排查代理?

先修网络再重试:curl -I --max-time 10 https://github.com 确认能访问 github.com,env | grep -i proxy 检查系统代理与 HTTPS_PROXY 环境变量,网络恢复后重新执行 dsh plugin add,pnpm 报错消失即成功;无法直连的网络环境改用 npm 镜像或改装 npm 分发的插件。

来源