🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

标题栏刷新按钮 Depar7ure/dsh-desktop-web-refresh

DeepSeek Harness
Depar7ure30 天前有提交已提供中文文档扫描:未发现敏感能力

在标题栏加刷新键,有对话运行时禁用并警告

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Depar7ure/dsh-desktop-web-refresh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · desktop
装得上吗
实装验证未通过(runtime_add_failed),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(runtime_add_failed · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    client.js:175
    const res = await fetch(API, { cache: 'no-store' });
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 标题栏新增刷新按钮
  • 对话运行时禁用
  • 运行中弹警告

DSH Desktop 插件:标题栏「编辑」右侧新增蓝底白字伪 3D「刷新」按钮;有对话运行时禁用并弹警告,全静默才允许刷新。

README

由 DeepSeek 最新模型翻译生成
dsh-desktop-web-refresh 在 DSH Desktop 桌面端窗口标题栏(与「最小化 / 还原 / 关闭」原生窗口按钮同一栏)的「编辑」菜单右侧,新增一个 「刷新」 按钮:按下即重新加载 DSH Desktop 页面(等价于浏览器的刷新)。Host 进程不受影响,会话仍保留在 Host 侧。 按钮做成 蓝底白字圆角矩形,用多层阴影做 伪 3D 凸起(顶面高光 + 底边厚度 + 短投影;悬停变亮、按下压入)。它的 大小、位置与改动前完全一致(76×28,仍在「编辑」右侧):文案去掉「网页」二字后宽度不随文字收缩;外阴影向下控制在 5px 以内,再加 :host { overflow: hidden } 兜底,不侵入标题栏下方的工具栏。 运行保护:刷新会把正在运行的对话截断,所以按钮实时盯住 Host 的对话名册——只要有对话在运行(或还有排队没跑完的工作),按钮就不允许使能(灰化、cursor: not-allowed),点它只会弹出警告: ⚠ 警告刷新操作会使当前运行的 n 个对话截断,请等待运行结束或手动中止运行 只有确认所有对话全静默(不运行)才执行刷新;连对话状态都查不到时,保守地同样禁止刷新(宁可少刷不可误刷)。
展开完整文档(README 剩余 1 节)
dsh-desktop-web-refresh

在 DSH Desktop 桌面端窗口标题栏(与「最小化 / 还原 / 关闭」原生窗口按钮同一栏)的「编辑」菜单右侧,新增一个 「刷新」 按钮:按下即重新加载 DSH Desktop 页面(等价于浏览器的刷新)。Host 进程不受影响,会话仍保留在 Host 侧。

按钮做成 蓝底白字圆角矩形,用多层阴影做 伪 3D 凸起(顶面高光 + 底边厚度 + 短投影;悬停变亮、按下压入)。它的 大小、位置与改动前完全一致(76×28,仍在「编辑」右侧):文案去掉「网页」二字后宽度不随文字收缩;外阴影向下控制在 5px 以内,再加 :host { overflow: hidden } 兜底,不侵入标题栏下方的工具栏。

运行保护:刷新会把正在运行的对话截断,所以按钮实时盯住 Host 的对话名册——只要有对话在运行(或还有排队没跑完的工作),按钮就不允许使能(灰化、cursor: not-allowed),点它只会弹出警告:

⚠ 警告刷新操作会使当前运行的 n 个对话截断,请等待运行结束或手动中止运行

只有确认所有对话全静默(不运行)才执行刷新;连对话状态都查不到时,保守地同样禁止刷新(宁可少刷不可误刷)。

按钮在哪

┌──────────────────────────────────────────────────────────────────────┐
│ [≡] [应用菜单] [编辑] [ 刷新 ] (标题栏空白处可拖动) ─ □ ✕ │
│ └─ 蓝底白字圆角,伪 3D 突出按钮 ─┘ │ └──────────────────────────────────────────────────────────────────────┘

只在 Windows 桌面端(DSH Desktop)出现 —— Web 浏览器版 GUI 没有这一栏菜单,本插件在那里什么都不做。

实现方式

那一栏的菜单不是 Web 应用的 React 插槽,而是 Electron preload(lib/preload-app.cjs 的 installWindowsMenu())挂到 document.body 的 ,内部是一个 open shadow root,[role=menubar] 里依次放着「应用菜单」「编辑」两个按钮,样式由同一 shadow root 的 统一给出。

所以 client.js 做的是同源 DOM 手术:

1. 等 [data-windows-menu] 的 menubar 出现(preload 注入时机不定,因此带节流的 MutationObserver 轮询,出现后立即停止观察);
2. 把 刷新 追加到 menubar 末尾,正好落在「编辑」右侧;挂载时先按上一版文案「网页刷新」量出既有宽高,再换成「刷新」并把宽高锁死,所以删字后按钮大小、位置都不变;
3. 在同一 shadow root 装一份 button[data-dsh-web-refresh] 样式:蓝底 #2563eb、白字、圆角 8px,多层阴影做伪 3D——inset 顶面高光与底面暗部、0 2px 0 底边厚度、0 3px 5px -1px 短投影;特异性压过 preload 的 button / button:hover 规则,悬停 #3b82f6、按下 #1d4ed8 压入;
4. 按下 → 先查一次运行状态(见下):全静默才 window.location.reload(),有对话在运行或状态未知就弹警告,不刷新。

运行状态从哪来

浏览器半拿不到 Host 的 agent 名册,所以 index.js(Host 半)开一个只读查询:

GET /plugins/dsh-desktop-web-refresh/api/active
→ { ok, known, count, running: [{ id, title }] }

「正在运行」的判据与桌面壳的退出检查一致:对话的 status === 'running',或 inbox 里还排着 nextTurn / nextStep。拿不到名册时如实答 known:false。

按钮每 2 秒轮询一次刷新视觉状态;按下时一定重新查一次作为权威判定(轮询只管显示,判定永远走最新数据),所以按钮哪怕来不及变亮,也不会误刷新。弹窗是页面层的 role="alertdialog" 浮层,点「知道了」、点遮罩或按 Esc 关闭。

阴影几何专门做了预算:外阴影向下可见延伸 ≤ 5px(按钮在 40px 标题栏带里垂直居中,下方本有 6px 空隙),:host { overflow: hidden } 再兜一层底,任何意外溢出都裁在标题栏带内,不会碰到下方工具栏。

注入是幂等的(data-dsh-web-refresh / data-dsh-web-refresh-style 标记),插件卸载时会把按钮与样式一并摘掉。

文件

| 文件 | 作用 |
| index.js | Host 半。开 /api/active 报告运行中的对话数(判据同桌面壳退出检查)。 |
| client.js | 浏览器半。定位标题栏菜单栏,插入「刷新」按钮(突出样式、尺寸锁定、阴影预算)与运行保护(禁用态 + 警告弹窗)。 |
| cordis.patch.yml | 把本包的 dsh.client 行插入 Web roster。 |
| package.json | bundle + client 清单。 |

开发机安装(源码 link)

源码在工作区,桌面 profile 通过 link: 引用(与 dsh-workspace-archive 同款):

// ~/.dsh/profiles/desktop/package.json
"dependencies": {
"dsh-desktop-web-refresh": "link:C:/Users/Ash.Cran/Documents/CodeFiles/VibeCoding/dsh-desktop-web-refresh"
},
"dsh": { "profile": { "bundles": [ ..., "dsh-desktop-web-refresh" ] } }
改完在 ~/.dsh/profiles/desktop 跑一次 pnpm install 建立链接,然后重启 DSH Desktop(bundle 在启动时装载)。

分发到别的机器:一句话安装

本地插件包:dsh-desktop-web-refresh-1.0.0.tgz —— 零第三方依赖,离线可装。

1. 把这个 .tgz 拷到目标机器(任意方式:U 盘、网盘、局域网……);
2. 在那台机器的 DSH Desktop(Windows 桌面端) 里对 DSH 说一句话:

安装本地插件包:C:\你的路径\dsh-desktop-web-refresh-1.0.0.tgz

如果想要更稳的措辞:

用插件管理器把这个本地插件包装到 desktop profile:C:\你的路径\dsh-desktop-web-refresh-1.0.0.tgz 装完提醒我重启 DSH Desktop

DSH 会调 plugin_manager install_bundle:解压进 node_modules、把包里的 dsh.bundle.patch 登记成组合包行。包没有第三方依赖,整个过程不需要联网。
3. 重启 DSH Desktop(bundle 在启动时装载),标题栏「编辑」右侧即出现按钮。

卸载同样一句话:

卸载插件 dsh-desktop-web-refresh

注意

- 按钮挂在 Windows 桌面端的窗口标题栏(与「最小化 / 还原 / 关闭」同栏),因此只在 Windows 的 DSH Desktop 出现;Web 浏览器版与 macOS 桌面端没有这栏菜单,装上后按钮不显示(插件无其他副作用)。
- 装完没看到按钮:先按一次页面刷新,或重启 DSH Desktop —— bundle 是启动时装载的。
- 若 DSH 问装到哪个 profile,选 desktop(DSH Desktop 用的那个)。

备用安装(DSH 没有插件管理工具时)

有些会话预设不带 plugin_manager 工具。这时对 DSH 说:

把 C:\你的路径\dsh-desktop-web-refresh-1.0.0.tgz 用 pnpm add 装进 ~/.dsh/profiles/desktop,再把 dsh-desktop-web-refresh 追加进该目录 package.json 的 dsh.profile.bundles 数组末尾,最后提醒我重启 DSH Desktop

等价手工步骤:

1. 工作目录切到 ~/.dsh/profiles/desktop,执行 pnpm add <tgz 绝对路径>;
2. 编辑该目录的 package.json,在 dsh.profile.bundles 数组末尾追加 "dsh-desktop-web-refresh";
3. 重启 DSH Desktop。

只做第 1 步不够:bundle 是靠 dsh.profile.bundles 选入的,install_bundle 会自动补这一步,手工装时别忘了。

测试(重启后做)

1. 启动 DSH Desktop,看标题栏「编辑」右侧是否出现 蓝底白字 的「刷新」按钮;
2. 尺寸应与改动前一致(不因少两个字变窄),位置仍在「编辑」右侧、同一行;
3. 伪 3D 效果:顶面有高光、底边有厚度与短投影;悬停变亮,按下有压入感;
4. 阴影只在标题栏带内,不越过标题栏压到下方工具栏;
5. 运行保护:随便发起一个对话让它跑着 —— 按钮应变灰(cursor: not-allowed、悬停提示「有 1 个对话正在运行,暂不可刷新」),点它只弹警告「刷新操作会使当前运行的 1 个对话截断,请等待运行结束或手动中止运行」, 不会刷新;
6. 等对话跑完(或手动中止),按钮自动恢复蓝色可按,悬停提示变回「重新加载 DSH Desktop 页面」;
7. 此时按下按钮,整个 DSH Desktop 页面应当刷新(当前对话回到加载态后仍能从会话列表进入,Host 侧会话不丢)。
预览分享卡片长什么样 ↓Depar7ure/dsh-desktop-web-refresh
分享 · DeepSeek Harness Hub
Depar7ure/dsh-desktop-web-refresh

在标题栏加刷新键,有对话运行时禁用并警告

这是你的仓库?认领条目

回到顶部