Releases: KannaKuron/dsh-gitbash-shell
Release list
v0.15.0 — 21 种界面语言
v0.15.0 — 2026-09-15
类型:feat
- 界面支持 21 种语言。卡片文案从「zh/en 两本内联词典」扩成三层:zh/en 仍内联,19 门第三语言各占
LOCALES表里的一条,每条前带/* locale: <tag> */标记(冒烟测试按该标记切块)。语言集合:zh、en + ar、de、fr、hi、id、it、ja、ko、nl、pl、pt、ru、sv、th、tr、vi、zh-HK、zh-MO、zh-TW。 - 词典经
ctx.locale.register交给 DSH 的 locale 服务:ctx.locale.register(NS, Object.assign({ zh: zh, en: en }, LOCALES)),21 个 tag 全部注册,宿主侧消费者读到与卡片相同的文案;插件自己的查找(dictionaryFor:精确 tag → 主语言子标签 → 英文)覆盖 DSH 语言目录里没有的第三语言,繁体 tag(zh-HK / zh-MO / zh-TW 与Hant)归到 zh-hk 词典,pt-BR这类区域 tag 落到主语言。 - 语言跟随 DSH 的
ctx.locale,切换即时生效。字典不在激活期被捕获:每次查表按当时的 active tag 取、按 tag 缓存;卡片外面包一层LocaleLive,订阅locale.subscribe在语言切换时重绘,不需要刷新页面。 - 新增守护测试「每本词典的键集与中文完全相等」(替代原先只比 zh/en 的断言):缺键在查表时只会静默回退英文,面板会呈现半翻译状态,所以 19 本词典逐本与 zh 的键集做全等断言;另加「查找必须是活的、不得在激活期捕获」断言,含 mock locale 服务下的真实渲染(切到 ja / de / zh-Hant-TW / pt-BR 各自出词,空 tag 回退英文)。
- 译文为机器辅助翻译,欢迎在 issue / PR 里修正。每门语言只占
LOCALES表里的一处,互不影响——改一门不碰其他门,也不碰 zh/en 内联词典;键集断言会在改动后立刻校验。 - 顺带修掉两处过时文案/文档:卡片描述与 host 侧注释仍写着「默认关闭 / default OFF」,而 v0.10.0 起
posixPaths已是默认开启(文案改为「默认开启 / on by default」,注释标注 v0.10.0);README 与 README_EN 的「POSIX 路径指示(v0.7.0)」一节停留在 v0.7.0 的旧行为(只讲systemPrompt.context一条指示),已重写为「POSIX 路径方言」——门控开关、源头替换、参数翻译、结果回流、DSH_PATH_DIALECT运行时事实逐条写明。另补上 README / README_EN / AGENTS.md 文件末尾缺失的换行。 - 冒烟测试 34 → 35 项,
npm test全绿。 - 相关:Release v0.15.0
安装 / 升级:dsh plugin --profile <name> add dsh-gitbash-shell(npm 包名);host 半变更需重启 DSH。
Full changelog: v0.14.0...v0.15.0
v0.14.0
v0.13.2
v0.13.1
修复
present 行探测改为双信号(旧版宿主的实际影响为零,新版宿主探测更可靠)
v0.13.0 只用包解析(createRequire.resolve)判断宿主是否支持 @deepseek-ai/dsh-tool-present。实测发现该信号在普通 CLI 安装的 profile 里会假阴性(第一方包不在 profile 的 node_modules 里,只在桌面端与本地 link 树中可解析)——表现为新宿主上不注入 present 行、交付卡片缺失。
现在改为两个信号取或:
- 宿主内置组合文本(权威,直接读 roster 里 shipped
ptc/standard/cordis的 agent.cordis.yml 是否含 present 行)——与 era/persona 探测同一条通道,任何安装布局都成立; - 包解析(兜底,覆盖 roster 探测不可用的宿主)。
任一为真才注入;两者皆假则不注入(老宿主安全不变)。
清单版本同步
dsh.plugin.json与package.json版本重新对齐(此前 bump 未同步);- 新增
npm version脚本:今后每次 bump 自动写回清单,并有冒烟断言把关。
Full changelog: v0.13.0...v0.13.1
v0.13.0
dsh 0.1.5-alpha.2 → rc.1 同步
新增:官方 present 行(不可变文件交付下载卡片)自动注入
官方给 ptc / standard / cordis 三个模式组合追加了 - id: present / name: '@deepseek-ai/dsh-tool-present'(minimal 不加——单工具预设)。本版本同步:
- 不写进资产:该包 0.1.5-alpha.2 首发,而组合里一行 import 失败会拒绝整棵 preset 挂载——老宿主(0.1.2~0.1.4)上的 preset 会直接挂不上;
- 改为物化时探测宿主(createRequire.resolve,按 boot 缓存)后注入:仅 .ptc. 孪生文件,有 tool-presentation 块的锚点后相邻插入、cordis/standard 孪生尾部追加(与官方位置一致),纯字符串拼接、幂等、不经过 YAML 解析;
- marker 记录探测结果(
present),宿主升级后首启自动重物化补行;旧 marker 视为 false,无感。
minimal 孪生同步官方单工具化
- 删除 filesystem 组(
fs-local+str_replace_editor)——极简模式现在只有持久 shell 一个工具; - bash 工具描述的固定网络两行("no internet" / "apt and pip mirror")换成环境相关单行("Network access depends on the task environment…");
- banner 与 preset.yml 描述改为「单工具编码 Agent」。
其他
- code-era(≤0.1.1)快照与 minimal 之外的文件结构不变;冒烟测试 20 → 25 项(注入锚/尾追加/幂等、能力翻转、物化端到端含 minimal 不注入、资产不得写死 present)。
Full changelog: v0.12.0...v0.13.0
v0.12.0
What's new
- Persona-split era for dsh 0.1.3-alpha.2+ — dsh 0.1.3-alpha.2 split
dsh-persona's singletextkey intoprefix:+suffix:with no compatibility alias, which breaks every committed composition that still carries the old key on the new host. This release adds a third selection dimension:detectPersonaEraprobes a SHIPPED preset's composition through the roster (built-in ids only — never this plugin's own variants) and picks the new.pstwins (agent.cordis.ptc.ps.yml; minimal gains its ownagent.cordis.ps.yml) when the split keys are present.- The materialization marker records the persona form; crossing the 0.1.3-alpha.2 boundary in either upgrade order re-materializes automatically on the next boot. On hosts through 0.1.3-alpha.1 the plugin behaves exactly like 0.11.x.
- Code-era (dsh <= 0.1.1) and 0.1.2-era texts are unchanged and still served on their hosts.
Host-half change — restart DSH after upgrading.
dsh plugin --profile <name> add dsh-gitbash-shell@^0.12.0v0.11.1
Metadata-only: declare engines.dsh >=0.1.0 in package.json so the plugin market surfaces the host requirement (dshmarket derives it from the npm manifest engines/peers; dsh.plugin.json is not consulted). No code changes.
v0.11.0
What's new
DSH_PATH_DIALECTjoins the officialdsh-shell-envregistry. While the posix-paths switch is on, every model shell call now also carriesDSH_PATH_DIALECT=msys. The bash tool's schema already tells the model to inspect managed$DSH_*facts ("inspect them when needed"), so the prompt-side dialect rewrite gains a runtime-verifiable counterpart instead of living only in prompt text.- Registered at service-ready timing via
ctx.inject(['shellEnv'], …); compositions withoutdsh-shell-envare unaffected (silent no-op). - The resolver reads the live setting on every execution — toggling posix-paths off empties the variable immediately, no re-registration needed.
- Effect-scoped and fully reversible; Windows-only, like the other dialect layers.
- Registered at service-ready timing via
Host-half change — restart DSH after upgrading.
dsh plugin --profile <name> add dsh-gitbash-shell@^0.11.0v0.10.5
同步 dsh 0.1.2-alpha.4:ptc era 变体对齐
dsh 0.1.2-alpha.4 起,内置 ptc preset 给 tool-workflow 行加了 disabled: true(官方 #3425:run_code 为唯一模型编排面,引擎保留给 ralph)。本版本同步受影响的变体组合:
code-gitbashptc-era:workflow 行禁用 + 头部文案对齐官方新文案;preset.yml描述跟随官方新表述(功能完整的编码 Agent,但默认不提供 workflow 工具)standard-gitbash/cordis-gitbashptc-era:删除官方已移除的 subagent-report 注释块、fork 注释对齐官方新文本- smoke 新增断言:code-gitbash ptc-era 必须 disabled;其 code-era 与 standard/cordis 两 era 必须保持启用
code era(dsh ≤ 0.1.1)文本不动,依旧两分(SESSION_FORMAT_VERSION 仍为 0,已复核)。已物化 preset 在下次启动时因版本号变化自动刷新,用户改过的目录照旧不碰。测试 16 项全绿。
安装/升级
dsh plugin --profile <name> add dsh-gitbash-shell(需重启 DSH)
v0.10.4
特性:输出侧路径元数据同方言
成功结果的路径元数据不再以 Windows 形式回声:read/write/edit 的 path、glob 的 paths、grep 的 matches[].path 经 tools/post-execute(官方允许的 value 替换点)改写回 MSYS 方言;绝对路径翻译为 /c/ 盘根,相对路径仅归一分隔符。文件内容行与错误结果绝不动。
至此闭环:源头提示词 /c/ + 参数翻译 + 输出元数据 /c/,模型视野内不再有任何 Windows 路径信号(文件内容除外——那是数据)。
安装/升级
dsh plugin --profile add dsh-gitbash-shell(需重启 DSH)