dsh-ui-reload:会话顶栏一键整页刷新

前言

在 DSH 里做客户端插件或改前端资源时,常见情况是:bundle 已在磁盘上更新,但当前页面仍挂着旧的模块、样式或插件列表。DSH 自带的 dsh-client-hmr 可以在 bundle 变更时重新发布插件,却无法覆盖所有偏差——例如页面 shell 或引导逻辑早于某次改动、或只有真实文档加载才能清掉的前端状态。此时最稳妥的做法往往是整页 reload。dsh-ui-reload 在对话会话顶栏(分享按钮左侧)提供一个按钮,点一下即触发整页刷新,省去手动 F5 或找刷新入口。

这是什么

dsh-ui-reload 由维护者 minhaoli 发布,分类为客户端插件。它在 DSH 对话会话头部工具区挂载「重载整页前端」按钮,点击后执行 window.location.reload(),用于在 Web UI 下快速对齐前端与当前插件、样式及 shell 代码。

  • 目录页:https://www.skillhub.cn/plugins/minhaoli/dsh-ui-reload
  • 源码与说明:https://github.com/minhaoli/dsh-ui-reload

环境要求

项 要求
DSH 0.2.1-rc.2(在该版本上开发与测试)
@deepseek-ai/cordis ~4.0.5
运行方式 Web UI(web 或 desktop profile),无 CLI 界面

更早的 DSH 版本未做验证。按钮挂载在插槽 conversation.session.header.utilities;若某次发布重命名或移除该插槽,按钮将不会显示。

核心功能

  1. 顶栏一键刷新:按钮位于会话头部 utilities 区域,紧邻分享按钮左侧。
  2. 整页重载:覆盖客户端插件 bundle 在运行页面下重建、插件列表变更、过期 CSS、shell 自身代码等 HMR 难以兜住的场景。
  3. 双半部 bundle:包声明 dsh.bundle.patch,主机侧 lib/index.js 仅提供空 apply() 以满足 bundle 挂载;浏览器侧 lib/client.js 通过 dsh.client.inject 注入 UI 并注册按钮。点击后先约 400 ms 的视觉确认,再调用 window.location.reload()。

点击后仍保留在 host 上的状态:对话、工作区与连接状态。

会丢失的页面内状态:滚动位置、已打开面板、输入框未发送内容、页面内定时器等仅存在于 document 中的内容。

安装与启用

在目标 profile 下执行官方安装命令:

dsh plugin --profile <your-profile> add github:minhaoli/dsh-ui-reload

包带有 dsh.bundle.patch,安装后条目会追加到 dsh.profile.bundles,下次启动时由加载器挂载。客户端半部以独立模块提供,安装后需至少手动刷新页面一次,按钮才会出现。

手动写入 patch 的示例(资料原文):

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- insert:
    - id: ui-reload
      name: 'dsh-ui-reload'

典型用法

  1. 安装插件并重启或按上述说明刷新页面,进入任意对话会话。
  2. 在会话顶栏 utilities 区找到重载按钮(分享按钮左侧)。
  3. 在改过客户端插件、改过 bundle 列表或怀疑前端与磁盘不一致时点击;等待短暂反馈后页面整页重载。
  4. 重载后回到同一会话时,对话与工作区由 host 恢复;需重新展开面板或恢复未发送草稿时请自行留意。

与 HMR 的分工:日常改单个插件 bundle 可继续依赖 dsh-client-hmr;当整页状态或 shell 与预期不符时,用本插件做一次完整 document load。

适用场景与注意

适合:经常在 DSH Web / desktop UI 下迭代客户端插件、调试 bundle 与 UI 插槽的开发者。

注意:

  • 插件以当前 DSH 进程及其配置下的权限运行;安装前请阅读仓库源码与 MIT 许可证。
  • 仅面向 Web 客户端(package.json 中 dsh.client.platform 为 web)。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本包是其中一条客户端增强。

同作者会话相关插件(README 列举,可按需搭配):dsh-session-tree、dsh-session-manager、dsh-session-search、dsh-session-query-vector。

结尾

dsh-ui-reload 把「整页刷新」收成顶栏一个动作,补全 dsh-client-hmr 覆盖不到的同步问题,改动面小、行为明确。当前包版本为 0.2.0。进一步了解请查看 SkillHub 目录页 与 GitHub 仓库。

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

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

Xiaoye