DeepSeek Harness Hub
← 返回列表

工作区越界确认CsBpRd/dsh-workspace-only-plugin

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

越界文件访问一律弹窗确认,任何模式都不放过

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

DeepSeek Harness (dsh) 插件:Workspace Only 开关 —— 任何模式下越界文件访问都请求用户确认 (approval prompt in every mode)

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

README

dsh-workspace-only-plugin

DeepSeek Harness (dsh) 插件:为 dsh 增加 "Workspace Only" 开关。

功能

- 开关开启后,任何模式(read-only / workspace-write / danger-full-access / auto)无差别对待:代理访问工作目录以外的文件,一律弹窗请求用户确认:
- 弹窗直接派发在 approval/request 通道上,绕过审批策略闸门——即使会话是 Full access(审批 = never)也会弹出,不会静默拒绝;
- 用户批准 → 放行这一次调用(按会话自身模式执行);用户拒绝 / 无应答渠道 → 拒绝;
- 越出工作区的 read/write/edit/read_image/glob/grep/bash/pwsh 调用都会触发;
- 内嵌路径(node -e / python -c 字符串里的绝对路径)也会被词法扫描捕获并触发弹窗;
- auto 模式插件(@nanmicoder/dsh-auto-mode)照常运行但被收编:其分类器仍裁决工作区内调用,越界调用先走本插件的用户确认。
- 权限预设 workspace-write 显示名永久改为 "Write Only"(与开关状态无关)。
- 开关为全局设置(持久化到 settings.yaml),所有会话立即生效;设置页与输入栏各有一个开关。

安装

一行安装(推荐):

curl -fsSL https://raw.githubusercontent.com/CsBpRd/dsh-workspace-only-plugin/main/install.sh | bash

脚本自动:装进 profile 的 bundle 层栈(dsh plugin add,首次使用自动初始化 profile)→ 打两个必需的核心补丁 → 检测到运行中的 dsh web 则以原命令行重启(会话持久化,重启后恢复)。可调环境变量:DSH_PROFILE(默认 web)、DSH_HOME、DSH_NO_RESTART=1(跳过重启)。

手动安装:

1. 在 ~/.dsh/profiles/web/package.json 的 dependencies 加:
"dsh-workspace-only-plugin": "github:CsBpRd/dsh-workspace-only-plugin"
2. 在 dsh.profile.bundles 末尾追加 "dsh-workspace-only-plugin"。
3. cd ~/.dsh/profiles/web && pnpm install。
4. 重启 dsh web 服务。

与 auto 插件共存

本插件把 workspace-write 预设改名 "Write Only" 后,auto 插件的客户端按标签匹配权限菜单,需同步把
@nanmicoder/dsh-auto-mode 的 lib/client.js 中 REQUIRED_PERMISSION_LABELS 的
"Workspace Write" 改为 "Write Only"(auto 升级后需重打)。

核心补丁(升级 dsh 后需 node scripts/patch-core.mjs 重打)

1. @deepseek-ai/dsh-host-apiproxy 的 WEB_SETTINGS_NAMESPACES 白名单加入
"workspace-only"——该白名单决定 Web 客户端可读写的设置命名空间,插件自身无法注册暴露;
2. 上述 auto 插件标签补丁。

两处都幂等,脚本自动跳过已打过的文件。

安装(续)

5. cd /Volumes/CBR DATA/项目/dsh-workspace-only-plugin && node scripts/patch-core.mjs(打核心补丁)。

边界

- 收编是工具层闸门(词法路径扫描),非内核级隔离;扫描器无法静态看到的路径(完全动态计算)是残余面,与 auto-mode 插件同级哲学。
- 在 Write Only(workspace-write)会话,批准后的越界写仍受内核围栏拦截,此时按 dsh 既有 escalation 流程(sandbox_permissions)再确认一次后放行——写操作始终需要用户明确同意。
- 技能加载、会话持久化等 dsh 内部机制不受影响。

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

💬 加入 DPharness 群聊

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

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