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
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-workspace-write-plus from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.