前言¶
在 DeepSeek Harness(DSH)里开发或调试客户端插件时,Host 侧的 cordis 树可以热更新,但浏览器里已经加载的前端仍可能继续跑旧代码。过去较稳妥的做法是退出整个应用再打开,才能看到热注入插件的效果。dsh-quick-reload 在 Web UI 右下角提供半透明 ⟳ 按钮,在刷新页面前先清理浏览器侧可重建缓存,再按 Host 最新发布的模块图重载页面,让客户端改动尽快可见。
这是什么¶
- 插件 id / 仓库名:
dsh-quick-reload(维护者 lyjsyyds) - 分类:客户端(npm 包名
dsh-quick-reload-lyjs,因 npm 上短名已被占用) - 定位:面向 DSH Web UI 的一键页面刷新;不重启 Host 进程,不写 profile
- 目录页:https://www.skillhub.cn/plugins/lyjsyyds/dsh-quick-reload
- 源码:https://github.com/lyjsyyds/dsh-quick-reload(MIT © 2026 LYJS,当前资料版本 v0.1.1)
核心功能¶
界面入口¶
客户端入口在 lib/client.js,向 shell.overlay 注册 id 为 quick-reload、order 100 的条目(文案来自 locale)。shell.overlay 为根作用域、类型 list、replaceRisk: none:按钮挂在框架级浮动层,与各 Session 无关,也不会挤占或替换其他插件占用的单行槽位(例如 sidebar.footer.action 与 dsh-context 的冲突场景,README 中有说明)。层默认点击穿透,该条目通过 pointer-events:auto 恢复可点。
按钮约 32px,默认约 0.68 透明度,悬停/聚焦时更明显;位置为右下角内缩 18px,与框架浮动 pill 惯例一致。
点击后做了什么¶
普通点击会在页面 reload 之前处理 DSH 对 /plugins/** 的长期 immutable 缓存与「rev 仅来自文件元数据、字节不同却同 rev」的碰撞问题:
- 清空 Cache Storage 中所有 bucket(含远程访问壳缓存
dsh-remote-shell-v1等)。 - 对所有 Service Worker 注册调用
update()。 - 通过 Host 的 HMR SSE(
GET /plugins/events)与 performance 时间线收集需校验的/plugins/**URL,以cache:'reload'重新拉取;上限约 160 个 URL、单请求 1.2s、总预算 2.2s,避免 reload 被拖死。
刻意保留:localStorage、sessionStorage、Cookie、磁盘 profile、Sessions 与当前会话等——避免丢草稿、面板宽度或远程配对凭证(如 dsh-remote-device)。
Shift+点击:仅做裸页面 reload,不做上述缓存清理。
整条路径不接触 Host 进程或 agent runtime:无应用重启、无 /dsh-market/restart、无 profile 写入;进行中的 turn、后台任务或终端可在页面重连后继续。
Host 侧入口 lib/index.js 仅保持 bundle 合法,无额外逻辑。
安装与启用¶
安装前请自行审阅源码与 MIT 许可证;插件在当前 dsh 进程权限下运行,与任何社区插件一样,安装即信任其代码行为。
从 release 预构建包安装(需先完全退出桌面应用):
dsh plugin --profile desktop add https://github.com/lyjsyyds/dsh-quick-reload/releases/download/v0.1.1/dsh-quick-reload-0.1.1.tgz
或在 GUI:设置 → 插件 → 安装,spec 填上述同一 URL。
本地开发目录(link 形式,CLI 会写入 dependencies 与 dsh.profile.bundles):
dsh plugin --profile desktop add link:<absolute path to this directory>
卸载:在 设置 → 插件 移除 bundle,或:
dsh plugin --profile desktop remove dsh-quick-reload-lyjs
并从 dsh.profile.bundles 中去掉对应项;下次启动后按钮消失。
典型用法¶
- 安装并启动 DSH 桌面 profile 的 Web UI。
- 热注入或修改客户端插件后,点击右下角 ⟳,等待短时的缓存清理与 reload。
- 若 Host 已发布新文件且 rev 已变,有时仅 reload 即可;若怀疑同 rev 不同字节,用普通点击走完整清理路径。
- 仅需快速刷新、不关心插件缓存时,Shift+点击。
仓库内冒烟测试(无网络依赖):
npm test
等价于 node tests/quick-reload.smoke.mjs,共 19 项检查。
适用场景与注意¶
适合:频繁改 DSH 客户端插件、希望在 Web UI 内立刻看到 overlay/UI 变更的开发者。
不适合替代:已加载 Host 模块被改写的场景——README 明确说明仍需应用重启。
权限与安全:只清浏览器侧可重建缓存并重载页面,不改插件集合与 profile;安装前请检查 GitHub 源码。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文安装命令以仓库 README 为准。
结尾¶
dsh-quick-reload 把「退出重开才能看到客户端插件」缩成右下角一次点击(必要时带缓存清理),并避免误伤 Session 与配对状态。更多信息见 SkillHub 目录页 与 GitHub 仓库。