dsh-menu-hidden:收起重複入口並補全應用菜單

前言

在 DeepSeek Harness(DSH)裏做日常開發時,模型選擇框和設置頁往往會同時出現「DeepSeek 賬號」與官方 API 等多套入口;右下角賬號菜單裏還有意見反饋等項。若你主要走自建 provider 或中轉站,這些重複 UI 會佔視線。打包版 DSH 的應用菜單裏,官方預留的「刷新頁面」「重啓應用與 Host」又因 development 門在發行包裏恆爲關閉而不可見。社區插件 dsh-menu-hidden(維護者 Biu-Bong)用客戶端 DOM 隱藏與可選的主進程補丁,把上述項收成開關控制,並支持寫入 profile 的默認推理等級。下面介紹它的定位、能力與用法。

這是什麼

dsh-menu-hidden 是 DSH 的客戶端類插件:在 設置 → 菜單隱藏 裏用開關控制界面元素的顯示,多數改動立刻生效;應用菜單兩項需對宿主 lib/main.js 寫入補丁並在重啓應用後出現。插件還可在 cordis.patch.yml 中爲各 LLM provider 配置 reasoning 字段,便於中轉站在請求裏帶上推理等級。

核心功能

模型選擇與設置 · 模型

  1. 模型選擇框:可分別隱藏標題爲「DeepSeek 賬號 / DeepSeek Account」與「DeepSeek」(官方 API)的分組;實現方式爲匹配 section[data-menu-group] 並按分組標題整組設置 display:none。
  2. 設置 · 模型:可隱藏賬號相關整行(通過 [class*="_accountStatus"] 識別)以及官方 API 對應 <li> 行。

賬號菜單與側邊欄

賬號菜單可單獨隱藏「意見反饋 / Feedback」「退出登錄」等項(按 [role="menuitem"] 文字匹配;找不到則跳過)。較新版本 README 還提到側邊欄分組(插件 / 定時任務 / 更多)、「隱藏新會話」等開關,均存於 localStorage 鍵 dsh-menu-hidden:v1,切換後立刻重掃 DOM。

隱藏只改 style="display:none!important" 並在節點上打 data-dshmh-hidden 保存原 style,關開關可還原,不刪 React 節點。

應用菜單:刷新與重啓

官方在 lib/main.js 的 applicationItems() 裏已有 reload / relaunch 項,但打包版 development = !app.isPackaged 爲 false 時整段被去掉。插件通過宿主側補丁將條件改爲 (development || true),並在設置頁提供「寫入補丁 / 還原」(備份 .menuhidden.bak)。改完後需重啓一次應用,原生菜單纔會重建。寫入走本機路由並帶平臺瀏覽器鑑權,無會話 cookie 的進程會被 401 拒絕。

DSH 大版本更新會整份替換 resources/app/lib/main.js,補丁會丟失;設置頁會顯示外殼狀態,可再次點「寫入補丁」,無需重裝插件。

推理等級(自 0.2.0 起)

各家中轉站後臺常依賴請求裏的推理等級字段;DSH 僅在 provider 配置了 reasoning: <level> 時纔會攜帶。插件提供:

  • 全局默認:未單獨設置的供應商共用一檔。
  • 按供應商覆蓋:跟隨全局 / 不設置 / 具體檔位(off, minimal, low, medium, high, xhigh, max)。

寫入正式 profile 下 cordis.patch.yml 中 - id: llm-pi-ai → config.providers.<id>.reasoning,行級編輯、冪等、寫前備份 cordis.patch.yml.menuhidden.bak,狀態存 $DSH_HOME/dsh-menu-hidden.reasoning.json。llm-pi-ai 熱讀配置,改完不必重啓,下一條消息即生效。

安裝與啓用

安裝命令(來自 README 原文):

dsh plugin --profile desktop add github:Biu-Bong/dsh-menu-hidden

也可在 SkillHub 等社區插件市場頁面點安裝。卸載:

dsh plugin --profile desktop remove dsh-menu-hidden

卸載插件不會自動還原 main.js 補丁;需先在設置頁點「還原」,或執行:

node <項目目錄>/shell/patch-shell-menu.mjs --revert

啓用後打開 設置 → 菜單隱藏,按分組打開需要的開關。若只需應用菜單兩項,在底部「應用菜單」一行寫入補丁並重啓 DSH。

本地開發覆蓋安裝可用倉庫內 tools/install-local.mjs(安裝前校驗 package.json 名、client.js loader id、cordis.patch.yml id 一致),例如:

node tools/install-local.mjs
node tools/install-local.mjs --dry-run

典型用法

  1. 日常只用第三方 API:在「模型選擇框」「設置 · 模型」打開隱藏 DeepSeek 賬號與官方 API 的四個開關,界面立刻收起重複分組與選項卡。
  2. 調試需要 reload:在「應用菜單」寫入補丁 → 重啓 → 從應用菜單或設置頁底部「現在刷新一次界面」刷新;需要完全重啓 Host 時用「重啓應用與 Host」。
  3. 中轉站顯示不出推理強度:在「推理等級」設全局默認,或對單個 provider 覆蓋;面板重新獲得焦點時會重讀,也可點「重新讀取」。

設置頁說明:「推理等級」與前三組標題同屏展示;其餘說明可放在標題旁 ⓘ 懸浮提示。界面語言隨應用 locale;插件對 zh / zh-CN / zh-Hans / en 分別註冊字典,避免僅註冊 zh 導致 zh-CN 查表 miss 整頁變英文。

適用場景與注意

適合:長期用自建 provider、希望界面更乾淨;需要在 Windows 等環境下從原生應用菜單刷新或重啓 Host;希望集中管理各 provider 的 reasoning 而不手改多處 YAML。

注意:

  • 插件以當前 DSH 進程權限運行,安裝前應查看 MIT 許可 與源碼,確認可接受對本機 profile 與安裝目錄文件的修改。
  • 隱藏依賴官方 DOM 結構與文案(如分組標題、_rowName / _accountStatus 類名後綴、菜單項文字);官方改版後對應項可能靜默失效,其它開關不受影響。
  • 若自定義 provider 的 displayName 恰好爲 DeepSeek,會與「隱藏官方 API」一併被藏。
  • 推理等級與外殼補丁寫在 $DSH_HOME 與安裝目錄,換機或換用戶需重新配置。
  • 手工拷包導致 Failed to load plugins 時,常見原因是 loader id 與包名不一致或 client.js 使用 module.exports;可用 node tools/install-local.mjs --check <安裝目錄> 排查。

結尾

dsh-menu-hidden 把重複的 DeepSeek 賬號與官方 API 入口、賬號菜單項收成可逆開關,並補上發行版缺失的應用菜單刷新與重啓;推理等級寫入 profile 後可熱更新。需要安裝或 issue 時見 SkillHub 目錄頁 與 GitHub 倉庫。

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

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

小夜