dsh-sandbox-temp-guard
在终端中运行以下命令:
dsh plugin install wsm000/dsh-sandbox-temp-guard
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install wsm000/dsh-sandbox-temp-guard 安装本插件;源码仓库为 https://github.com/wsm000/dsh-sandbox-temp-guard。
插件介绍
在 Windows 上,DSH 的本地 ACL 沙箱会为每个会话与工作区组合缓存一个私有临时目录(%TEMP%\dsh-XXXXXX),并在整个 provider 生命周期内无条件复用。一旦 Storage Sense、磁盘清理或手动操作把这个目录删掉,后续每次 confine() 都会指向不存在的路径,runner 报 windows-acl-run: --temp is not an existing directory,seam 按 fail-closed 抛出 SANDBOX_UNAVAILABLE。更麻烦的是:该会话内此后每条命令都会在执行前失败,重试无效,只能重启 DSH 才能恢复。
dsh-sandbox-temp-guard 是上游修复落地前的过渡方案。核心能力是在每次工具执行前(并可配置周期性兜底)发现活跃 sandbox provider 里缓存的 temp capability,对缺失目录执行 mkdir 并重新 grant.add,把 ACE 补回来,让故障在到达模型之前就自愈。若仍有漏网的 SANDBOX_UNAVAILABLE 或 --temp 相关错误出现在工具结果中,插件会追加注解:这是后端基础设施故障而非策略拒绝,不要用 sandbox_permissions 提权,守卫已重建 temp,请原样重试一次,仍失败则重开会话。
插件零运行时依赖,通过通用对象图发现 tempCapabilities,上游字段改名时会安全降级为 no-op。只针对「temp 目录被清理」这一类故障;若 ACL 后端本身崩溃,注解会引导你重开会话。
适合在 Windows 上长期使用 dsh-sandbox-local、且遇到过临时目录被系统清理后整会话命令全挂、或 Agent 误把 SANDBOX_UNAVAILABLE 当成沙箱损坏而反复申请 danger-full-access 的 DSH 用户。
使用场景
- 系统清理删掉 %TEMP%\dsh-XXXXXX 后,会话内命令持续 SANDBOX_UNAVAILABLE
- Storage Sense 或磁盘清理导致 windows-acl-run --temp 目录不存在
- Agent 把后端基础设施故障误判为沙箱损坏并反复申请提权
适合人员
- 在 Windows 上使用 dsh-sandbox-local 的 DSH 用户
- 遇到过临时目录被清后整会话命令全挂的开发者
- 希望减少 SANDBOX_UNAVAILABLE 与误提权干扰的 Harness 用户