dsh-tab-indicator:在瀏覽器標籤頁上顯示 DSH 運行與完成狀態

前言

用 DeepSeek Harness(DSH)的 Web 界面跑智能體時,頁面往往佔着一個標籤頁。切到其他標籤處理別的事,很難一眼判斷:後臺是否還有 root session 在跑、剛纔那輪是否已經結束。反覆切回 DSH 頁確認,會打斷手頭工作。

下面介紹社區插件 dsh-tab-indicator(維護者 zz0-0,分類:客戶端)。它在 DSH 瀏覽器標籤的 favicon 和標題上反映全局 running/done 狀態,不輪詢、不訪問外網,也不需要 DeepSeek API Key。插件以 DSH「一切皆插件」的方式接入 Web profile;目錄頁見 SkillHub,源碼在 GitHub。

這是什麼

dsh-tab-indicator 是一個 DSH Web 插件(當前 package 版本 0.1.0,許可證 MIT)。Host 側跟蹤正在運行的 root agent,通過 Server-Sent Events(SSE)把快照推給注入到 DSH 首頁的瀏覽器腳本;腳本在頁面 favicon 上繪製藍色數量角標,並在任務完成時用綠色對勾與標題裝飾提示。計數針對 整個 DSH host,不限於當前 workspace;子 agent 的 turn 計入其 root turn,不會單獨加一。

核心功能

運行中的數量角標

只要有一個或多個 root session 在運行,favicon 上會顯示藍色數字角標(1、2 … 9+)。僅有一個運行中的 session 時,標題保持原樣;多於一個時,標題會增加 (N)。設計上 不用標題圓點,用數字表達併發數。

完成時的對勾

某次 run 結束時,標籤頁 favicon 約 1 秒 顯示綠色對勾。若仍有其他 run 在跑,角標會恢復;若已全部結束,對勾僅在 標籤頁被隱藏或窗口失焦 時保留,回到該標籤後會清除。

靜態 favicon 與主題

角標只在 運行數量或 running/done 狀態變化 時重繪 favicon,避免 Chrome 把每次 link rel="icon" 變更當作新加載、導致書籤欄圖標不停閃爍。插件會跟隨瀏覽器當前淺/深色 favicon 變體,空閒時恢復原始 <link> 元素。

同步方式與權限

Host 通過 GET /dsh-tab-indicator/events 推送完整快照(text/event-stream),頁面在 host 重啓後會自動跟上;無輪詢。SSE 與 Web API 一樣受瀏覽器 cookie 保護。插件 不做出站請求,不採集遙測,不處理憑據。

計數粒度與限制

計數是 turn 級別:比 turn 存活更久的後臺 job 不會計入。Host 每 2 秒與 ctx.agents.roots() 對賬,修復插件重載時可能漏掉的狀態。頁面標題由 React DocumentTitle 管理,插件用 MutationObserver 在應用改寫標題後重新應用 (N) / ✓ 裝飾。

環境要求

  • DSH 0.2.1.x,且使用 web profile;README 寫明在 0.2.1-rc.3 上測試過。
  • 開發與測試需 Node.js ^22.19.0 || >=24.0.0(與 DSH 要求一致)。
  • 不需要 DeepSeek API Key。

安裝與啓用

從 GitHub 安裝並重啓 Web 服務(以下命令來自項目 README):

dsh plugin --profile web add github:zz0-0/dsh-tab-indicator
systemctl --user restart dsh-web

也可使用顯式 git URL:

dsh plugin --profile web add git+https://github.com/zz0-0/dsh-tab-indicator.git
systemctl --user restart dsh-web

安裝後應對 DSH Web 頁 硬刷新(Ctrl/Cmd + Shift + R)。插件會把瀏覽器腳本注入 DSH 首頁,首次必須刷新才能加載。systemctl 行假設使用 Linux 用戶服務;若手動運行 dsh web,應重啓對應進程而非 systemctl。

本地開發可鏈接目錄(將路徑換成你的檢出位置):

dsh plugin --profile web add link:/path/to/dsh-tab-indicator-plugin
systemctl --user restart dsh-web

更新與移除:

dsh plugin --profile web add github:zz0-0/dsh-tab-indicator
systemctl --user restart dsh-web
dsh plugin --profile web remove dsh-tab-indicator
systemctl --user restart dsh-web

典型用法

安裝並硬刷新後,無需額外配置項:照常打開 DSH Web 界面即可。

  1. 啓動一個或多個 root session 後,觀察標籤 favicon 上的藍色數字;多 session 時標題會出現 (N)。
  2. 切到其他標籤或窗口,通過角標判斷 DSH 是否仍在跑;其他 workspace 裏的 run 同樣計入。
  3. 某次 run 結束時留意約 1 秒的綠色對勾;若你仍停留在該標籤且已無其他 run,對勾行爲會按 README 描述清除。

Host 還會在首頁注入:

<script defer src="/dsh-tab-indicator/client.js?v=1"></script>

SSE payload 形態示例(字段以實際爲準):

GET /dsh-tab-indicator/events   text/event-stream
data: {"type":"state","running":1,"sessions":["…"],"at":…}

適用場景與注意

適合:長時間用 DSH Web 界面、常把 DSH 標籤留在後臺、需要 全局 root session 併發感知,又不想開輪詢或第三方服務的開發者。

安裝前請知悉:插件與當前 dsh 進程同權限 運行,會註冊 host 路由並改寫首頁注入腳本。安裝前應閱讀 源碼與 MIT 許可證,確認可接受其行爲。

排查(摘自 README):安裝後無角標——重啓 dsh-web 並硬刷新,確認 profile 已列出 dsh-tab-indicator。對話結束但數字仍在——檢查是否還有其他 root session 或 turn;必要時重啓 dsh-web。favicon 未恢復——刷新頁面;書籤圖標可能緩存滯後。角標顯示 9+ 表示超過九個 root session 在運行。favicon 不會動畫,這是有意設計(見 README「Why the favicon is static」)。

結尾

dsh-tab-indicator 把 DSH 智能體的 running/done 狀態落到瀏覽器標籤的 favicon 與標題上,SSE 推送、本地運行、無 API Key,適合作爲 Web 側的小而專的客戶端插件。

  • 目錄頁:https://www.skillhub.cn/plugins/zz0-0/dsh-tab-indicator
  • GitHub:https://github.com/zz0-0/dsh-tab-indicator
羽毛球分组比赛记分
小程序二维码

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

小夜