Skip to content

DSH 0.1.6-alpha.2 上设置卡片消失:settings.plugin.item 槽位已改名为 plugins.item #19

Description

@JackGuo0310

现象

在 DSH 0.1.6-alpha.2 上,插件 0.3.3 的「IP 池」设置卡片在 设置 → 插件 里始终不出现。启动页无报错——卡片就是静默消失。模型路由(宿主半边 adapter)一切正常,这只是浏览器半边的问题。

根因(证据来自宿主依赖树)

DSH 把插件配置卡的槽位改名了:

  • 旧名 settings.plugin.item:在 @deepseek-ai/dsh-web-app@0.1.6-alpha.2 的整个依赖树里 0 处引用。
  • 新名 plugins.item:由 @deepseek-ai/dsh-client-ui-settings-plugins 调度——其自身文档注释已改为 "register into the Plugins page's plugins.item slot"(lib/client.js 中 apply() 的包级注释),且它的 4 个内置卡片(bash / agent-loop / subagent / web-search)全部以 name: "plugins.item" + id 形态注册。

插件的 src/client/index.ts 仍在注入 settings.plugin.item,于是生成器产出到一个没有任何组件渲染的槽位:静默无效。现有的 ctx.slots.spec() 兼容逻辑只能桥接旧 id 与新 key 的选项形态差异,桥接不了改名。

另外:dshmarket@1.47 同样注入旧名,它的设置卡在该宿主上应该也消失了(建议 DSH 侧顺便确认这次改名是否有意为之)。

修复建议

改为注册 plugins.item(采用内置卡片同款的 id 形态),可保留旧槽位注入以兼容老宿主:

ctx.slots.inject('plugins.item', function* () {
  yield (ctx.slots.register as never)(
    { name: 'plugins.item', id: SETTINGS_NAMESPACE, locale: NS, inject: injected },
    IpPoolCard,
  )
})

或者仿照现有的 id/key shim,用 ctx.slots.spec('plugins.item') 探测、回退旧名。

环境

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