前言¶
用 DSH Desktop 做日常开发时,一旦官方发布新的桌面构建,账号按钮旁会出现一颗带下载箭头的「新版本」小胶囊。更新检查本身是有用的,但壳层没有提供「只关掉角标、保留检查更新菜单」的用户开关——角标由内置组件 DesktopUpdateIndicator 在 wide && !hidden && phase !== 'idle' 时直接画在界面上。若你只想少一颗常驻提示、又不想动更新逻辑,社区插件 dsh-hide-update-badge(维护者 Da0Mine,分类:趣味换装)只做表现层隐藏:纯 CSS 与基于无障碍标签的 DOM 处理,不改宿主更新行为。
这是什么¶
dsh-hide-update-badge 面向 DSH 桌面版(desktop profile),隐藏壳自带的更新角标(账号按钮右侧的「下载箭头 + 新版本」胶囊)。它只藏这一颗角标:后台更新检查照旧,菜单里的「检查更新 / Check for updates」照旧可用,不会偷偷下载或安装,也没有关闭任何功能。
- 维护者:江浩文(Da0Mine)
- 许可证:MIT
- 当前包版本(资料):1.0.1
- 目录页:SkillHub 插件页
- 源码:GitHub — Da0Mine/dsh-hide-update-badge
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文仅介绍该社区包的能力与用法。
为什么需要插件而不是设置项¶
角标由宿主包 @deepseek-ai/dsh-client-ui-settings-general 中的 DesktopUpdateIndicator 渲染,样式见同路径下的 DesktopUpdateIndicator.module.css。壳没有面向用户的「关闭角标」选项(只有菜单里的手动检查入口),插件能动的只有前端呈现层,因此用 Cordis patch + 客户端脚本做定向隐藏。
核心功能与实现要点¶
下面介绍插件如何在不碰更新逻辑的前提下藏角标。
两层隐藏策略¶
| 层 | 机制 | 抗 DSH 升级 |
|---|---|---|
| ① CSS | 隐藏当前构建 CSS Module 类名(如 VUhOWa_indicator,折叠侧栏圆点 VUhOWa_badge) |
否:哈希随构建变化 |
| ② DOM | 按 aria-label 识别更新态文案(新版本、正在检查更新、正在校验更新、正在安装更新、更新失败、重试、NN%),配合 rAF 节流的 MutationObserver 与 4 秒兜底扫描 |
是:不依赖类名哈希 |
第 ② 层刻意收窄范围,避免误伤其它按钮:元素必须是带白名单内 aria-label 的 <button>,且位于设置触发行(*_triggerRow)内或 class 含 indicator;设置、打开设置、重新连接 等在保护名单内。
明确不做什么¶
- 不关闭或改写更新检查流程。
- 不隐藏、不修改「检查更新」菜单项。
- 不在后台代为下载或安装桌面包。
安装与启用¶
安装前建议浏览 GitHub 源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,与任何社区插件一样,安装前应自行评估信任边界。
插件声明的 DSH 引擎范围(来自 package.json):
dsh >=0.2.1-rc.1 <0.3.0-0
在 desktop profile 下执行官方 README 给出的安装命令:
dsh plugin --profile desktop add dsh-hide-update-badge
安装后按 DSH 惯例重启或重载宿主,使 patch 与客户端脚本生效。本包无额外配置字段;启用即按上述两层策略工作。
典型用法¶
本插件无独立 CLI 子命令或配置文件,典型用法就是:desktop profile 安装 → 重启宿主 → 角标不再显示,需要更新时仍可从菜单手动检查。
若你习惯在插件页管理扩展,也可在 DSH 插件界面启用/关闭本包,效果与 profile bundles 一致。
升级 DSH 之后¶
跨大版本时,官方若改文案或 DOM 结构,角标可能重新出现。README 建议的自维护步骤如下:
- F12 打开 DevTools,右键角标 →「检查」;
- 记录其
aria-label与 class(形如<哈希>_indicator); - 将新哈希写入
client.js的HASH_SELECTORS,或将新文案写入UPDATE_LABELS; - 重启宿主。
这是面向 fork 或本地改包的场景;普通用户若未改源码,可等待作者发新版或自行提 Issue。
卸载¶
任选其一即可:
- 在 DSH 插件页关闭本插件;或
- 从 profile 的
dsh.profile.bundles移除本包,并从 profile 的package.json删除对应依赖;
然后重启宿主。
适用场景与注意¶
适合:长期开 DSH Desktop、已习惯手动「检查更新」,只希望界面少一颗「新版本」胶囊的开发者。
注意:
- 仅针对桌面壳上的那颗角标;Web 或其它 profile 行为以实际注入范围为准(包内
dsh.client.platform为web,通过 desktop profile 安装挂载)。 - CSS 层随官方构建哈希失效属预期;DOM 层更稳,但仍可能因结构大改而需维护。
- 隐藏角标不等于「没有新版本」;仍应偶尔通过菜单检查更新。
结尾¶
dsh-hide-update-badge 用最小改动解决「有更新提示、无关闭开关」的界面问题:更新能力保留,只去掉账号旁的「新版本」 pill。需要详情与 Issue 请见 GitHub 仓库,社区索引见 SkillHub 目录页。