dsh-plugin-session-tags:爲 DSH 會話打上可同步的命名標籤

前言

在 DeepSeek Harness(DSH)裏並行開多個會話時,側邊欄往往只有標題文本,很難一眼區分「這條線在做什麼、做到哪一步」。單靠本地改一行顏色,換設備或新開窗口就對不上。

下面介紹社區客戶端插件 dsh-plugin-session-tags(維護者 owenzhao):用具名標籤描述會話狀態,給側邊欄標題着色,並在懸停卡片上顯示標籤名;定義與分配會持久化,並在多窗口、多設備間通過主機事件流同步。

這是什麼

dsh-plugin-session-tags 是 DSH 的 web 客戶端插件(package.json 中 dsh.client.platform 爲 web)。標籤是命名的,不是一次性色塊:名稱與顏色一起在設置裏定義,會話標題按標籤着色,懸停時顯示標籤文字,形成可跨設備複用的「狀態詞表」。

社區插件目錄由 SkillHub 等站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝前請自行審閱源碼與許可證。插件在當前 dsh 進程權限下運行。

核心功能

側邊欄裏打標籤

  1. 在某一 session 的側邊欄行菜單(...)中打開 標籤,進入選擇器。
  2. 選中已有標籤後,該會話的側邊欄標題會按標籤着色;行懸停卡片上會顯示標籤名稱。
  3. 若需要新標籤:輸入名稱,從六種預設色或自定義顏色中選取,再點 新建並應用,會立刻爲當前會話打上該標籤。

標題着色通過針對 data-row-key="session:<id>" 生成的樣式規則實現;卸載插件後規則移除,恢復默認配色。

在設置裏管理標籤庫

路徑:Settings → Plugins → 會話標籤。可重命名、改色(預設或自定義)、刪除標籤,或添加空標籤條目。

顏色規則

標籤顏色可以是預設名(green、amber、red、blue、purple、gray,隨應用亮暗主題)或顯式 #rrggbb。

持久化與離線

分配與定義默認寫入:

<DSH_HOME>/state/session-tags.json

當主機路由不可達時,瀏覽器會回退到 localStorage。

多窗口與多設備同步

各窗口和設備訂閱主機的 /session-tags/events 事件流;在一臺設備上打的標籤,桌面端無需刷新即可看到。頁面僅在可見時保持流連接;隱藏標籤頁會斷開,再次顯示時新連接的首幀爲當前快照。無法建立流時,客戶端會在下次重連嘗試時拉取 GET /session-tags,退化爲較慢的輪詢而非長期陳舊頁面。

插件佔用的擴展位(資料原文)包括:sidebar.workspaces.session.menu.item(菜單中的「標籤」)、shell.overlay(選擇器)、sidebar.session.row.hover(懸停芯片)、settings.plugins.tab(標籤定義)。

安裝與啓用

桌面端:Plugins → Install,輸入包名 dsh-plugin-session-tags。

Web profile 下可使用資料中的命令:

dsh plugin --profile web add dsh-plugin-session-tags@0.2.3

本地開發時,可將 bundle 指向目錄(資料原文爲 plugin_manager 流程):

plugin_manager install_bundle → /absolute/path/to/dsh-plugin-session-tags

安裝完成後,在支持 web 客戶端的 DSH 環境中啓用插件,即可在側邊欄與設置中看到上述入口。

典型用法

  1. 在設置中爲常用狀態建好標籤(例如按項目或階段命名,並選定顏色)。
  2. 打開目標會話 → 行菜單 → 標籤 → 選擇標籤;或當場 新建並應用。
  3. 在側邊欄通過標題色調區分會話;將指針懸停在行上查看完整標籤名。
  4. 在另一設備或瀏覽器窗口打開同一 DSH 主機,確認標籤與顏色已同步(依賴主機路由與事件流可用)。

主機側 API(供理解同步機制,一般無需手工調用):

GET  /session-tags                                          → { tags, assignments }
POST /session-tags { action: 'assign' }                     → snapshot
POST /session-tags { action: 'createAndAssign', sessionId, tag } → snapshot
POST /session-tags { action: 'tags', tags }                 → snapshot
GET  /session-tags/events                                   → text/event-stream

適用場景與注意

適合誰: 經常在 DSH 中並行多條會話、希望用統一「狀態詞表」在側邊欄快速識別的開發者;需要在手機與桌面之間保持會話標記一致的用戶。

注意:

  • 插件分類爲客戶端,面向 web 平臺;請確認你的 DSH 版本滿足 >= 0.2.2-rc.1。
  • 同步依賴主機 /session-tags 與事件流;路由不通時僅本地 localStorage 兜底,跨設備一致性會受限。
  • 第三方插件,安裝前請閱讀 倉庫源碼 與 MIT 許可證條款。

結尾

dsh-plugin-session-tags 把「命名 + 顏色 + 懸停說明」綁在同一條會話上,並把定義與分配落到 session-tags.json(及事件流),減輕多會話側邊欄難以掃讀的問題。

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

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

小夜