Skip to content
dsh.fish
Bundle

dsh-workspace-write-plus

DSH 权限预设 workspace-write++:工作区内写文件,可在设置里配置放行 Git Bash / PowerShell 等进程沙箱(修复 Windows ACL 下 MSYS 内存映射错误)。

Source
yzxxy010
License
MIT
Updated
Updated 2 days ago

Readme

# 工作区修改++

Windows 上用 DeepSeek Harness,一跑 `git` 就炸:

```
fatal error - couldn't create signal pipe, Win32 error 5
```

这不是 Git 坏了。官方「工作区写入」会给子进程套一层受限令牌,Git for Windows / MSYS 需要内存映射和命名管道,一套上就起不来。

这个插件在权限选择器里加第四档:**工作区修改++**。文件还是只能改工作区,但放行的程序(默认 Git Bash 和 PowerShell)不再套那层进程沙箱。选上之后,`git --version` 就能正常出来。

它不是「完全访问」。不想把整个磁盘交给模型的时候用这一档。

## 安装

```sh
dsh plugin --profile web add https://github.com/yzxxy010/dsh-workspace-write-plus
```

装完重启一次 DSH。输入框旁边的权限选择器里会出现 **工作区修改++**,命令是 `/permission workspace-write++`。

## 怎么用

1. 选中 **工作区修改++**
2. 该 `git`、该跑脚本就直接跑
3. 想放行别的程序,打开 **设置 → 工作区修改++**

默认已经放行了 `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。

Install

dsh plugin --profile web add github:yzxxy010/dsh-workspace-write-plus

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source