DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Plugin Subitem Status — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-plugin-subitem-status

Plugin Subitem Status

The plugin page card displays the status of components in the package, while the configuration tab on the settings page displays the provider package name for easier troubleshooting.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:lingmingxi/dsh-plugin-subitem-status#fbb77d0b053d718dde174748fcf59b679ac02456
READMECompatibilityVersions

Compatibility and provenance

Plugin Subitem Status is published as dsh-plugin-subitem-status and currently resolves to version 1.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/11/2026

Versions

1.1.0stable
10/11/2026

Related plugins

Loading related plugins…

Latest
1.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/11/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in developer-tools.

Cc Safety Netcc-safety-netA coding agent CLI hook - block destructive commands and secret file accessRemotedsh-remoteRemote-work assistant for DeepSeek Harness: connect SSH (password/key/agent/keyboard-interactive/proxy jump), pick a remote workspace, operate on it with 22 rw_* tools (incl. rw_edit/rw_stat/rw_mkdir/rw_remove/rw_move/rw_forward), conflict-aware mirror syFind Plugindsh-find-pluginFind DeepSeek Harness plugins inside the agent — live GitHub dsh-plugin topic search, ranked by stars.Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)

README

dsh-plugin-subitem-status

给 DeepSeek Harness 的插件页(侧栏「插件」,不是设置页)加上子项状态显示: 每张插件卡片上直接标出这个包里有哪些组件没启用、哪些异常,不用点进详情页才发现。

解决什么问题

插件页的卡片只反映 bundle 级的开关。包开着,但里面某个组件其实没跑起来—— 卡片上完全看不出来,必须点进详情页看「包含的组件」那一行才发现。

这个插件把那行状态(● 运行中 / ● 已关闭 / ● 未运行 / ● 异常)原样搬到卡片上:

┌──────────────────────────────────────────────┐
│  ▣  some-plugin-kit                          │
│     一组示例插件                              │
│     主组件   ● 运行中   附属组件  ● 已关闭     │  ← 新增
└──────────────────────────────────────────────┘
  • 文案与状态点直接取自官方字典命名空间,与详情页一字不差;官方改措辞这里跟着变。
  • 一个包里多个组件就逐条列出,不会只显示第一个。
  • 每个组件显示一条状态(包括正常运行),没有组件时不占位。

设置页包名提示

设置中的配置页面导航及「插件」内部选项卡,标题下方显示淡色的提供者 npm 包名。 长包名省略显示,鼠标悬停可查看完整名字。

  • 从 Slot 注册来源和实际加载的模块清单核对包名,不用中文标题推测。
  • 6.0.1 中大量来源被压缩为 mf;对此使用已逐条核对注册源码的 ID→包名兜底表, 且仍要求包名出现在当前模块清单中。表内覆盖 21 个设置页面、5 个内部选项卡。 未收录的新页面显示「包名未声明」;其他插件覆盖同一 ID 时,此兜底信息可能不再准确。
  • 来源未声明或无法确定时,显示「包名未声明」,不输出本机路径。
  • 这是排障用的诊断信息,不是提供者身份的安全认证。
  • 不读取配置值、聊天记录、账户凭据,不向外部服务发送数据。

把准确包名告诉 AI,减少 token 消耗

用途不只是方便查看:让 AI 修改或排查插件时,可以直接告诉它 npm 包名, 避免 AI 从中文显示名称开始逐个搜索、读源码猜来源,减少定位过程中的 token 消耗。

  1. 打开设置,找到需要修改的插件配置选项卡,查看标题下面的包名小字。

  2. 需要复制完整名称时,在浏览器中右键小字选择 「检查」,或按 F12 打开开发者工具, 用元素选择器选中这行小字。在 Elements(元素)面板读取或复制该元素的文本; title 属性也包含完整包名,长名称不会因为界面省略显示而丢失。

  3. 把完整包名与具体需求一起告诉 AI,例如:

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

不需要调试工具时,也可以直接看小字或悬停查看完整名称。若显示「包名未声明」, 不要把它当作真实包名提供给 AI;应进一步核实来源。

安装

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

或用 tarball / 本地路径:

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

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

设计要点

纯客户端 DOM 增强,不覆盖 DSH 内核。

插件页的卡片是内核 @deepseek-ai/dsh-client-ui-plugin-manager 里硬编码的 PackageCard, 没有任何卡片级 slot 可用(可用的只有 plugins.item 新增卡片、以及详情页的 plugins.detail.badge/.actions/.section)。所以「在父级卡片上显示子项状态」只能走 DOM 增强:观察已渲染的卡片,往里补一行。

  • 数据源与官方插件页同源:remote.pluginManager.listBundles() + listPlugins()。
  • 卡片定位只用稳定属性 [data-plugin-package] / [data-plugin-panel]; 类名是 CSS-module 哈希,绝不硬编码。
  • 被 React 重渲染抹掉时,由 MutationObserver 自动重放(自身写入的回调会跳过,避免死循环)。
  • 卸载时清干净:样式、承载行、observer、订阅、定时器。

关于 inject: [](重要)

本插件的客户端 factory 声明 inject: [],所有服务一律用 ctx.get() 惰性读取。

这不是偷懒,是必须的。cordis 的 ctx 是注入代理:读一个没写进 inject 的属性会直接抛 cannot get property "..." without inject。而 DSH Web 的启动门禁要求每个 entry 的 fiber 都 active, 任何一个不合格就整页打不开(web boot: N entry did not activate)。

两种写法的实测结果:

inject 声明服务齐全命名空间缺失remote 缺失
['remote','locale'] 且直接读 ctx.remote.pluginManagerfailedfailedfailed
['remote','locale','remote.pluginManager']activepending(照样卡死)pending
[] + 全部走 ctx.get()activeactiveactive

把命名空间写进 inject 看似正确,但该服务尚未挂载时 fiber 会变 pending,同样卡死启动。 只有 ctx.get() 在所有环境下都安全(官方插件页自己也用 this.ctx.get("productAnalytics")?.)。

测试

npm test

五个套件:

文件覆盖内容
tests/smoke.mjs纯逻辑:状态合成 vs 官方映射、多组件、文案兜底、注册形态
tests/dom.mjsDOM 粘合:单/多组件渲染、挂载位置、重渲染重放、实时更新、卸载清理
tests/boot-gate.mjs启动门禁:用真实 cordis 在 5 种服务组合下断言 fiber 必须 active
tests/lifecycle.mjs同步异常、迟到响应、卸载后的回调隔离
tests/settings.mjs包名来源、未知/路径过滤、设置导航与内部 tab 对齐、重放与清理

boot-gate.mjs 需要 @deepseek-ai/cordis。可用 DSH_CORDIS_PATH 指向你自己的 cordis/lib/index.js(支持绝对路径和 file: URL);找不到或加载失败则测试失败,避免假绿灯。 tests/lifecycle.mjs 另外验证同步异常及卸载后迟到响应不会继续运行。

为什么需要 boot-gate:这类 bug 用普通对象桩测不出来——桩里的 ctx.remote 是普通对象, 读 .pluginManager 不会报错,而真实 ctx 是注入代理。本插件第一版就是这么炸的, 所以补了这个用真实 cordis 的回归测试。

兼容性

  • 平台:Web(dsh.client.platform: "web")
  • 无第三方运行时依赖,不 require 任何 Harness Client 包
  • 只使用 --dsw-alias-* 主题 token,跟随明暗主题

许可

MIT