DeepSeek Harness Hub
← 返回列表

子进程环境透传zhangzujian/dsh-subprocess-inherit-environment

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

将完整进程环境注入子进程调用,供命令读取

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/15 · 已提供中文文档

DSH 插件,通过 ctx.subprocess 转发完整的 Harness 环境

综合分
27.5
GitHub 分
27.5
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add zhangzujian/dsh-subprocess-inherit-environment
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-subprocess-inherit-environment

一个可移除的 DeepSeek Harness / DSH 插件,它有意将 Harness 进程的完整环境通过 ctx.subprocess 服务转发出去。

安全警告

此插件禁用了 DSH 的子进程凭据隔离。 每个使用被包装的子进程服务的调用方都可以将 Harness 进程的 API 密钥、令牌、密码、机密、Cookie、代理凭据以及其他环境值传递给子进程。模型生成的命令、仓库脚本、包安装程序、CLI、MCP 服务器以及终端程序都可能读取或窃取这些值。

请勿在共享或不受信任的 Harness 部署上安装此插件。在可能的情况下,优先使用专用工具或精确的变量允许列表。

该插件本身从不记录环境变量名称或值。但这并不能阻止子进程打印或传输它们。

行为

DSH 通常从经过清理的父环境启动子进程。在合并显式请求条目之前,匹配 KEY、PASSWORD、SECRET 或 TOKEN 的变量名,以及环境中的 DSH_* 名称,都会被移除。

此插件包装了三个 ctx.subprocess 操作,并提供由 process.env 构建的显式环境层:

- resolveExecutable(command, env, signal)
- spawn(spec)
- spawnTerminal(spec)

这三个操作都必须是函数。自有方法描述符必须是可配置的;继承的方法以及缺失的安装标记要求运行时是可扩展的;已存在的标记槽必须是可配置的。应用(apply)会在变更之前检查该完整替换契约。如果定义标记或任何方法仍然失败,或者 Cordis 拒绝 effect 注册,apply 会在重新抛出错误之前回滚标记以及每一个已安装的方法描述符。

调用方提供的条目会在每次调用时于全新的 process.env 展开之后合并,因此显式覆盖和 undefined 墓碑值会保留其原有含义。该插件不会修改调用方拥有的请求。

释放(Disposal)首先使每个已安装的包装器失效,然后在插件仍然拥有它们时恢复之前的方法描述符。因此,一个捕获并委托给插件方法的后续包装器在释放后会以调用方的精确参数到达原始 DSH 方法,而不会注入环境。后续的方法替换不会被覆盖。在第一个安装处于活动状态时,在同一子进程运行时上多次安装此插件会被拒绝,从而避免不明确的乱序拆除。

该插件覆盖那些通过 ctx.subprocess 进行进程创建的消费者。它无法影响绕过该服务并直接调用 Node.js 进程 API、worker API 或 SDK 自有的 spawn 的代码。

安装到 DSH 配置文件中

在此包发布到 npm 之前,请克隆它并添加本地目录:

git clone https://github.com/zhangzujian/dsh-subprocess-inherit-environment.git
cd dsh-subprocess-inherit-environment
npx @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web add "$PWD"

该包声明了一个 DSH bundle,因此 dsh plugin 会自动将其补丁层添加到该 profile。如果当前激活的 profile 不会热重载服务器插件,请重启 DSH。

要移除它并恢复 DSH 的默认凭据清理:
bash
npx @deepseek-ai/dsh@0.1.0-rc.6 plugin --profile web remove @zhangzujian/dsh-subprocess-inherit-environment

对于本地文件 URL 覆盖:
yaml
- insert:
- id: subprocess-inherit-environment
name: file:///absolute/path/to/dsh-subprocess-inherit-environment/index.mjs

测试

单元测试需要 Node.js 22 或更高版本:
bash
npm test

集成测试针对已安装的 DSH 目录树运行,并验证原始清理、继承环境以及释放时的恢复,且不会打印任何密钥值:
bash
DSH_INSTALL_DIR=/path/to/dsh/install npm run test:integration

DSH_INSTALL_DIR 是包含 node_modules/@deepseek-ai 的目录。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(zhangzujian)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群