Skip to content

Releases

v0.2.1 — 适配 DSH 0.2.0-rc.1(修复插件被静默跳过)

Choose a tag to compare

@pinzza pinzza released this 29 Sep 07:13

修复: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

Choose a tag to compare

@pinzza pinzza released this 21 Sep 10:23

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 个测试)。