环境
- DSH 版本:
@deepseek-ai/dsh-desktop 0.1.7-rc.2
- Electron: 44.0.0
- Node: 24.18.1
- 平台: win32 x64
- 插件版本:
@opencode2dsh/dsh-plugin 0.3.3
- Profile:
desktop
现象
在 DSH Desktop 0.1.7-rc.2 上安装 @opencode2dsh/dsh-plugin 后,DSH 无法正常启动,启动过程中直接崩溃退出。
崩溃日志(crash-*-web-boot.log)核心错误:
Error: web boot: 1 entry did not activate
@opencode2dsh/dsh-plugin: pending (waiting for service: settingsScope)
插件始终停留在 pending 状态,等待一个名为 settingsScope 的客户端服务,导致 DSH 的 web boot 流程失败,应用整体无法打开。
复现步骤
- 在 DSH Desktop 0.1.7-rc.2 的
desktop profile 中安装 @opencode2dsh/[email protected]
- 完全退出 DSH Desktop 后重新启动
- 应用在启动阶段崩溃,无法进入主界面
崩溃日志摘录
crash-2026-09-27T14-10-26-968Z-web-boot.log
time: 2026-09-27T14:10:26.968Z
source: web-boot
phase: running
app: @deepseek-ai/dsh-desktop 0.1.7-rc.2
platform: win32 x64
electron: 44.0.0
node: 24.18.1
--- error ---
Error: web boot: 1 entry did not activate
@opencode2dsh/dsh-plugin: pending (waiting for service: settingsScope)
renderer console
Error: web boot: 1 entry did not activate
@opencode2dsh/dsh-plugin: pending (waiting for service: settingsScope)
根因分析
DSH 0.1.7-rc.1 已将浏览器端的 settingsScope 服务替换为 configForms。
根据 DSH 社区中已确认的兼容性问题(参考 dsh-market/dsh-market#722),0.1.7 线中 settingsScope 已 0 处出现,宿主契约中不再声明该服务。configForms 服务及其 ConfigFormController 成为新的设置集成入口。
@opencode2dsh/dsh-plugin 0.3.3 仍然将 settingsScope 作为硬性客户端服务依赖(inject: ["slots", "locale", "settingsScope"]),因此:
- 插件在客户端激活阶段一直等待
settingsScope
- DSH 的 boot 流程要求所有 entry 必须激活
- 插件永不激活 → boot 失败 → 整个应用无法启动
同类问题已在其他 DSH 插件中确认并修复(参考 ysr666/dsh-vision-router#538,修复方式为:在 0.1.7+ 上通过 configForms.get(namespace) 呈现旧版 settingsScope.bind() 接口)。
建议修复方向
-
客户端服务依赖迁移
将插件的 dsh.client.inject 中的 "settingsScope" 替换为 0.1.7+ 的 configForms,或采用兼容层方式(在 0.1.7+ 上用 configForms,旧版本保留 settingsScope)。
-
兼容层方案(参考 DVR 的实现)
- 在 0.1.7+ 上安装浏览器兼容前奏,用
configForms.get(namespace) 模拟 settingsScope.bind() 的行为
- 在旧版 Host 上优先使用真实的
settingsScope 服务
- 保留远程风险/本地权限包装逻辑,确保
allowRemoteSettings 语义在两种设置后端上均可组合
-
版本适配声明
在 package.json 中明确声明对 DSH 0.1.7+ 的支持范围,避免用户在不兼容的 Host 版本上安装后无法启动。
附加信息
- 插件的
adapter-status.json 显示 status: ready, total: 82, exposed: 11,说明服务端适配器逻辑本身正常,问题仅出在客户端服务依赖的版本兼容性上。
- 在 DSH Desktop 0.1.5-rc.2 及更早版本中,
settingsScope 存在,插件可正常激活。
- 当前临时规避方式:将插件目录重命名禁用,或从
package.json 中移除该依赖。
你可以直接复制粘贴,无需再手动编辑。
环境
@deepseek-ai/dsh-desktop 0.1.7-rc.2@opencode2dsh/dsh-plugin 0.3.3desktop现象
在 DSH Desktop 0.1.7-rc.2 上安装
@opencode2dsh/dsh-plugin后,DSH 无法正常启动,启动过程中直接崩溃退出。崩溃日志(
crash-*-web-boot.log)核心错误:插件始终停留在
pending状态,等待一个名为settingsScope的客户端服务,导致 DSH 的 web boot 流程失败,应用整体无法打开。复现步骤
desktopprofile 中安装@opencode2dsh/[email protected]崩溃日志摘录
crash-2026-09-27T14-10-26-968Z-web-boot.log
renderer console
根因分析
DSH 0.1.7-rc.1 已将浏览器端的
settingsScope服务替换为configForms。根据 DSH 社区中已确认的兼容性问题(参考 dsh-market/dsh-market#722),0.1.7 线中
settingsScope已 0 处出现,宿主契约中不再声明该服务。configForms服务及其ConfigFormController成为新的设置集成入口。@opencode2dsh/dsh-plugin 0.3.3仍然将settingsScope作为硬性客户端服务依赖(inject: ["slots", "locale", "settingsScope"]),因此:settingsScope同类问题已在其他 DSH 插件中确认并修复(参考 ysr666/dsh-vision-router#538,修复方式为:在 0.1.7+ 上通过
configForms.get(namespace)呈现旧版settingsScope.bind()接口)。建议修复方向
客户端服务依赖迁移
将插件的
dsh.client.inject中的"settingsScope"替换为 0.1.7+ 的configForms,或采用兼容层方式(在 0.1.7+ 上用configForms,旧版本保留settingsScope)。兼容层方案(参考 DVR 的实现)
configForms.get(namespace)模拟settingsScope.bind()的行为settingsScope服务allowRemoteSettings语义在两种设置后端上均可组合版本适配声明
在
package.json中明确声明对 DSH 0.1.7+ 的支持范围,避免用户在不兼容的 Host 版本上安装后无法启动。附加信息
adapter-status.json显示status: ready, total: 82, exposed: 11,说明服务端适配器逻辑本身正常,问题仅出在客户端服务依赖的版本兼容性上。settingsScope存在,插件可正常激活。package.json中移除该依赖。你可以直接复制粘贴,无需再手动编辑。