自动重建被清理的会话临时目录并补回 ACL 授权
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wsm000/dsh-sandbox-temp-guard该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
- 读取本地文件src/index.js:139
if (!existsSync(root)) mkdirSync(root, { recursive: true }) - 写入本地文件src/index.js:139
if (!existsSync(root)) mkdirSync(root, { recursive: true }) - 读取本地文件src/index.js:162
if (existsSync(cap.dir)) continue - 写入本地文件src/index.js:164
mkdirSync(cap.dir, { recursive: true })
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 自动重建会话临时目录
- 补回ACL授权
- 标注后端不可用失败
展开完整介绍(144 字)↓
给 DeepSeek Harness Windows ACL 沙箱加的自愈防护:系统临时文件清理删掉每会话私有临时目录时自动重建,并给后端不可用的失败加上标注,免得智能体一路升级权限。deepseek-ai/deepseek-harness Discussion #8550 的临时补丁。
README
由 DeepSeek 最新模型翻译生成dsh-sandbox-temp-guard
English · 中文
DeepSeek Harness(DSH)Windows 沙箱自愈插件:系统临时目录清理把会话私有 temp 目录(%TEMP%\dsh-XXXXXX)删掉时,自动重建目录并补回 ACL 授权,让命令不再报 SANDBOX_UNAVAILABLE;同时对仍然漏网的「后端不可用」错误追加排查指引,避免 Agent 把它误判成「沙箱已损坏」而反复申请 danger-full-access 提权。
对应上游讨论:deepseek-ai/deepseek-harness Discussion #8550
它解决什么
在 Windows 上,@deepseek-ai/dsh-sandbox-local 为每个 (会话, 工作区) 组合创建一次私有临时目录并缓存整个 provider 生命周期:
const tempDir = mkdtempSync(join(tmpdir(), 'dsh-')) // %TEMP%\dsh-XXXXXX
// + 一个可撤销的 capability-SID ACL 授权
this.tempCapabilities.set(key, { dir: tempDir, writeSid, grant })
展开完整文档(README 剩余 1 节)
dsh-sandbox-temp-guard
English · 中文
DeepSeek Harness(DSH)Windows 沙箱自愈插件:系统临时目录清理把会话私有 temp 目录(%TEMP%\dsh-XXXXXX)删掉时,自动重建目录并补回 ACL 授权,让命令不再报 SANDBOX_UNAVAILABLE;同时对仍然漏网的「后端不可用」错误追加排查指引,避免 Agent 把它误判成「沙箱已损坏」而反复申请 danger-full-access 提权。
对应上游讨论:deepseek-ai/deepseek-harness Discussion #8550
它解决什么
在 Windows 上,@deepseek-ai/dsh-sandbox-local 为每个 (会话, 工作区) 组合创建一次私有临时目录并缓存整个 provider 生命周期:
const tempDir = mkdtempSync(join(tmpdir(), 'dsh-')) // %TEMP%\dsh-XXXXXX
// + 一个可撤销的 capability-SID ACL 授权
this.tempCapabilities.set(key, { dir: tempDir, writeSid, grant })
之后每次 confine() 都直接复用缓存的 dir,不检查目录是否还存在。一旦 Storage Sense / 清理工具 / 手动删除把这个目录清掉:
1. runner 收到 --temp <已消失的路径>,requireDirectory 失败 → windows-acl-run: --temp is not an existing directory(exit 127)
2. seam 按 fail-closed 原则抛出 SandboxUnavailableError(SANDBOX_UNAVAILABLE)
3. 该会话内此后每条命令都失败,且重试无效(失败发生在命令执行之前),直到 DSH 重启。缓存里的坏路径会一直用下去。
同一个环境里多个会话会相继中招(实测 dsh-X5ECMI、dsh-uTBiqr、dsh-r0YqAq)。
插件做什么
1. 修复(核心):在每次工具执行前(并可配置地周期性)找到活跃 sandbox provider 缓存的 temp capability,对缺失的目录执行 mkdirSync 并重新 grant.add(dir) (目录没了,挂在它上面的 ACE 也随之消失,必须补授)。命令随即恢复正常,错误根本不会浮到模型面前。
2. 注解(卫生):如果 SANDBOX_UNAVAILABLE / windows-acl-run: --temp 仍然出现在工具结果里,tools/post-execute 会给结果追加一段指引,明确告诉模型: 这是后端基础设施故障,不是策略拒绝;不要用 sandbox_permissions 提权;守卫已重建 temp 目录,请原样重试一次;仍失败则需要重开会话。
安装
任选其一(版本以 DSH 0.1.7-rc.2 实测,安装机制来自官方 dsh plugin):
GitHub 源(未发布 npm 时的默认路径;DSH-Plugins-Marketplace 等市场的 topic:dsh-plugin 收录插件,一键安装走的也是这个 spec)
npx @deepseek-ai/dsh plugin --profile desktop add github:wsm000/dsh-sandbox-temp-guard
npm(若本插件已发布到 npm;市场对已发布 npm 的插件会优先走 npm,更快更稳)
npx @deepseek-ai/dsh plugin --profile desktop add dsh-sandbox-temp-guard
本地 tarball(开发/内测)
pnpm pack # 得到 dsh-sandbox-temp-guard-0.1.0.tgz
npx @deepseek-ai/dsh plugin --profile desktop remove dsh-sandbox-temp-guard # 版本变化时先移除
npx @deepseek-ai/dsh plugin --profile desktop add ./dsh-sandbox-temp-guard-0.1.0.tgz
本插件零运行时依赖,file:/// 源码 overlay 亦可加载:
dev.patch.yml
- insert:
- id: sandbox-temp-guard
name: 'file:///C:/abs/path/to/dsh-sandbox-temp-guard/src/index.js'
config:
repairBeforeToolExecution: true
sweepIntervalMs: 60000
annotateBackendFailure: true
npx @deepseek-ai/dsh --profile dev --patch ./dev.patch.yml
配置(cordis.patch.yml)
| 键 | 默认 | 说明 |
| repairBeforeToolExecution | true | 每次工具执行前扫一遍并修复 |
| sweepIntervalMs | 60000 | 周期兜底扫描间隔,0 关闭 |
| annotateBackendFailure | true | 对后端失败结果追加排查指引 |
验证
node test/run-test.mjs # 17 项离线断言:发现/重建/补授/容错/钩子接线/注解
设计约束与已知限制
- 零运行时依赖(仅 node 内置模块),因此 tarball / npm / file:// overlay
三种安装方式都可用;ctx.get('sandbox') 为可选访问,缺失时安全降级。
- 对 provider 内部结构(tempCapabilities)的访问是通用发现(遍历对象图寻找
- Map 形态、条目含 { dir, grant.add } 的缓存),上游改名时退化为 no-op 而不是崩溃。
已在 DSH 0.1.7-rc.2 的 dsh-sandbox-local 上验证字段形状。
- 本插件是上游修复落地前的过渡方案;上游正确修法是在
materializeAclGrant() 复用缓存前检查目录存在、缺失则重建并补授。
- 只处理 temp 目录被清理这一种故障;provider 完全不可用(如 ACL 后端崩溃)时,注解会提示重开会话,这是当前唯一恢复手段。
MIT License.
dsh-sandbox-temp-guard(英文)
一个自愈守护插件,面向 DeepSeek Harness 的 Windows ACL 沙箱。
这个 bug(上游 Discussion #8550): @deepseek-ai/dsh-sandbox-local 按 (session, workspace) 缓存一个私有 temp 目录 —— %TEMP%\dsh-XXXXXX,外加一条 capability-SID ACL 授权 —— 缓存整个 provider 生命周期,并无条件复用缓存路径。一旦操作系统清理 temp 时删掉该目录,每次 confine() 都会传入过期的 --temp,windows-acl-run runner 拒绝启动(--temp is not an existing directory,退出码 127),seam 随即 fail closed 并报 SANDBOX_UNAVAILABLE —— 该会话里的每条命令都会失败,直到 DSH 重启。
本插件:
1. 修复 —— 每次工具执行前(外加周期性扫描),定位活跃沙箱 provider 缓存的 temp capability,重建缺失目录,并重新应用其 capability ACE。故障永远不会到达模型。
2. 注解 —— 如果 SANDBOX_UNAVAILABLE / windows-acl-run: --temp 故障仍然落进工具结果,就追加一段补救说明:这是后端基础设施故障,不是策略拒绝;不要用 sandbox_permissions 升级;重试一次;若仍失败就重启会话。
安装(DSH ≥ 0.1.7-rc.2,已在 0.1.7-rc.2 上验证):
GitHub source (default path while the plugin is not on npm; the topic:dsh-plugin
marketplaces one-click-install through the same spec)
npx @deepseek-ai/dsh plugin --profile desktop add github:wsm000/dsh-sandbox-temp-guard
npm (once published; marketplaces prefer the npm package when it exists)
npx @deepseek-ai/dsh plugin --profile desktop add dsh-sandbox-temp-guard
local tarball
npx @deepseek-ai/dsh plugin --profile desktop add ./dsh-sandbox-temp-guard-0.1.0.tgz
源码覆盖(--patch)安装同样可用 —— 本插件零运行时依赖(只用 node 内置模块)。
配置(cordis.patch.yml):repairBeforeToolExecution(true)、 sweepIntervalMs(60000)、annotateBackendFailure(true)。
测试:node test/run-test.mjs —— 17 条离线断言,覆盖发现、重建、ACE 重新授权、故障隔离、钩子接线、注解,以及服务缺失时的降级。
这是框架修复落地前的过渡方案(在 materializeAclGrant 内部实现复用即重建)。MIT。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wsm000/dsh-sandbox-temp-guard
自动重建被清理的会话临时目录并补回 ACL 授权
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7