xfgil/dsh-hot-reloader ↗★ 0

dsh-hot-reloader

DSH 插件热重载器:改完插件源码即刻生效,无需重启 DeepSeek Harness。补上宿主内置 dsh-hmr 因排除 node_modules 而覆盖不到的第三方插件场景。Hot-reload DSH plugin source without restarting the harness. 适合DSH插件开发者,用于提升开发调试效率,支持第三方插件。

パッケージ
dsh-hot-reloader
互換性
未検証
バージョン
0.1.0
ライセンス
MIT
最終更新
2026/10/13

インストール

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xfgil/dsh-hot-reloader

ドキュメント

README 全文を読む ↗

使用

装好之后什么都不用做。 改任意已安装插件的 lib/*.js,一秒左右自动热重载。

重载日志会直接打到宿主日志;也可以随时查状态接口。

观测与手动控制

方法路径用途
GET/dsh-hot-reloader完整状态:监听了哪些包、扫了多少文件、扫描/重载/失败计数、近期日志
POST/dsh-hot-reloader/reload手动重载。body 留空 = 全部;支持 ["包名"] 或 {"packages":["包名"]}
POST/dsh-hot-reloader/toggle暂停 / 恢复自动重载
POST/dsh-hot-reloader/self-reload重载本插件自身(开发这个插件时用)

## 配置

在 profile 的 `cordis.patch.yml` 里覆盖对应行:

```yaml
- id: dsh-hot-reloader
  config:
    intervalMs: 1000      # 轮询间隔(毫秒)
    debounceMs: 400       # 检测到变更后,等写入稳定的时间(毫秒)
    reloadSelf: false     # 是否连同本插件自己一起自动重载
    only: []              # 只监听这些包名(留空 = 全部)
    except: []            # 跳过这些包名
    extraRoots: []        # 额外监听的绝对路径(不在 loader 树里的目录)
    includeAsar: false    # 是否连 app.asar 内的宿主包一起监听
    ignore: ['.bak', '.test.', '.spec.', '.map']   # 按文件名子串跳过
    maxDepth: 8           # 目录递归深度上限
    quiet: false          # 静默模式:只记录失败
    installQuietMs: 8000  # 识别到包管理操作后的让路时长(毫秒);0 = 关闭该机制
    profileDir: ''        # profile 目录;默认从 loader 树自动推导

installQuietMs 是装包让路机制:检测到 pnpm 正在操作(改写 pnpm-lock.yaml、.modules.yaml 等)时暂停扫描,避免在它换目录的窗口里添乱。默认 8 秒窗口足够覆盖一次普通安装;装了很大的包时可以调大。设成 0 则关闭让路(不建议——那样装包期间可能撞上半成品状态)。

几个实用场景: