dsh-session-batch-manager:DSH 側欄批量會話管理與 Session 儀表盤

前言

在 DeepSeek Harness(DSH)裏用 Web UI 管本地會話時,側欄默認只能逐條歸檔,沒有批量操作,也沒有把會話刪掉的主入口。會話一多,想一次性歸檔或清理舊記錄,只能一條條點;想對比各會話用了哪個模型、token 和緩存、上下文還剩多少,也缺少一張總覽表。社區維護者 mars401 的 dsh-session-batch-manager 針對這兩塊空白:側欄多選後批量歸檔、恢復與物理刪除,並提供一個全屏 Session management 面板,把模型、token 分桶、緩存讀寫和上下文壓力可視化出來。

這是什麼

dsh-session-batch-manager 是面向 DSH 的 Web 客戶端插件(倉庫 mars401/dsh-session-batch-manager),在 host 側提供刪除路由與統計掃描,在 GUI 側擴展側欄與會話管理面板。插件以 MIT 許可證發佈,當前 package 版本爲 0.1.1,要求 DSH >= 0.2.1;README 註明在 DSH 0.2.2-alpha.2(Web UI、dev sandbox)上做過驗證。倉庫內已提交 lib/ 預構建產物,安裝時無需本地 build。

核心功能

側欄批量管理

側欄底部有兩個入口按鈕:Batch(清單圖標)切換多選模式;Session management(儀表圖標)打開或關閉全屏管理面板。

進入 Batch 模式後,每行會話會出現複選框(默認隱藏)。在該模式下點擊整行即可切換選中;打開會話、雙擊重命名、拖拽排序以及 Enter/Space 等行爲會被批量選擇接管。退出 Batch 模式後,已選中的高亮和底部浮動工具欄仍會保留;執行任意批量操作(歸檔 / 恢復 / 刪除)完成後會自動清空選擇,也可用工具欄上的 Clear 手動清空。

只要至少選中一條會話,側欄底部會出現浮動工具欄(不限於 Batch 模式),顯示選中數量,並提供 Select all、Clear、Archive(若所選全部已歸檔則變爲 Unarchive)、Delete(先確認)以及在 Batch 模式下才有的 Exit。

批量歸檔時若遇到仍在運行的會話,結果提示會單獨列出,並提供與 DSH 原生歸檔對話框類似的 Stop and archive N running sessions 一鍵重試。

Delete 會先彈出確認框列出目標會話,確認後走 host 物理刪除 JSONL 日誌目錄,並廣播 api-session/removed,各已連接 GUI 會立即移除對應行;客戶端另有 tombstone 機制避免已刪行短暫復現(詳見倉庫「Safety and behavior」一節)。

部分 DSH 構建若自帶上下文菜單服務,插件會貢獻 Batch select sessions 菜單項;在缺少該服務的 0.2.2-alpha.2 上該入口不會出現,其餘功能不受影響。

Session management 面板

全屏 Session management 面板會掃描本機全部本地會話,呈現六列表格:複選框 / 會話標題(含 running、subagent、archived、pinned 等標記)/ 模型(provider/model)/ token 用量(四桶合計,單元格 tooltip 可展開 uncached input、cache read/write、output)/ cache read · write / 上下文壓力百分比(進度條,≥ 90% 時警告色)。

頂部有四個篩選 chip:All / Main / Subagents / Archived,並顯示實時數量;切換篩選會清空面板內獨立的選擇集(與側欄選擇無關)。面板內可複用與側欄相同管線的批量歸檔、恢復與刪除。

首次加載會對全部日誌做一次掃描:先顯示骨架行,再按從新到舊追加行,待處理數量遞減並顯示細進度條;之後僅重放 revision 變化的會話。統計路由採用 fire-and-forget 掃描,不阻塞響應。面板打開時每約 5 秒輪詢一次(可通過 bundle 層配置項 statsPollIntervalMs 覆蓋);瀏覽器標籤隱藏時可暫停;面板關閉時 host 無額外輪詢開銷。單條日誌損壞時該行顯示警告圖標,數值列顯示「—」,不拖垮整張表;若 host 的 sessionQuery 不可用,面板會降級爲列表加批量操作。

安裝與啓用

Web 側通過 CLI 從 GitHub 安裝(desktop profile 由官方 Desktop 應用管理,不宜用常規 dsh CLI 改;Desktop 用戶應在應用內 Plugins 安裝):

dsh plugin --profile web add github:mars401/dsh-session-batch-manager

安裝後重啓 DSH Web。若瀏覽器仍加載舊客戶端包,用 Ctrl+Shift+R 強制刷新。

可用 status 路由自檢(端口換成你的 DSH Web 端口):

curl -s http://127.0.0.1:<your-dsh-web-port>/dsh-session-batch-manager/v1/status
# {"ok":true,"service":"dsh-session-batch-manager","version":"0.1.1"}

可選配置寫在 bundle 的 cordis.patch.yml 中,例如:

Key 默認值 說明
routeBase /dsh-session-batch-manager/v1 Host 路由前綴,注入頁面爲 window.__DSH_SESSION_BATCH_MANAGER__
maxBatchSize 200 單次刪除請求允許的會話 ID 上限
trustedHosts [] host fence 額外信任域名(非 loopback 部署時可能需要)
statsPollIntervalMs (見倉庫配置表) 管理面板統計輪詢間隔

具體默認值以倉庫 README 與 cordis.patch.yml 爲準。

典型用法

  1. 在 DSH Web 側欄底部點 Batch,勾選要處理的會話;在浮動工具欄選 Archive、Unarchive 或 Delete,按提示確認。若歸檔被運行中會話阻塞,在結果通知裏使用 Stop and archive 重試。
  2. 點 Session management 打開全屏表,用 All / Main / Subagents / Archived 縮小範圍,查看模型與 token、緩存、上下文壓力;在表內勾選後做批量歸檔或刪除。
  3. 將鼠標懸停在 token 用量單元格上,查看各 bucket 的 tooltip 明細。

本地開發時可在倉庫內 pnpm install、pnpm build,再用本地路徑代替 GitHub spec 安裝:

dsh plugin --profile web add <path-to-this-repository>

適用場景與注意

適合長期在 DSH Web 上維護大量本地會話、需要批量歸檔或物理刪除、或需要橫向對比 token 與上下文佔用的開發者。批量刪除不可恢復,操作前務必覈對確認框中的會話列表。

DSH 生態強調「一切皆插件」;SkillHub 目錄頁 是社區索引站點,與 DeepSeek / 幻方無官方從屬關係。插件在 當前 dsh 進程權限 下運行,安裝前請自行審閱 GitHub 源碼 與 MIT 許可證。

結尾

dsh-session-batch-manager 補上了 DSH 原生 GUI 在側欄批量歸檔/刪除與會話級資源可視上的缺口:多選工具欄加全屏 Session management 儀表盤,並與 host 刪除、統計掃描打通。目錄頁:https://www.skillhub.cn/plugins/mars401/dsh-session-batch-manager;源碼與完整說明:https://github.com/mars401/dsh-session-batch-manager。

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

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

小夜