前言¶
DeepSeek Harness(DSH)裏常跑長任務。切到別的窗口後,任務結束往往只反映在側邊欄裏一個小圓點,操作系統側沒有通知、任務欄或 Dock 角標,也不容易從標題上看出來——只能想起來再回應用裏查。
dsh-turn-badge 是社區維護的客戶端插件,把「一輪從 running 到 idle」處理成類似 Codex 的體驗:原生通知、應用圖標角標、窗口標題前的 ● 標記;回到窗口時一併清除。下面介紹它做什麼、怎麼裝、怎麼配。
這是什麼¶
- 名稱:
dsh-turn-badge(npm 包名與插件 id 相同) - 維護者:Drifter-yh
- 分類:客戶端(
web/desktopprofile) - 許可證:MIT
- 歸屬說明:社區插件,與 DeepSeek AI 無官方從屬關係;目錄見 SkillHub,源碼見 GitHub。
一輪結束的定義:uiSession.sessionStatus 裏該會話從 running 變爲 idle。插件不讀消息正文或工具輸出,只依賴客戶端已有的會話狀態與會話標題。
核心功能¶
- 原生通知 — 標題形如 Task finished — “Weekly report”(含會話標題)。在 workspace 服務可用時,點擊可聚焦應用並打開對應會話。
- 應用圖標角標 — 通過 Badging API(
setAppBadge)顯示未讀會話數;在支持的 Chromium 載體上還有標籤頁角標(setClientBadge)。 - 標題圓點 — 在
document.title前加●,作爲各處都有的可見兜底。 - 聚焦即清 — 回到 Harness 窗口時清除角標、標題標記和相關 toast。
行爲細節(資料原文):
- 若你正在看的就是剛結束的那條會話,默認保持安靜。
- 默認忽略 subagent 會話(
skipSubagents: true)。 - 角標按不同會話計數,不是按 turn 次數。
- 無遙測、無額外 HTTP;host 半邊 intentionally 爲空,只爲在 Loader 中激活客戶端 bundle。
安裝與啓用¶
npm 發佈版本爲 dsh-turn-badge@0.1.0;也可從 GitHub 安裝相同源碼。
# 從 npm
dsh plugin --profile <your-profile> add dsh-turn-badge
# 從 GitHub(源碼一致)
dsh plugin --profile <your-profile> add github:Drifter-yh/dsh-turn-badge
部分構建在 Settings → Plugins 裏也有插件註冊表入口。
安裝後重啓 Harness 一次:host 在啓動時讀取 profile。
首次點擊或按鍵會請求通知權限。macOS 上還需在 系統設置 → 通知 中允許 DeepSeek Harness。
兼容性(package.json / README):Harness >=0.2.2-rc.1 <0.2.3-0,已在 0.2.2-rc.1 desktop profile 驗證;需要標準 Web 應用裏的 uiSession 與 sessions 客戶端服務。
配置¶
設置存在 localStorage,可在 DevTools 控制台修改後刷新頁面:
localStorage.setItem('dsh-turn-badge.settings', JSON.stringify({
enabled: true, // 總開關
toast: true, // 系統通知
badge: true, // 圖標 / 標籤角標
titleDot: true, // 標題 "● " 兜底
notifyWhenFocusedOtherSession: true, // 聚焦在別的會話時仍提醒
skipSubagents: true // 忽略 subagent 回合
}))
恢復默認:localStorage.removeItem('dsh-turn-badge.settings')。
調試輔助:
__dshTurnBadge.preview() // 觸發一次示例通知 + 角標
__dshTurnBadge.clear() // 清除角標、標記和 toast
平臺與侷限¶
能力基於標準 Web API,無 Windows / macOS 專用分支:
| 能力 | Windows | macOS |
|---|---|---|
| 原生通知 | 通知中心 | 通知中心 |
| 應用圖標角標 | Badging API(PWA / 支持該 API 的 Chromium) | Badging API(支持該 API 的 Chromium / Safari 載體) |
| 標籤角標 | Chromium setClientBadge |
Chromium setClientBadge |
| 標題圓點 | 各載體 | 各載體 |
README 寫明:DSH 桌面端任務欄 / Dock 角標取決於 Electron 對 Badging API 的支持;頁面插件無法直接調 Electron 主進程。角標不可用時,通知與標題圓點仍可用;已安裝的 PWA 上角標表現通常最好。
其他限制:
- 頁面需保持活躍;瀏覽器標籤被系統凍結可能延遲提醒。
- running → idle 一律視爲「完成」,失敗與成功外觀相同。
- 標題被殼或其它插件改寫時,圓點可能在導航瞬間閃一下。
排錯可參考 README 表:無通知查權限與勿擾;無紅點用 PWA 或依賴標題圓點;全無則重啓並看控制台 [dsh-turn-badge]。
適用場景與注意¶
適合長期在 DSH 裏跑 Agent、經常切窗口、希望用系統通知和角標收工提醒的開發者。插件在當前 DSH 客戶端進程裏運行,只讀會話狀態與標題;安裝前可按習慣查看 SECURITY.md 與 MIT 許可證。
DSH 生態主張「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,不是官方應用商店。
結尾¶
dsh-turn-badge 用客戶端訂閱 sessionStatus 的 running → idle,把回合結束推到 OS 通知、Badging 與標題標記,並在重新聚焦時清理,長任務時少漏一眼側邊欄。