dsh-page-reload:为 DSH 补上整页刷新快捷键

前言

DeepSeek Harness(DSH)桌面端在 Windows 正式版里,往往找不到「重载整个窗口」的入口:应用菜单里的 reload 只在开发模式注册,日常用的是内置 page.refresh(Ctrl+R),它只刷新右侧栏面板,无法把整页 UI 拉回正常状态。前端 JS 卡死、白屏时,你需要的是浏览器式的整页重载。下面介绍社区插件 dsh-page-reload(维护者 caly250,分类:客户端),它通过 DSH 快捷键服务注册 page.reload,默认 Ctrl+Shift+R(macOS 为 Cmd+Shift+R),作为 wedged 或白屏界面时的恢复键。

这是什么

dsh-page-reload 是纯客户端(client-only)、零运行时依赖的 DSH 插件。Host 侧刻意不做任何事,避免桌面壳因插件激活失败。它解决的核心问题是:在渲染进程仍存活的前提下,用可配置的快捷键触发 location.reload() 级别的整页刷新,与只动右侧栏的 page.refresh 区分开。

为什么需要它

资料里归纳的背景如下:

  1. DSH 正式版在 Windows 上缺少页面重载菜单项(app.asar 中 lib/main.js 的 development 分支才注册 reload 菜单)。
  2. 内置 page.refresh 实现在 dsh-client-ui-sidebar-right 的 registerSidebarShortcuts,作用域是右侧面板,不是整页。
  3. 白屏有时来自渲染进程 OOM(可在 userData\logs\crash-*-renderer.log 看到 Desktop renderer exited: oom);JS 层卡死时则仍可能需要整页重载。

核心功能

插件通过 @deepseek-ai/dsh-client-shortcuts 注册命令 page.reload:

  • 默认键位:Ctrl+Shift+R(Windows / Linux 桌面与 Web);macOS 为 Cmd+Shift+R。
  • 命令出现在 设置 → 快捷键(Ctrl+/),可改键或清空绑定。
  • 第二层:在 capture 阶段增加原生 keydown 兜底;若快捷键服务已处理(defaultPrevented),兜底让路,避免双触发冲突。

执行情况会写入 localStorage["dsh-page-reload-probe"](phase 如 registered、raw-listener-installed、command-run 等),便于排查是否注册成功。

安装与启用

从 GitHub 或本地目录安装(命令摘自插件 README,<your-user> 换为仓库所属用户,例如目录页上的 caly250):

# 从 GitHub 安装
dsh plugin --profile desktop add github:<your-user>/dsh-page-reload

# 或从本地目录
dsh plugin --profile desktop add link:/path/to/dsh-page-reload

安装后需重启 DSH:托盘 → 退出 → 再打开。插件以当前 DSH 进程权限在渲染进程内运行;安装前建议自行查看 GitHub 源码 与 MIT 许可证。

典型用法

  1. 安装并重启后,在界面卡死但窗口仍可响应时,按默认 Ctrl+Shift+R(macOS:Cmd+Shift+R)整页重载。
  2. 若需改键:打开 设置 → 快捷键(Ctrl+/),找到 page.reload 修改或解除绑定。
  3. 怀疑插件未加载时,在 Windows 上可从 Local Storage leveldb 搜索探针键(README 提供的 PowerShell 示例):
$ud = Join-Path $env:APPDATA '@deepseek-ai\dsh-desktop\Local Storage\leveldb'
Get-ChildItem $ud -File | ForEach-Object { Select-String -Path $_.FullName -Pattern 'dsh-page-reload-probe' }

适用场景与注意

适合:日常 DSH 桌面/Web 客户端使用者;右侧栏刷新无效、整页 UI 假死或白屏且 Electron 未报致命错误时,优先尝试本快捷键。

边界(README 诚实说明):

  • 快捷键跑在渲染进程:若渲染进程已崩溃,页内按键无效,应使用 Electron 对话框的「重新启动」,或托盘 → 退出 → 重开;不要用强杀进程的方式刷新(可能截断会话日志)。
  • 若只是 JS 卡死、进程仍在,Ctrl+Shift+R 通常足够。

卸载:从 profile 的 package.json 移除 dependencies 与 dsh.profile.bundles 中对应条目,删除 node_modules 内链接后重启;userData/keybindings.json 里残留的绑定无害。

DSH 生态主张「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-page-reload 用一条可配置的 page.reload 补上了正式版里缺失的整页重载路径,并与 Ctrl+R 的面板刷新明确分工。需要安装说明与边界细节时,以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/caly250/dsh-page-reload
  • GitHub:https://github.com/caly250/dsh-page-reload
羽毛球分组比赛记分
小程序二维码

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

Xiaoye