dsh-badge:標籤頁與任務欄未讀角標,回合結束一聲提示

前言

用 DeepSeek Harness 跑長對話或後臺任務時,瀏覽器標籤往往還停在別的頁:助手已經跑完一輪,你未必立刻切回去。ChatGPT 會在標籤圖標上疊紅色數字、標題前加 (N),回合結束還有提示音;原生 DSH 界面沒有這套「未讀回合」反饋。社區插件 dsh-badge(維護者 gaolvsuan,分類:客戶端)把同類能力接到 DSH:在標籤頁 favicon 和 Windows 任務欄按鈕上顯示未讀數,每完成一個回合播放一次提示音,標籤重新可見或窗口回到前臺時可自動清零。

這是什麼

dsh-badge 是 DeepSeek Harness 的客戶端組合包插件,MIT 許可,當前 npm 版本 0.8.5(以倉庫 package.json 爲準)。它監聽會話回合結束事件,累加全局未讀計數(不按會話分別統計),用 canvas 在站點原圖標底圖上繪製角標並替換 <link rel="icon">;音效由 Web Audio 現場合成,插件不附帶音頻文件。Windows 桌面端還可通過宿主側 PowerShell 助手,對指定進程窗口的任務欄按鈕調用 ITaskbarList3 繪製覆蓋圖標;macOS 與 Linux 僅保留標籤頁角標、標題前綴與音效。

目錄頁:https://www.skillhub.cn/plugins/gaolvsuan/dsh-badge
源碼:https://github.com/gaolvsuan/dsh-badge

核心功能

下面介紹 README 中已寫明、可覈對的行爲。

標籤頁與標題

  • 標籤頁圖標角標顯示未讀回合數,超過 99 顯示 99+。
  • 可選在文檔標題前加 (3) DeepSeek Harness 形式的前綴(配置項 titlePrefix)。
  • 標籤頁重新可見約 1.2 秒後自動清零(受 clearOnFocus 控制)。

提示音

  • 每個計入的回合結束播放一聲;內置三種音色:chime(兩音鈴聲)、beep(單聲方波)、rise(三音上行)。
  • 可設 soundUrl 使用自定義音頻;可開 errorSound,在失敗回合用低音提示。
  • minTurnDurationMs 默認 1000:短於該時長的回合不計角標、不響,避免極短回合刷屏。
  • 瀏覽器需用戶至少點擊或按鍵一次後才允許播放聲音,插件在首次交互時解鎖音頻。

Windows 任務欄角標

  • 在任務欄 DSH 窗口按鈕上疊加數字角標;窗口切回前臺後可清除(desktopBadgeClearOnFocus)。
  • 子代理的回合不計入任務欄角標,與標籤頁邏輯一致。
  • 默認按進程名 DeepSeek Harness 找窗口;多實例或改名時需配置 desktopBadgeWindow,或關閉 desktopBadge。

設置頁

Host 中路徑:設置 → 插件管理 → dsh-badge。表單提供顏色預設與取色器、角標位置(右下角 / 右上角)、提示音試聽、音量滑桿、最短回合時長,以及提示音、任務欄角標、切回前臺清零等開關。修改後即時生效,停手後自動寫入 Host 設置文檔,無單獨保存按鈕。

安裝與啓用

DSH 生態裏插件可來自社區目錄或 npm;裝完需進入 profile 的 bundles,否則不會加載。

從插件市場安裝

在 SkillHub 等市場搜索 dsh-badge 後安裝,按市場提示重啓或等待熱掛載。

從 npm 安裝(desktop profile)

官方命令如下:

dsh plugin --profile desktop add dsh-badge

資料說明:dsh plugin add 只執行 pnpm,不會改 dsh.profile.bundles。裝完後還要在 profile 的 package.json 裏把 dsh-badge 加進 dsh.profile.bundles 數組,否則插件不會加載。

本地開發(目錄鏈接)

把倉庫放到任意目錄,在 profile 的 package.json 中增加依賴與 bundle 條目,再在 profile 目錄執行 pnpm install:

{
  "dependencies": {
    "dsh-badge": "file:../dsh-badge"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "dsh-badge"
      ]
    }
  }
}

bundles 裏缺少 "dsh-badge" 時,插件同樣不會加載。

配置

在 profile 的 cordis.patch.yml 裏覆蓋默認值。插入條目時 id 與 name 都要寫,id 對應 patch 裏的 badge:

- id: badge
  name: dsh-badge
  config:
    volume: 0.6
    soundPreset: beep
    minTurnDurationMs: 5000

常用配置項(默認值以 README 表格爲準):

配置項 默認值 說明
enabled true 總開關
badge true 是否繪製圖標角標
titlePrefix true 標題前 (N)
sound true 是否播放提示音
soundPreset chime chime / beep / rise
volume 0.5 0–1,冪曲線
minTurnDurationMs 1000 短回合過濾
clearOnFocus true 標籤可見時清零
badgeColor #f5455c 角標顏色
badgePosition br br 或 tr
desktopBadge true Windows 任務欄角標
desktopBadgeWindow DeepSeek Harness 任務欄窗口進程名
debugLog '' 調試日誌文件路徑

更完整的字段見倉庫 README「配置」一節。

典型用法與驗證

控制台調試

在瀏覽器開發者工具控制台:

__DSH_BADGE__.test(3)          // 角標顯示 3 並響一聲
__DSH_BADGE__.clear()          // 清零
__DSH_BADGE__.sound()          // 只試聽音效
__DSH_BADGE__.config           // 當前生效的配置

獨立演示頁

倉庫內 demo/index.html 可雙擊打開,加載真實 client.js,用假 sessions 數據驗證角標與音效。帶 ?auto=1 可自動跑一遍「開始回合 → 結束回合」並輸出報告。

任務欄演示(Windows)

不裝進 profile 也可單獨看任務欄效果:

npm run demo:taskbar

助手會把計數推到 1、2、3,停兩秒再清掉。

適用場景與注意

適合誰: 長時間讓 DSH 在後臺跑回合、需要像 ChatGPT 一樣用角標和短促提示音提醒「又完成一輪」的開發者;Windows 用戶若常最小化窗口,任務欄數字角標比只看標籤頁更直觀。

權限與安全: 插件隨當前 DSH profile 與宿主進程運行;Windows 任務欄能力會拉起常駐 PowerShell 助手(taskbar.ps1),按 HWND 與進程名操作任務欄按鈕。安裝前應閱讀 GitHub 源碼 與 MIT 許可證,確認符合你的部署策略。

已知限制(README):

  • 任務欄角標僅 Windows,依賴 PowerShell 助手;macOS / Linux 無任務欄覆蓋。
  • 未讀數是全局計數,不按會話拆分。
  • Electron 的 setOverlayIcon 在本架構下不可用,故採用跨進程 ITaskbarList3 方案。

社區插件目錄(如 SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;DSH 本身遵循「一切皆插件」的擴展方式,dsh-badge 是其中一條客戶端通知增強路徑。

結尾

dsh-badge 把 ChatGPT 式的未讀角標和回合結束提示音搬到 DeepSeek Harness:標籤 favicon、標題前綴、Web Audio 提示音,以及在 Windows 上的任務欄數字角標。安裝時記得 market 或 npm 裝完後檢查 profile 的 bundles;需要細調時改 cordis.patch.yml 或用 Host 插件管理裏的表單即可。

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

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

小夜