dsh-plugin-reloader
在终端中运行以下命令:
dsh plugin install deepforce/dsh-plugin-reloader
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在终端执行 dsh plugin install deepforce/dsh-plugin-reloader 即可安装,插件源码见 https://github.com/deepforce/dsh-plugin-reloader
插件介绍
升级一个插件却要杀掉正在跑的 dsh web、丢掉所有会话,这件事其实可以不做。dsh-plugin-reloader 复用了 dsh 内置 HMR 同一套重载管线——清模块缓存、重新导入入口、销毁旧 fiber、挂载新 fiber、失败回滚——只是去掉了 node_modules 排除,让已安装插件也能原地热替换。升级完代码,等上两秒,新逻辑就生效了,会话纹丝不动。
核心能力围绕「安全地不重启」展开。自动轮询每两秒 stat 一次插件入口和 package.json,用 mtime+size 判定变更,不依赖文件监听库,Windows 长驻进程和 pnpm 整目录替换都绕得开。手动场景有 /reload 和 /watch-status 两条命令,升级后瞄一眼事件计数就能确认热重载确实触发了。如果变更触及依赖树,插件会带着可配置的退出码(默认 42)交棒给 supervisor 重启,而不是硬撑着跑一个半挂载的状态。
安全方面设了两道闸:官方 @deepseek-ai 插件和向其他插件提供服务的插件默认不热重载,跳过、记日志、计入诊断,避免级联重启或等价于运行时打补丁。真正的导入或挂载失败会还原缓存、回退到旧版本,会话继续存活。
适合在 dsh web 上长期挂会话、又频繁迭代自研插件的开发者。如果你的工作流是「改一行代码 → 重启 → 重新登录 → 把上下文粘回去」循环,这个插件能把中间那两步抹掉。
使用场景
- 升级插件后无需重启 dsh web,会话保持活跃
- 频繁迭代自研插件代码,改完等两秒即生效
- 依赖树变更时安全退出交由 supervisor 重启
适合人员
- 运行长期 dsh web 会话的开发者
- 频繁修改自定义插件的工程师
- 用 supervisor 管理 dsh 进程的运维人员