前言¶
在 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。
典型用法¶
- 安裝並重啓 Web 服務後,打開 DSH Web 界面,在左下側欄設置行上方應看到批量刪除與回收站入口。
- 需要整理側欄時,點 Batch delete,按工作區勾選會話,確認移入回收站;側欄中對應行會隱藏,會話內容未刪。
- 誤刪或臨時隱藏後,點 Recycle bin,選擇恢復一條或全部;若確定不再需要,使用永久刪除或清空回收站(永久刪除走宿主
deleteSession())。
適用場景與注意¶
適合長期在本地 Web 端使用 DSH、會話數量多、希望與宿主「歸檔」分開做「軟隱藏 + 可恢復」的用戶。插件以當前 DSH 進程及瀏覽器同源策略運行;安裝前建議自行查看 GitHub 倉庫 源碼與 MIT 許可證。
回收站列表保存在當前源(例如 http://127.0.0.1:<port>)的 localStorage 中。清除站點數據或更換端口會清空回收站列表,後果只是那些會話重新出現在側欄,不會丟失會話內容本身。
DSH 生態強調「一切皆插件」;社區插件目錄託管在獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件星標數爲 0(以目錄頁信息爲準),不代表功能不可用,使用前仍以 README 與源碼爲準。
鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/4wgtty4zm7-a11y/dsh-session-recycle-tools
- GitHub:https://github.com/4wgtty4zm7-a11y/dsh-session-recycle-tools
經過上面的步驟,你可以在 Web 側欄用獨立於歸檔的回收站批量隱藏會話,並在需要時恢復或按宿主方式永久刪除。