dsh-session-recycle-tools:Web 側欄會話回收站與批量刪除

前言

在 DeepSeek Harness(DSH)Web 界面裏,會話一多,側邊欄會變得難整理。宿主自帶的歸檔會把會話寫入工作區的 workspaces.archivedSessionIds,並共用一套「已歸檔」視圖;若你只想臨時從列表裏清掉一批會話、稍後再恢復,又不想和歸檔邏輯攪在一起,就需要一套獨立於宿主的機制。下面介紹的 dsh-session-recycle-tools(維護者 GitHub 用戶 4wgtty4zm7-a11y,分類爲客戶端插件)在 Web 側欄底部、設置行上方增加兩個入口:批量刪除與回收站,回收列表由插件自行維護,與宿主歸檔互不影響。

這是什麼

一句話:爲 DSH Web 側欄增加「批量移入回收站」和「從回收站恢復或永久刪除」兩個按鈕,數據存在瀏覽器 localStorage,不調用宿主歸檔 API。

插件不向 Cordis 註冊 host 服務、路由或 tool,模型側看不到它;宿主側僅有一條 loader,用於讓 dsh-client-modules 加載 client.js。當前 package 版本爲 0.1.0,許可證 MIT。

側欄大致順序如下(設置行仍爲宿主自帶):

  ☑  Batch delete            <- 本插件
  🗑  Recycle bin            <- 本插件
  ⚙  Settings                <- 宿主

與宿主歸檔的區別

兩者可以並存,彼此不知道對方的存在。

宿主歸檔 本插件回收站
記錄位置 工作區記錄裏的 archivedSessionIds 插件自有列表,鍵名 dsh-session-tools.trash.v1(localStorage)
隱藏方式 宿主過濾行 包裝 uiWorkspace.isSessionVisible,僅對本列表中的 id 返回 false
恢復 通過宿主取消歸檔 從列表中移除 id,會話立即回到側欄
永久刪除 依宿主流程 調用 uiWorkspace.deleteSession(),與會話上下文菜單中的永久刪除相同

移入回收站不會發起歸檔請求;永久刪除纔是調用宿主 deleteSession() 的路徑。正在運行的會話會被拒絕移入回收站,對話框會說明原因,避免會話仍在後臺運行卻從列表消失。若某 id 已從會話列表中完全消失,回收站會在約 60 秒寬限期後自動 prune 該條目。

核心功能

批量刪除(Batch delete)

打開對話框:列出全部會話,按工作區分組,帶搜索框。可勾選單個會話、整組或全選,確認後僅將選中項移入插件回收站(不是永久刪除)。對話框寬度 1240px,標題 20px、描述與會話標題 16px、時間戳與路徑 14px、按鈕 15px,與宿主正文層級一致。

回收站(Recycle bin)

打開對話框:展示回收站中的會話,按工作區分組,最新在前。支持單條恢復、全部恢復、單條永久刪除或清空回收站。

客戶端實現要點

client.js 在 apply() 中取得 uiWorkspace,將 isSessionVisible 替換爲 (id) => trash.has(id) ? false : original(id),並在 ctx.effect 清理時還原;宿主原有過濾(例如工作臺會話過濾)仍經 original(id) 生效。列表變更後會 bump uiWorkspace.sessionVisibility,促使側欄樹重算。若當前 DSH 構建缺少 isSessionVisible,插件仍會記錄列表,並在對話框中提示,而不是靜默不隱藏。

安裝與啓用

在已配置 Web profile 的環境中執行官方安裝命令:

dsh plugin --profile web add github:4wgtty4zm7-a11y/dsh-session-recycle-tools

安裝後重啓正在運行的 DSH Web 服務。不會新增 host tool、路由或配置文件。

兼容性:需要能通過 dsh-client-modules 提供 client 插件,且暴露帶 isSessionVisible、sessionVisibility、deleteSession 的 uiWorkspace。Node 引擎要求 >=18;peer 依賴 @deepseek-ai/cordis ~4.0.5。

典型用法

  1. 安裝並重啓 Web 服務後,打開 DSH Web 界面,在左下側欄設置行上方應看到批量刪除與回收站入口。
  2. 需要整理側欄時,點 Batch delete,按工作區勾選會話,確認移入回收站;側欄中對應行會隱藏,會話內容未刪。
  3. 誤刪或臨時隱藏後,點 Recycle bin,選擇恢復一條或全部;若確定不再需要,使用永久刪除或清空回收站(永久刪除走宿主 deleteSession())。

適用場景與注意

適合長期在本地 Web 端使用 DSH、會話數量多、希望與宿主「歸檔」分開做「軟隱藏 + 可恢復」的用戶。插件以當前 DSH 進程及瀏覽器同源策略運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。

回收站列表保存在當前源(例如 http://127.0.0.1:<port>)的 localStorage 中。清除站點數據或更換端口會清空回收站列表,後果只是那些會話重新出現在側欄,不會丟失會話內容本身。

DSH 生態強調「一切皆插件」;社區插件目錄託管在獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件星標數爲 0(以目錄頁信息爲準),不代表功能不可用,使用前仍以 README 與源碼爲準。

鏈接

經過上面的步驟,你可以在 Web 側欄用獨立於歸檔的回收站批量隱藏會話,並在需要時恢復或按宿主方式永久刪除。

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

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

小夜