Overview
@icelily/dsh-gitbash-preset
README / EN
Package documentation
Registry summary
dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.
Read the full README on GitHubLIMITATIONS
Known limitations
<a id="limits-version"></a> ### DSH 版本边界(**最重要的一条**) 本插件的安装机制是「把预设文件写进 `${DSH_HOME:-~/.dsh}/.agent-presets/<id>/`」。 这个目录**在较新的 DSH 上已经没人读了** —— 官方把用户预设换成了 bundle 声明行。原文出处 (本机安装的 `@deepseek-ai/dsh-agent-preset@0.1.7-rc.2`): - `skills/editing-cordis-compositions/SKILL.md`: > Before declaration rows, a user preset was a directory `$DSH_HOME/.agent-presets/<id>/` holding > `preset.yml` … and `agent.cordis.yml` … **Nothing reads that directory any more.** - 同包 `README.md`: > Declarations provide **no directory, file-copy or file-delete operations**. - 同技能还有一条对本地相对插件名不利的要求: > **Resolve assets from installed packages rather than a preset directory.** **可以自己核对的旁证**:在本机 `…\@deepseek-ai\dsh\node_modules\@deepseek-ai` 目录下搜 `.agent-presets`、`agent.cordis.yml`、`preset.yml`,**命中的只有上面这段技能文本**, 没有任何 loader 代码读它;现在的预设是 `dsh-web-app/presets/<id>.patch.yml` 里的声明行(roster 行 id `preset-<id>`)。 **结论**:在 DSH `0.1.7-rc.2` 上,安装器**会正常执行**(文件确实写到位了), 但**不会出现可选的预设卡片**。旧版本上是否可用,**本机未验证**。 如果你正是遇到「装完在设置里找不到极简模式 (Git Bash)」,原因就在这里。 迁移方向(**尚未实施**):把预设改写成 bundle 声明行,并让 `gitbash-executor.mjs` 从**已安装的包**里解析, 而不是当预设目录里的相对文件。这件事需要动源码,本次只改 README,未处理。 <a id="limits-upgrade"></a> ### 升级路径(对能用的版本) 安装器对已存在的预设默认 **no-op**。`0.1.3` 之前的版本装出的预设是坏的(用了 `dsh-persona` 旧的 `text` 字段,装配会报 `$.prefix missing required value`)。升级插件后要**显式**让它覆盖: - 在插件行配置 `force: true`,或 - 删掉 `~/.dsh/.agent-presets/minimal-gitbash/` 再重启。 (`0.1.3` 起改用 `prefix`;本机核对 `@deepseek-ai/dsh-persona@0.1.7-rc.2` 的 schema 确实是 `prefix` 必填、`complete` 默认 `false`、`includeRuntimeContext` 默认 `true`,与预设写法一致。) ### 其它 - **只对极简模式生效**。它交付的是一个 agent preset,只有**选了「极简模式 (Git Bash)」的会话**受影响。 完整模式(web)下的 pwsh 工具、其他预设的命令工具,一律不动 —— 那正是 [dsh-all-gitbash](https://github.com/liceses/dsh-all-gitbash) 要解决的事。 - **需要 Git for Windows**。没装的话探测链全部落空,最终返回裸名 `bash`,每条命令都会 spawn 失败。 装了但不在标准目录时,用 `GIT_BASH` 环境变量或 `shellPath` 配置指路。 - **受限沙箱下用不了**。MSYS 运行时无法在 Windows 受限令牌沙箱内初始化(创建不了 signal pipe), 所以执行器只在 `danger-full-access`(或部署本身没有沙箱策略)下放行,其余情况抛错并给升级指引。 **这是沙箱边界,插件不绕过。** - **bash 不保持状态**。每次调用都是新 shell,`cd` / `export` 不会留到下一次;后台命令也没启用 (`enableRunInBackground: false`)。这是「Windows 上官方持久 bash 支路被关掉」的替代设计,不是等价实现。 - **路径有两个域**。文件工具走 Node(Windows 路径 `D:\...`),bash 走 MSYS(POSIX 路径 `/d/...`)。 两者都能接受 `D:/...` 这种正斜杠形式 —— 拿不准时用这个写法。`toWindowsPath` 只转单字母盘符形, `/usr/bin` 这类 MSYS 根路径不会被误转。 - **探测链里有一条作者本机遗留的写死路径** `D:\applications\Git\bin\bash.exe` (`gitbash-executor.mjs:89`)。对别的机器通常只是无效候选,无害;但它是本机痕迹,未擅自改动源码。 - **无卸载命令记录**。仓库里只有安装命令,没有对应的移除命令,所以这里也不写。 --- <a id="dev"></a>
