dsh-unlag:桌面端不重启刷新插件与界面

前言

在 DeepSeek Harness(DSH)里改客户端插件,常见做法是关掉桌面 App 再开。手里若有轮次在跑、消息在排队、输入框里还有草稿,重启代价很高。界面长时间使用后变卡,同样往往只能整应用退出重来。

dsh-unlag 是维护者 regrevia 发布的客户端插件,在 DSH 桌面窗口右上角提供一个刷新入口:在不重启宿主进程的前提下,可原地替换插件代码并重建界面,尽量保留正在进行的轮次、排队消息与未发送的文字草稿。下文按安装、用法与边界说明可核对的事实;社区目录页见 SkillHub 条目,源码与详细说明见 GitHub 仓库。

这是什么

README 将其定位为「DSH 桌面端自己的刷新按钮」。它属于 DSH 插件生态中的客户端类插件,通过 Cordis 补丁注入对话 UI,仅在 DSH 桌面 App 的窗口内显示按钮;用浏览器直接打开同一地址时不会出现该按钮,插件也不面向网页版 Harness。

核心功能

一键换代码与重建界面

点击窗口右上角按钮(或经配置允许后由 Agent 调用工具 unlag_refresh)时,行为由右键菜单与配置项决定:

  • 按下刷新时换掉插件代码(默认开)
  • 按下刷新时重建界面(默认开)
  • Agent 可以自己刷新(默认关)

前两行都开时,先换代码再重建;只开一项则另一项不动;都关则点击无反应。第三项只决定 Agent 能否触发,不改变按下后做什么。

另有配置项 改完文件自动刷新(默认关),开启后无需手动按按钮。

宿主侧任务尽量不受影响

官方 README 说明:宿主自己的轮次、子代理、终端进程不因刷新而重启;排队消息留在宿主里;重建前会提交焦点内输入,文字草稿由 App 保存。界面重建会重新载入当前地址,会话记录仍在。

需要区分的边界:被换掉的插件实例会先关闭;若某个正在跑的任务由该插件自己负责(例如 agent-loop),该任务会随实例结束。草稿里若仍有未发出的附件,按钮会拦下并提示先发送;已进入记录的消息附件不算草稿。

缺插件与旧修订兼容

桌面壳在窗口启动时固定启动清单,页面按旧 revision 请求脚本是常态;官方路由对未知 revision 会 404,可能导致新页面起不来。本插件在约定范围内对「仍在清单里、只是 revision 变了」的请求返回当前字节;清单里已禁用或删除的插件则返回空脚本以避免 404,并在日志与 /dsh-unlag/verify 的 leftOut 中说明。这套行为是插件的兼容措施,与官方默认路由行为不同;关闭右键菜单里的开关不会停掉该兼容层。

安全拦截

存在未保存改动、弹窗打开、或下一页所需模块读不全时,会拦下刷新并写明原因。改动涉及替插件增加原生能力、服务声明或权限,或独立进程级配置、DSH 自身升级等,不在一次点击范围内,同样会说明而不会硬来。插件从不自行重启或退出 App。

安装与启用

安装命令来自仓库 README:

dsh plugin install dsh-unlag

安装后由 DSH 完成首次加载;后续更新 README 写明可走按钮流程。package.json 中声明引擎要求为 dsh >= 0.2.0-rc.1,许可证为 MIT。插件以当前 DSH 进程权限运行,安装前宜自行查看源码与许可证。

典型用法

1、在桌面 App 中完成 dsh plugin install dsh-unlag 后正常使用 Harness。

2、开发界面类插件且仍有任务在跑时:点右上角按钮,在默认开关下可当场替换插件代码,宿主侧任务继续。

3、界面变卡时:同样点按钮,在默认下重建界面,会话、队列与文字草稿尽量保留。

4、若希望会话内 Agent 自行刷新:在右键菜单打开「Agent 可以自己刷新」,Agent 可通过 unlag_refresh 触发;该路径只换宿主侧插件代码,不会替人按下按钮或重开页面。

5、排错时可查看日志 ~/.dsh/unlag-reload.log;运行中 App 可用 GET /dsh-unlag/state 查看版本与 code 字段区分「版本号未刷」与「旧代码仍在跑」。对着正在运行的 App 可执行 npm run smoke(在插件源码目录)做演练,不按按钮,只校验当前启动清单与路由契约;无 App 监听时会 skip 并以 0 退出。

适用场景与注意

适合:长期在 DSH 桌面端开发或调试客户端插件、需要热换代码或缓解界面卡顿、且希望避免整应用重启的用户。

注意:

  • 仅桌面 App 窗口有效,浏览器打开同一地址无此按钮。
  • 默认只有人工点击;本插件不装文件监视,自身不会自动换代码(宿主自带的插件热更新另有开关,与本文插件开关无关)。
  • 被替换插件实例上的自建长任务可能中断;附件草稿需先发出再刷。
  • 若新页面仍无法启动,App 可能进入错误恢复流程;本插件不代为选择停用插件或退出。

DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装第三方插件前请自行评估信任边界。

结尾

dsh-unlag 把「改插件」和「界面卡顿」两类原本需要重启 App 的操作,收敛到桌面窗口右上角的一次刷新,并在 README 中写清了保留项、拦截项与和官方 Client Modules 约定的差异。需要条目概览时可打开 https://www.skillhub.cn/plugins/regrevia/dsh-unlag;实现细节、测试与 EVIDENCE 见 https://github.com/regrevia/dsh-unlag。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜