前言¶
DeepSeek Harness(DSH)自帶會話歸檔:Workspace 註冊表維護全局 archivedSessionIds,客戶端側欄與「篩選會話」視圖選項會據此展示已歸檔對話。官方能力刻意不包含收藏、單條永久刪除、複製會話 ID 與轉錄路徑,也沒有按閒置時長批量歸檔;已歸檔對話也無法直接打開,需先取消歸檔。
側欄對話一多,想標記常看的會話、清理長期不用的記錄、或把 ID 與文件路徑交給腳本處理,往往要在文件系統與 UI 之間來回切換。dsh-archive-favorites-forge 通過文檔化的客戶端插槽掛接在現有歸檔 UI 之上,不修改官方源碼,爲對話增加收藏、複製、刪除、超時批量歸檔與收藏篩選等能力。
這是什麼¶
dsh-archive-favorites-forge 是維護者 loyalchiiina 發佈的 客戶端 類 DSH 插件(npm 包名 dsh-archive-favorites-forge,當前版本 0.24.4,MIT 許可證)。它在官方已實現的歸檔能力上做 additive slot extensions:host 半部(lib/index.js)負責收藏持久化、路徑解析、JSON 路由與帶護欄的刪除/歸檔;client 半部(lib/client.js)向官方插槽註冊菜單項、設置頁與行內操作。插件不寫入任何官方文件。
核心功能¶
下面按 UI 位置歸納 README 中已說明的能力。
側欄會話行與「…」菜單¶
- 收藏對話:已歸檔或未歸檔均可收藏;「…」菜單項與行內懸停 ☆,星標樂觀更新。
- 複製 ID + 路徑:菜單一鍵複製會話 ID 與轉錄文件絕對路徑(兩行文本)。
- 單條永久刪除:非收藏對話可永久刪除,需二次確認;成功後側欄行立即移除(host 發出
api-session/removed)。
收藏集合寫入 host 側文件,而非渲染進程 localStorage(多 origin 會各存一份)。路徑爲:
~/.dsh/data/dsh-archive-favorites-forge/favorites.json
視圖選項 → 篩選會話¶
在官方「篩選會話」組中增加兩行:僅顯示收藏(已歸檔)、僅顯示收藏(未歸檔)。該菜單無官方插槽,插件通過 role / aria / data-row-key 定位官方篩選項並克隆一行,不依賴 CSS module 哈希。
設置 → 歸檔收藏¶
- 超時批量歸檔:將閒置超過 N 小時的未歸檔對話一次性歸檔,可撤回。
- 導出清單:製表符分隔的 txt,字段含對話名稱、對話 ID、所屬工作區、閒置時長、最後活動時間;可複製路徑或在文件管理器中打開所在文件夾。
- 收藏列表:展示收藏及歸檔狀態。
- 批量刪除:永久刪除「已歸檔且未收藏」的對話。
刪除護欄(host 側)¶
本代 Harness 無官方 session-delete RPC;刪除即移除 ~/.dsh/sessions/ 下對應 artifact 目錄,不可恢復。host 在刪除前檢查:
- 已收藏 ID 直接拒絕;
- 解析路徑超出 sessions 根目錄拒絕;
- 符號鏈接拒絕;
- sessions 根目錄本身拒絕;
- 單次請求受
maxDeletePerCall上限約束。
每條 ID 單獨報告,一條失敗不中斷整批。
其他說明(來自 README Notes):會話 ID 形式爲 session-<uuid>,舊目錄可能爲 <uuid> 或 session-<uuid>,插件經 normaliser 與 resolver 兼容;空白 provisional 會話不參與閒置池與批量刪除;候選列表與側欄實際展示交集,無 cwd 的已歸檔會話不計入。
安裝與啓用¶
安裝命令(README 原文):
dsh plugin --profile <profile> add dsh-archive-favorites-forge
將 <profile> 換成你的 DSH profile 名稱。安裝後 完全退出並重新打開 DSH;本代 host 半部無 watcher,客戶端 bundle 在啓動時快照,僅刷新頁面 不會 加載新版本。
可選配置(寫入插件 config):
| 鍵 | 默認值 | 含義 |
|---|---|---|
enabled |
true |
host 路由總開關 |
maxDeletePerCall |
500 |
單次刪除請求硬上限 |
示例:
- id: dsh-archive-favorites-forge
config:
maxDeletePerCall: 200
peer 依賴表明插件面向 @deepseek-ai/dsh 的 >=0.1.7-rc.1 <0.2.0-0 || >=0.2.0-rc.1 範圍;README 徽章標註 DSH ≥ 0.2.0-rc.2。
典型用法¶
- 標記常看對話:在側欄行懸停點擊 ☆,或打開「…」選擇收藏;需要精讀已歸檔收藏時,用「視圖選項 → 篩選會話 → 僅顯示收藏(已歸檔)」縮小列表,再按需取消歸檔後打開(已歸檔無法打開是官方行爲)。
- 對接腳本或排錯:在「…」選複製 ID + 路徑,將 session id 與轉錄絕對路徑粘貼到終端或腳本。
- 清理閒置會話:打開 設置 → 歸檔收藏,配置閒置小時數後執行超時批量歸檔;確認無誤後可導出 txt 清單留檔,或對「已歸檔且未收藏」項使用批量刪除;單條清理可用「…」中的永久刪除(收藏項會被 host 拒絕)。
- 控制刪除規模:若單次清理量很大,在 config 中調低
maxDeletePerCall,分多次執行批量刪除。
適用場景與注意¶
適合誰:長期在 DSH 中積累大量 Workspace 對話、需要收藏標記、路徑導出、閒置歸檔與可控刪除的開發者;希望擴展官方歸檔而不 fork 客戶端 UI 的用戶。
權限與安全:插件以當前 DSH 進程權限運行,刪除操作直接作用於 ~/.dsh/sessions/ 下目錄,不涉及項目工作區,但轉錄與會話數據會永久丟失。安裝前請閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認行爲符合預期。
生態說明:DSH 社區插件目錄託管於獨立站點(如 SkillHub),與 DeepSeek / 幻方無官方從屬關係;本文描述的能力均來自插件 README 與 package 元數據,使用前請以倉庫最新文檔爲準。