前言¶
在 DeepSeek Harness(DSH)里,模型有时会在已经拥有较高沙箱权限时,仍然携带 sandbox_permissions。如果请求的权限不高于当前 Session 权限,这类参数本来没有实际作用,却可能触发 not strictly wider 一类错误,或把无效请求带入审批路径。dsh-plugin-sandbox-escalation-fix 针对这个问题做一个很小的兼容层:它只处理不高于当前权限的无效参数,并保留 DSH 原有的提权审批与非法参数校验。
这是什么¶
inmny/dsh-sandbox-escalation-fix 是 MIT 许可的 DSH 插件。npm/README 中的包名为 dsh-plugin-sandbox-escalation-fix,当前资料给出的安装版本为 0.1.2。
它解决的是 DSH 0.1.0-rc.6 下 sandbox_permissions 和 justification 参数不匹配造成的噪音:模型已经拥有同级或更高权限时,重复请求不会误入审批;真正更宽的请求仍按 DSH 原有流程审批。
核心功能¶
插件在 Host 侧对 bash、pwsh、write、edit 中多余或过时的提权参数做正规化。standard、code、cordis、minimal 以及自定义 preset 中可见的对应工具共用这一修复,不需要额外配置。
主要行为如下:
- 忽略不高于 Session 当前权限的无效
sandbox_permissions请求,避免模型在已经拥有更高或相同权限时反复触发not strictly wider错误。 - 对确实需要升级但
justification缺失或为空白时,自动填入"Empty justification"。 - 忽略只有
justification而没有sandbox_permissions的孤立理由,避免 invalid escalation 参数配对错误。 - 真正更宽的请求仍进入 DSH 审批流程;合法非空理由保持不变。
read-only、未知 target 或非字符串justification等非法值仍由 DSH 拒绝。- 插件只作为 bundle layer 安装到目标 profile,不修改 DSH 安装目录。
- 插件监听工具和 Agent 生命周期,可处理全局定义、preset scoped shadow、后创建 Agent 和工具 HMR;工具替换或 Agent 销毁后,已经不可见的包装会被恢复并释放;插件卸载后,旧包装只会惰性透传参数。
这里要注意:它不是权限放开器。approval: never 表示审批请求自动拒绝,不表示自动授予权限。
安装与启用¶
运行时要求:
- Node.js 24 或更高版本
- DSH
0.1.0-rc.6 - DSH 支持的 Host 平台
从 npm 安装固定版本到 Web profile:
dsh plugin --profile web add dsh-plugin-sandbox-escalation-fix@0.1.2
更新现有安装时使用同一条命令。安装完成后重启 dsh web,让 Host 加载新插件,然后新建会话。
安装最新版时可以省略版本号:
dsh plugin --profile web add dsh-plugin-sandbox-escalation-fix
开发本地版本时传入 checkout 路径:
dsh plugin --profile web add C:\path\to\dsh-sandbox-escalation-fix
移除插件:
dsh plugin --profile web remove dsh-plugin-sandbox-escalation-fix
开发时运行完整验证:
pnpm install
pnpm test
pnpm run pack:check
典型用法¶
安装后不需要再为 bash、pwsh、write、edit 单独配置。插件会在工具调用前检查当前 Session 的沙箱权限:
- 如果请求的
sandbox_permissions不高于当前权限,插件会忽略这个无效提权参数,并按当前 Session 权限执行工具。 - 如果请求确实更宽,插件保持参数,继续走 DSH 原有审批。
- 如果只有
justification而没有sandbox_permissions,插件会忽略这个孤立理由。 - 如果需要升级但理由缺失或空白,插件使用
"Empty justification"作为 fallback。
这个行为等价于“只清理无效参数,不改变合法审批语义”。
适用场景与注意¶
适合使用 DSH 0.1.0-rc.6、在 bash、pwsh、write、edit 中遇到同级或过时沙箱权限参数造成反复报错的开发者。它适合作为过渡兼容插件:如果后续 DSH 原生接受这类无效提权 no-op,移除该插件即可。
使用前建议检查仓库源码、依赖和 MIT 许可证,并确认目标 profile 的权限模型符合预期。插件以当前 DSH 进程权限运行,安装后会影响对应 profile 中可见工具的执行参数正规化。
几个边界:
- 这是针对 DSH
0.1.0-rc.6ToolDefinition结构的兼容插件,升级 DSH 后应先运行测试并检查上游是否已经原生接受这类无效提权 no-op。 package.json中peerDependencies固定要求@deepseek-ai/cordis 4.0.1和多个@deepseek-ai/* 0.1.0-rc.6包。- 插件只处理参数正规化,不会放行真正的提权请求,也不会替代 DSH 的非法参数校验。
- 命名存在差异:仓库线索为
inmny/dsh-sandbox-escalation-fix,npm/README 包名为dsh-plugin-sandbox-escalation-fix。
链接¶
仓库:
- https://github.com/inmny/dsh-sandbox-escalation-fix
目录页线索(来自插件线索,未在本次资料中核实):
- https://www.skillhub.cn/plugins/inmny/dsh-sandbox-escalation-fix
生态说明:DSH 的插件生态遵循“一切皆插件”的思路;这里提到的目录页属于社区目录,不等同于 DeepSeek 或幻方的官方应用商店。