Skip to content

[Bug] DSH Desktop 0.1.7-rc.2 兼容性断裂:插件 pending on settingsScope,DSH 无法启动 #24

Description

@wkw07

环境

  • 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 流程失败,应用整体无法打开。


复现步骤

  1. 在 DSH Desktop 0.1.7-rc.2 的 desktop profile 中安装 @opencode2dsh/[email protected]
  2. 完全退出 DSH Desktop 后重新启动
  3. 应用在启动阶段崩溃,无法进入主界面

崩溃日志摘录

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"]),因此:

  1. 插件在客户端激活阶段一直等待 settingsScope
  2. DSH 的 boot 流程要求所有 entry 必须激活
  3. 插件永不激活 → boot 失败 → 整个应用无法启动

同类问题已在其他 DSH 插件中确认并修复(参考 ysr666/dsh-vision-router#538,修复方式为:在 0.1.7+ 上通过 configForms.get(namespace) 呈现旧版 settingsScope.bind() 接口)。


建议修复方向

  1. 客户端服务依赖迁移
    将插件的 dsh.client.inject 中的 "settingsScope" 替换为 0.1.7+ 的 configForms,或采用兼容层方式(在 0.1.7+ 上用 configForms,旧版本保留 settingsScope)。

  2. 兼容层方案(参考 DVR 的实现)

    • 在 0.1.7+ 上安装浏览器兼容前奏,用 configForms.get(namespace) 模拟 settingsScope.bind() 的行为
    • 在旧版 Host 上优先使用真实的 settingsScope 服务
    • 保留远程风险/本地权限包装逻辑,确保 allowRemoteSettings 语义在两种设置后端上均可组合
  3. 版本适配声明
    在 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 中移除该依赖。

你可以直接复制粘贴,无需再手动编辑。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions