Repository navigation
Releases
Releases · pinzza/dsh-git-statusline
v0.2.1 — 适配 DSH 0.2.0-rc.1(修复插件被静默跳过)
修复:DSH 0.2.0-rc.1 下插件被静默跳过
在 DSH 0.2.0-rc.1 上,本插件不会出现在界面上,dsh --profile web --dump-config 只打印一行警告:
dsh: skipping profile bundle "dsh-git-statusline":
Plugin dsh-git-statusline@0.2.0 is incompatible with dsh 0.2.0-rc.1:
peerDependencies {"@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.6", ...}
DSH 启动时会校验插件 package.json 里所有 @deepseek-ai/dsh* peer 的版本范围是否覆盖当前运行时版本,不覆盖就跳过整个插件且不在界面上报错。0.2.0-rc.1 下有两处触发:
@deepseek-ai/dsh-client-runtime已被删除(0.2 拆成dsh-client-ui-renderer、dsh-api-session-controller等),声明它永远无法通过校验;^0.1.0-rc.6对0.x只覆盖<0.2.0,不满足0.2.0-rc.1。
改动
- peerDependencies 改为跟随 0.2 次版本线
>=0.2.0-rc.1 <0.3.0-0,并且只声明真实存在、且分别提供slots/sessions/uiSession三个服务的包:dsh-client-ui-renderer、dsh-api-session-controller、dsh-client-ui-session。 dsh.client.inject同步换成上述三个已挂载的客户端模块(原先的dsh-client-runtime已不存在,dsh-client-ui-slots也不是可注入的客户端模块)。- 服务端无改动:
webServer.register、sessions.get().header.cwd、loader.entries()以及五个插槽的 kind / scope / 注册字段在 0.2.0-rc.1 上均未变。 - 新增
test/compat.test.js:直接调用 DSH 自己的evaluatePluginCompatibility(来自@deepseek-ai/dsh-app-boot)复现这道闸门,并校验dsh.client.inject的每一项都是已安装且可注入的 Web 客户端模块,让同类问题在本地node --test就暴露,而不是等到重启 DSH 才发现状态栏消失。 - README:补充「兼容性」一节、新的排查顺序与 0.2 基线说明。
验证
node --test:8/8 通过(4 个 Git 解析 + 4 个兼容性回归)。- 在隔离的
DSH_HOME+ 全新 web profile(仅dsh-base+dsh-web-app+ 本插件)上实测通过:- 状态栏在侧边栏底部正常渲染
main (+33,-17) ↑1; - 设置页出现「Git 状态栏」一节(
settings.section插槽); POST /git-statusline/status返回200。
- 状态栏在侧边栏底部正常渲染
安装
dsh plugin --profile web add github:pinzza/dsh-git-statusline
# 或离线安装本 Release 的预构建 tarball
curl -L -o dsh-git-statusline.tgz \
https://github.com/pinzza/dsh-git-statusline/releases/latest/download/dsh-git-statusline.tgz
dsh plugin --profile web add ./dsh-git-statusline.tgz安装后重启 dsh web(运行中的实例不会热加载插件层)并刷新页面。
兼容性
| DSH 版本线 | 可用插件版本 |
|---|---|
>=0.2.0-rc.1 <0.3.0 |
0.2.1 起(本版) |
0.1.x |
0.2.0 |
v0.2.0
0.2.0
- 显示位置可在设置页切换:侧边栏底部(默认)、会话顶部标题后方、对话框上方、对话框下方,或关闭。
- 适配 DSH 0.1.6:当前会话改由
uiSession服务的current绑定源暴露,lib/client.js优先读该绑定源,缺失时回退旧版list.current。
预构建 tarball:纯 JavaScript,lib/ 已随仓库提交,不需要构建步骤,也不会触发 pnpm 的构建授权提示。
curl -L -o dsh-git-statusline.tgz \
https://github.com/pinzza/dsh-git-statusline/releases/latest/download/dsh-git-statusline.tgz
dsh plugin --profile web add ./dsh-git-statusline.tgz资产名不含版本号,
releases/latest/download/随最新 Release 走,发新版本后无需改链接。
校验:node --test(4 个测试)。