dsh-hide-update-badge:隱藏 DSH 桌面版「新版本」角標

前言

用 DSH Desktop 做日常開發時,一旦官方發佈新的桌面構建,賬號按鈕旁會出現一顆帶下載箭頭的「新版本」小膠囊。更新檢查本身是有用的,但殼層沒有提供「只關掉角標、保留檢查更新菜單」的用戶開關——角標由內置組件 DesktopUpdateIndicator 在 wide && !hidden && phase !== 'idle' 時直接畫在界面上。若你只想少一顆常駐提示、又不想動更新邏輯,社區插件 dsh-hide-update-badge(維護者 Da0Mine,分類:趣味換裝)只做表現層隱藏:純 CSS 與基於無障礙標籤的 DOM 處理,不改宿主更新行爲。

這是什麼

dsh-hide-update-badge 面向 DSH 桌面版(desktop profile),隱藏殼自帶的更新角標(賬號按鈕右側的「下載箭頭 + 新版本」膠囊)。它只藏這一顆角標:後臺更新檢查照舊,菜單裏的「檢查更新 / Check for updates」照舊可用,不會偷偷下載或安裝,也沒有關閉任何功能。

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 建議的自維護步驟如下:

  1. F12 打開 DevTools,右鍵角標 →「檢查」;
  2. 記錄其 aria-label 與 class(形如 <哈希>_indicator);
  3. 將新哈希寫入 client.js 的 HASH_SELECTORS,或將新文案寫入 UPDATE_LABELS;
  4. 重啓宿主。

這是面向 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 目錄頁。

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

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

小夜