前言¶
用 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 目錄頁。