配置与版本固定
profile 是什么#
DSH 用 profile 管理一套插件环境,插件之间通过 pnpm 管理依赖,对应的配置文件是 profile 目录下的 pnpm-workspace.yaml。绝大多数时候你不需要碰它,但有两种情况必须动手:构建脚本被拦截,以及锁定插件版本。
构建脚本被拦截怎么办#
从 GitHub 安装的插件可能带有安装期构建脚本(postinstall 等),pnpm 出于安全默认不会执行它们。首次安装这类插件时,可能安装不完整或直接报错。
解决办法是在 profile 的 pnpm-workspace.yaml 中把该包加入 allowBuilds 白名单:
allowBuilds:
- <owner>/<name>保存后重新执行安装命令即可。只允许你信任的来源,不要盲目放行所有仓库。
用 commit-sha 锁定版本#
安装命令支持在仓库名后追加 commit-sha,把插件固定到某个确定提交:
dsh plugin add github:<owner>/<name>#<commit-sha>上游 DeepSeek Harness 目前处于 developer preview 阶段,官方明确提示会有不兼容变更,锁定一个验证过的提交可以有效防止某天更新后插件行为变化。
什么时候锁定,什么时候跟随最新#
建议锁定:
- 生产或演示环境:稳定性优先,避免上游破坏性变更突然影响你
- 团队协作:把每个插件的 commit-sha 写进团队文档或安装脚本,保证所有人版本一致;升级时先由一人验证,再统一更新锁定值
- 排查问题:上游某次提交引入故障时,锁回上一个可用提交
可以跟随最新:
- 个人尝鲜:想第一时间体验新功能,能接受偶发故障
- 上游活跃且变动小:维护者稳定、更新谨慎的插件,跟随最新省去手动升级
拿不准时先锁定。锁定是保守默认值,需要新功能时再显式升级,比被上游变更偷袭好处理得多。