READMESource: main@d881e7ef
工作区修改++
Windows 上用 DeepSeek Harness,一跑 git 就炸:
fatal error - couldn't create signal pipe, Win32 error 5
这不是 Git 坏了。官方「工作区写入」会给子进程套一层受限令牌,Git for Windows / MSYS 需要内存映射和命名管道,一套上就起不来。
这个插件在权限选择器里加第四档:工作区修改++。文件还是只能改工作区,但放行的程序(默认 Git Bash 和 PowerShell)不再套那层进程沙箱。选上之后,git --version 就能正常出来。
它不是「完全访问」。不想把整个磁盘交给模型的时候用这一档。
安装
dsh plugin --profile web add https://github.com/yzxxy010/dsh-workspace-write-plus
装完重启一次 DSH。输入框旁边的权限选择器里会出现 工作区修改++,命令是 /permission workspace-write++。
怎么用
- 选中 工作区修改++
- 该
git、该跑脚本就直接跑 - 想放行别的程序,打开 设置 → 工作区修改++
默认已经放行了 bash 和 pwsh。Windows 上 Git Bash 往往是从 PowerShell 拉起来的,两个都要放,子进程才不会继续继承受限令牌。
放行规则
设置页是一份可增删的名单,一行一条。改完立刻生效,存在 DSH 自己的设置里,重启还在。
| 你写下的 | 实际匹配 |
|---|---|
bash |
任意目录里的 bash.exe |
pwsh |
任意目录里的 PowerShell |
aa |
任意目录里的 aa.exe |
**/Git/bin/bash.exe |
只放行 Git 自带的那一个 bash |
C:/Program Files/Git/** |
Git 安装目录下的所有程序 |
* |
这一档里所有程序都不套进程沙箱 |
不带斜杠,只看文件名;带斜杠或 * / **,按路径匹配。* 不跨目录,** 可以跨任意多层。
名单留空的话,所有程序仍走进程沙箱——等于这一档退化成「工作区写入、但不弹审批」。
另外还有一个单独开关:工作区外写文件。默认关。打开后,write / edit 也可以写到工作区外面。这和放行 Shell 不是一回事,按需再开。
和另外三档
权限选择器里还是那四个格子,底层沙箱模式其实只有三种。++ 是一档预设,不是新的沙箱类型。
| 文件 | 进程沙箱 | 审批 | |
|---|---|---|---|
| 只读 | 不能写 | 包裹 | 要问 |
| 工作区写入 | 只能写工作区 | 包裹,Windows 上 Git Bash 会挂 | 要问 |
| 工作区修改++ | 只能写工作区 | 命中规则的程序跳过 | 不问 |
| 完全访问 | 不限制 | 不包裹 | 不问 |
许可
MIT。
No comments yet. Be the first to write one.