在 DeepSeek Harness (DSH) 的日常使用中,頻繁重複的工作流需要頻繁切換會話。當側邊欄會話列表較長時,快速定位活躍會話變得困難。fallow5/dsh-pin-sessions 插件通過將活躍會話固定到側邊欄頂部並集中管理歸檔會話,解決了這一導航問題。
插件定位¶
這是一個 DSH web 插件,允許用戶將活躍會話固定到側邊欄頂部,並提供歸檔面板以管理被隱藏的會話。
核心功能¶
-
固定與取消固定
- 將會話固定到側邊欄頂部,同時從工作區瀏覽器中隱藏該會話。
- 取消固定會將會話恢復到工作區瀏覽器中。
-
歸檔面板
- 提供設置面板用於管理歸檔會話。
- 支持批量刪除、逐行恢復、按工作區分組以及每頁 20 條的分頁顯示。
-
上下文菜單集成
- 通過
@baihejiangnan/dsh-session-context-menu擴展右鍵菜單,提供固定/取消固定的操作選項。
- 通過
-
設計邏輯
- 固定即歸檔:固定操作調用
workspaceRegistry.archiveSession()將會話從工作區瀏覽器中隱藏;取消固定調用unarchiveSession()恢復會話。
- 固定即歸檔:固定操作調用
安裝與構建¶
在安裝前,請確保已安裝 Node.js (>=20) 和 pnpm。
cd dsh-pin-sessions
pnpm install
pnpm run build
安裝命令:
dsh plugin --profile web add /path/to/dsh-pin-sessions
依賴與架構¶
依賴項¶
該插件依賴以下包:
* 運行時依賴:@baihejiangnan/dsh-session-context-menu(用於上下文菜單)。
* DSH 核心包:@deepseek-ai/cordis、@deepseek-ai/dsh-storage-domain、@deepseek-ai/dsh-typert-protocol、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-slots、@deepseek-ai/dsh-client-ui-sidebar、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-client-ui-primitives、@deepseek-ai/schemastery。
架構設計¶
插件採用標準的 DSH 插件拆分結構:
* 主機側:負責存儲管理(pin_sessions 域)和 TYPERT 遠程服務定義(PinsRuntime)。包含 8 個 TYPERT 方法:list、pin、unpin、toggle、isPinned、deleteSessions、listArchived、unarchiveSession。
* 客戶端側:負責 UI 渲染。通過 window.__ModuleLoader__.load 包裝器加載,並將 PinnedSection(固定區)和 ArchiveSection(歸檔區)渲染到側邊欄中。
注意事項¶
- 服務端變更:主機側代碼變更後,需要重啓 DSH 服務器才能生效。
- 客戶端變更:客戶端代碼變更後,需要刷新瀏覽器頁面才能生效。
- 前置依賴:必須安裝
@baihejiangnan/dsh-session-context-menu才能使用右鍵菜單集成功能。
總結¶
該插件通過將活躍會話固定到頂部並提供集中的歸檔管理界面,優化了 DSH 側邊欄的交互體驗。適合需要頻繁在多個特定工作流之間切換的用戶使用。