dsh-plugin-subitem-status:插件页子项状态与设置页包名提示

前言

在 DeepSeek Harness(DSH)里管理插件时,侧栏「插件」页的每张卡片通常只反映 bundle 级开关:包开着,不代表包内每个组件都在跑。某个附属组件已关闭或未运行时,卡片上看不出差异,只能点进详情页看「包含的组件」那一行。排查或让 AI 改插件时,设置页又多是中文标题,缺少直接的 npm 包名,容易从显示名猜来源、多读源码,浪费 token。

下面介绍社区客户端插件 dsh-plugin-subitem-status(维护者 lingmingxi):在插件卡片上原样展示各组件状态,并在设置相关界面标题下显示提供者 npm 包名,便于一眼发现问题、把准确包名交给 AI。

这是什么

dsh-plugin-subitem-status 是面向 DSH Web 客户端的界面增强插件,不覆盖 DSH 内核。它做两件事:

  1. 插件页:在每张插件卡片上增加一行,列出包内各组件及状态(与详情页同一套文案与状态点)。
  2. 设置页:在配置导航及「插件」内部选项卡的标题下方,以淡色小字显示提供者 npm 包名;长名省略,悬停可看全名。

数据源与官方插件页同源(remote.pluginManager.listBundles()、listPlugins());包名从 Slot 注册来源与实际加载模块清单核对,不读配置值、聊天记录或账户凭据,也不向外部发数据。许可为 MIT,当前 package 版本为 1.1.0。

插件页:卡片上的子项状态

DSH 插件管理 UI 中的 PackageCard 没有「在父卡片上插子项状态」的 slot,本插件通过 纯客户端 DOM 增强实现:观察已渲染卡片,用稳定属性 [data-plugin-package]、[data-plugin-panel] 定位,补一行状态;React 重渲染抹掉时由 MutationObserver 重放。

状态文案与点样式取自官方字典命名空间,与详情页一致(例如 ● 运行中、● 已关闭、● 未运行、● 异常)。一个包内多个组件会逐条列出;每个组件都显示一条状态;没有组件时不占位。

示意(README 中的 ASCII 图):

┌──────────────────────────────────────────────┐
│  ▣  some-plugin-kit                          │
│     一组示例插件                              │
│     主组件   ● 运行中   附属组件  ● 已关闭     │  ← 新增
└──────────────────────────────────────────────┘

设置页:提供者包名

在「设置」的配置页面导航,以及「插件」分类下的内部选项卡,标题下方会显示提供者 npm 包名,用于排障和向 AI 说明要改哪个包。

说明与限制(与 README 一致):

  • 6.0.1 中部分来源在界面上被压缩为 mf;插件对 21 个设置页面、5 个内部选项卡维护了 ID→包名兜底表,且仍要求包名出现在当前模块清单中。
  • 未收录的新页面或其它插件覆盖同一 ID 时,可能显示 「包名未声明」;来源无法确定时同样显示该文案,不输出本机路径。
  • 这是诊断信息,不是提供者身份的安全认证。

把包名告诉 AI,减少定位 token

  1. 打开设置,进入要排查的插件配置选项卡,看标题下方包名小字。
  2. 需要完整名称时:右键小字选「检查」,或 F12 打开开发者工具,用元素选择器选中该行;在 Elements 面板复制文本,或读 title 属性(长名省略时仍保留完整包名)。
  3. 把完整包名和需求一起交给 AI,例如:

请检查 dsh-feature-toggles,设置里「余额」页面显示异常。先定位这个包,再排查问题。

若显示「包名未声明」,不要当作真实包名提供给 AI,应另行核实来源。不需要开发者工具时,可直接看小字或悬停查看全名。

安装与启用

安装命令(来自项目 README):

dsh plugin add github:lingmingxi/dsh-plugin-subitem-status --profile <你的 profile>

也可使用 tarball 或本地路径(示例版本号与 README 一致):

npm pack
dsh plugin add ./dsh-plugin-subitem-status-1.1.0.tgz --profile <你的 profile>

装完后 重启 DSH(客户端插件需重启生效,除非 profile 启用了 client-hmr)。

平台要求:dsh.client.platform 为 "web"。插件声明 inject: [],服务通过 ctx.get() 惰性读取,以避免 cordis 注入代理在 Web 启动门禁下导致 entry 无法 active。

适用场景与注意

适合谁:经常在 DSH 插件页核对多组件包状态的用户;在设置里改插件配置、或让 AI 排查插件问题时,需要稳定 npm 包名而不是中文标题的用户。

使用前请知悉:

  • 插件以当前 DSH 进程权限在浏览器端运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。
  • 社区插件目录 SkillHub 条目 与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件是其中的客户端 UI 增强,不是官方内置能力。
  • DOM 增强依赖官方卡片结构;若未来内核提供卡片级 slot,实现方式可能变化,但「子项状态与详情同源」的目标不变。

结尾

dsh-plugin-subitem-status 把详情页才有的组件状态搬到插件卡片上,并在设置导航处标注 npm 包名,减少「包开着、组件却异常」的盲区,也减少 AI 从中文名猜包的 token 消耗。需要安装说明与实现细节时,以 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/lingmingxi/dsh-plugin-subitem-status
  • GitHub:https://github.com/lingmingxi/dsh-plugin-subitem-status
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜