前言¶
在 DeepSeek Harness(DSH)裏同時開多個會話時,常見做法是在側邊欄逐個切換:看狀態、翻歷史、回審批都要進會話本身。若你希望在同一屏裏按「置頂 / 進行中 / 集合」瀏覽多張卡片、卡內讀真實歷史並直接發下一條消息,社區客戶端插件 dsh-topic-wall(維護者 caichangzhan,當前版本 0.4.1,MIT)提供的是「對話牆」界面,而不是替代 DSH 的會話存儲或模型後端。
下面介紹插件定位、已文檔化的能力、安裝方式與使用注意。事實以 GitHub 倉庫 README 爲準;插件也收錄於社區目錄 skillhub.cn(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。
這是什麼¶
dsh-topic-wall 是 DSH 客戶端插件:把 Harness 的多個會話排列成卡片牆,分爲 置頂 → 進行中 → 聊天集合 三段固定順序。不進入原會話頁,也能讀歷史、看運行狀態、處理審批、切換該卡獨立模型,並在卡內通過 session/prompt 發送、session/cancel 停止。
插件通過 cordis.patch.yml 注入客戶端 bundle,依賴當前 DSH 客戶端提供的 sessions、uiSession、uiWorkspace、modelDirectories 等能力。
對話牆佈局與卡片信息¶
三段順序
- 置頂:用戶置頂的會話。
- 進行中:按首次進入該段的順序 FIFO;置頂與會話運行/等待時,可同時出現在置頂與進行中(兩段不互斥)。
- 聊天集合:按工作區「空間」分組,組內網格排列;組可單獨或全部摺疊,摺疊狀態持久化。
每張卡頂部 顯示工作區、狀態、更新時間,以及該會話獨立的模型下拉(DSH 模型按會話存儲,選擇只作用於當前卡對應會話)。
空間組頭「+」:按該空間 workspaceId 新建空會話,不跳轉 DSH 主界面,新會話進入「進行中」。
卡片內聊天與隊列¶
- 讀取真實會話歷史;默認自動加載最近 24 小時,更早內容滾到頂部或點「加載更早」再拉,已加載數據不刪除。
- 消息佈局:左側 agent、右側 user;Enter 發送、Shift+Enter 換行,輸入法組合態不誤發。
- 圖片:按鈕 / 拖拽 / 粘貼,最多 6 張、單張 10MB;歷史裏顯示圖片(需當前模型支持 vision)。
- 運行中發送進入宿主隊列,可展開、原地編輯、轉向、移除、全部轉向;含附件的排隊項只讀。
- 連續工具結果摺疊成一組,組體僅在展開時渲染。
- 審批 / 單選題出現在卡片底部;長審批文字可懸停滾動、點擊展開。
卡片操作與設置¶
每卡 ⋯ 菜單:打開原會話、重命名(卡內聯)、創建分支、歸檔(帶確認);運行中的會話歸檔前會再確認「停止並歸檔」。歸檔後按 workspaces.archivedSessionIds 立即從牆上移除。
設置面板(實時生效,保存寫入 localStorage):主題風格、邊角、列數、空間行數、卡片高度、字號、動效、工具行。
運行日誌:捕獲 window error、未處理 rejection、React 錯誤,以及 prompt / history / queue / approval / model 相關異常;設置齒輪紅點僅表示未讀錯誤。
每張卡有獨立 ErrorBoundary;單卡渲染異常不會拖垮整面牆,卡內提供重試 / 打開 / 歸檔。
三套主題¶
主題只改表面、字體、邊角、消息形態和固定強調色,不改牆的結構。
| 主題 | 要點 |
|---|---|
| iOS | 系統字體、白色圓角卡、iMessage 氣泡、毛玻璃、系統藍;柔和藍色 mesh 背景 + 細點陣;新消息氣泡彈入、按壓回彈、輸入三點動畫。 |
| QQ空間 | 藍白漸變頂欄、圓角白卡、說說式氣泡、空間藍;天空 / 雲層背景;「對方正在輸入」藍色氣泡。 |
| 黑客代碼 | 暗底終端、等寬字體、熒光綠、方角;綠色網格 + 頂部輝光;終端提示符和綠色方塊光標。 |
安裝與啓用¶
插件以當前 DSH 進程權限運行;安裝前應自行查看源碼與 MIT 許可證。安裝命令須來自官方 README,勿憑倉庫名拼接 github:owner/repo 形式。
本地目錄
dsh plugin --profile desktop add /path/to/dsh-topic-wall
或在 DSH 插件 → 添加插件 裏填寫絕對路徑或 tarball 路徑。
Tarball
dsh plugin --profile desktop add /path/to/dsh-topic-wall-0.4.1.tgz
說明:桌面端不加載 Web client HMR。更新 client.js 後需要重啓桌面端;Cmd+R 可能仍使用舊 bundle。
典型用法(可復現流程)¶
- 按上文命令將插件加入 desktop profile 並重啓客戶端(若剛改過客戶端 bundle)。
- 在側邊欄或插件註冊的入口打開對話牆,查看置頂 / 進行中 / 聊天集合三段卡片。
- 在卡內瀏覽歷史、用模型下拉切換該會話模型、在輸入區發送消息或處理底部審批。
- 需要新開同空間會話時,在空間組頭點「+」,新會話出現在「進行中」。
- 在設置裏切換 iOS / QQ空間 / 黑客代碼主題並調整列數、卡片高度等;偏好保存在 localStorage。
兼容與限制¶
- 需要當前 DSH 客戶端提供
sessions、uiSession、uiWorkspace、modelDirectories。 - 圖片能力依賴當前模型是否支持 vision。
- 無自動化 UI 測試;倉庫內
npm test爲靜態冒煙檢查(Node >= 20)。 - macOS / Electron 上 undici
setTypeOfService EINVAL有主機側 guard,默認啓用;可設環境變量DSH_TOPIC_WALL_TOS_GUARD=0關閉。
開發與倉庫結構¶
本地校驗:
npm test
主要文件:client.js(瀏覽器端 main / sidebar.panellist)、index.js(Host 半部與 macOS undici guard)、cordis.patch.yml、locale/*.json、icon.svg;佈局與交互細節見倉庫內 DESIGN.md。
結尾¶
dsh-topic-wall 把多會話管理收斂到一面可配置的對話牆:分段卡片、真實歷史、卡內回覆與審批、按會話切模型、三套主題。適合在 DSH 桌面端並行維護多個智能體會話、又不想頻繁切頁的用戶。