DeepSeek Harness Plugin Hub
所有指南

插件 HMR 不工作

理解 DSH 的四种 HMR 模式,选择正确的模式并排查热更新失效的原因。

四种 HMR 模式

DSH 插件支持四种热更新模式,在 dsh.hub.compatibility.hmr 字段中声明:

full — 插件可以在不重启宿主进程的情况下应用和销毁。这是最高级别的 HMR,需要插件正确实现 apply 和 dispose 生命周期钩子。

config — 配置变更可以通过重新组合配置层来生效,无需完全卸载插件。

refresh — 需要刷新 web/客户端界面才能看到变更。

restart — 必须重启 DSH 进程才能加载变更。这是最低级别的兼容模式。

选择正确的模式

如果你的插件只修改配置,config 模式就够了。如果插件有 UI 组件,通常需要 refresh。只有当插件完全实现了运行时钩子时才能用 full。

声明比实际支持更高级的 HMR 模式会导致更新不生效或状态不一致。

{
  "dsh": {
    "hub": {
      "compatibility": {
        "hmr": "refresh"
      }
    }
  }
}

排查 HMR 失效

检查插件声明的 HMR 模式是否和实际行为匹配。如果声明了 full 但没有正确实现 dispose,旧实例可能不会清理。

确认 Cordis patch 中的 entry ID 没有冲突。多个插件注册相同 ID 时,后加载的会覆盖先加载的。

查看 DSH 日志中的 HMR 相关事件,确认变更是否被检测到。

相关指南

插件安装失败排查

插件安装时报错?按这个清单逐步排查包名、manifest、版本格式和网络问题。

DSH 版本不兼容

插件声明的 DSH 版本范围和当前环境不匹配时的排查和修复方法。

发布后搜不到插件

插件发布到 npm 后在 Hub 上找不到?了解同步周期、手动加速和常见拒绝原因。

插件 HMR 不工作 — DSH Plugin Hub