前言¶
在 DeepSeek Harness(DSH)裏,會話歸檔後會從項目側欄消失,但磁盤上仍保留會話日誌與相關緩存。Harness 本身沒有專門界面去查看這些「已歸檔」條目,也無法在設置裏一鍵復原或連同日誌一起刪掉。若你長期在同一臺機器上跑多個項目,歸檔會話會越積越多,佔用 $DSH_HOME 空間,卻難以判斷每條記錄對應哪條會話、佔多少空間、是否還能恢復。
下面介紹的 dsh-archive-manager(倉庫 linanbuan/dsh-archive-manager)是社區維護的客戶端插件:在 DSH 設置裏增加一頁「歸檔會話管理」,列出本機全部已歸檔會話,並支持逐條復原回工作區,或永久刪除會話日誌與投影緩存。維護者爲 linanbuan;包版本在資料中爲 1.0.0,許可證 MIT。插件不聯網、無遙測,只在 Host 側讀本機文件與 Harness 服務。
這是什麼¶
插件定位可以概括爲:DSH 桌面端設置面板插件,補全「已歸檔會話」的管理入口。
- 入口位置:設置 → 歸檔會話管理(
settings.section,order: 100,排在內置頁面與其它插件之後;行 id 爲archive-manager)。 - 運行時依賴:無額外 npm 運行時依賴;瀏覽器半邊僅
require('react')。 - 與官方關係:非 DeepSeek 官方插件;依賴 Harness 內部接縫(如
workspaceRegistry、sessionPersistence等),Harness 升級後可能失效。
核心功能¶
列表與統計¶
頁面頂部展示彙總:已歸檔數量、可刪除數量、運行中數量、磁盤佔用、數據時間。
每條已歸檔會話顯示:
- 會話標題(來自
sessionQuery的標題快照,超時或失敗時可能顯示「無標題」); - 所屬項目;
- 佔用大小;
- 創建時間、最後寫入時間;
- 磁盤目錄(展示爲
~/.dsh/...或$DSH_HOME/...,不把本機絕對路徑送到瀏覽器)。
若歸檔記錄已無對應日誌,仍會列出並標爲「僅歸檔記錄」,允許從歸檔列表移除而不刪文件。
復原回工作區¶
點擊 復原回工作區 時,Host 調用 ctx.workspaceRegistry.unarchiveSession(id):從歸檔集合移除該 id。會話在工作區中的記賬槽位一直保留,因此會回到原來的項目與位置。此操作可再次歸檔,不是刪數據。
永久刪除¶
點擊 永久刪除 時,行內二次確認(非彈窗)。成功後操作結果條會列出本次真正被移除的路徑,而不是籠統提示「已刪除」。
刪除步驟(資料中的確切含義):
- 刪除會話日誌目錄
~/.dsh/sessions/<項目鍵>/<會話 id>/; - 刪除投影緩存
~/.dsh/storages/session_projcache/sessions/<會話 id>.json; - 調用
unarchiveSession(id)更新記賬,並廣播api-session/removed,側欄相應行會收起。
不能撤銷:Harness 沒有恢復入口。運行中的會話不能永久刪除(界面會標「運行中」並禁用刪除),需先關閉該會話或重啓應用。
刪除爲何由插件自行實現¶
DSH 的 sessionPersistence 不提供文件路徑與刪除 API;workspaceRegistry 文檔寫明移除不會刪磁盤數據。因此「永久刪除」是插件按與 DSH JSONL 後端同一套規則(lib/layout.js 中的 projectKey、encodeSegment)推導路徑後,在 Host 側做的文件系統操作,並帶有多條前置校驗(例如 id 必須在歸檔集合中、不能 SESSION_LIVE、路徑必須在 $DSH_HOME/sessions 內且與 header 推導一致等)。任一條件不滿足則拒絕刪除,不改動磁盤。
安裝與啓用¶
先安裝 DSH 桌面端(deepseek.com/download)。本插件爲標準 DSH bundle(package.json 聲明 dsh.bundle.patch 與 dsh.client),任選下列方式之一。
方式一:DSH 桌面端內安裝(推薦)¶
- 側欄 插件 → 添加插件(Add plugin);
- 在輸入框填寫 spec,例如倉庫地址
https://github.com/linanbuan/dsh-archive-manager,或該倉庫的 Source code (zip) 鏈接、本機已存在的目錄絕對路徑,或將來可能的 npm 包名; - 點 安裝,確認包信息後完成安裝;
- 點 立即啓用。
安裝由 Harness 插件管理器寫入當前 profile 的 dsh.profile.bundles,無需命令行或手改 profile。
方式二:交給 Agent 安裝¶
將會話中的 Agent 指向倉庫 URL 或本機目錄,由 Agent 調用 plugin_manager(action: install_bundle),與方式一走同一路徑。
方式三:命令行¶
已安裝 dsh CLI 時:
dsh plugin --profile <profile 名> add <spec>
<spec> 與方式一相同;具體參數以 dsh plugin --help 爲準。
裝上之後¶
- 瀏覽器半邊註冊設置頁,隨啓動圖加載;HMR 更新時通常不必刷新頁面。
- Host 半邊註冊三條
/api/archive/*路由。若安裝提示需重啓,應重啓 DeepSeek Harness 應用(不是僅刷新瀏覽器)。 - 確認運行:側欄 插件 中找到該包,組件狀態應爲「運行中」。
臨時停用可在 profile 的 cordis.patch.yml 或插件頁開關中設置 archive-manager 的 disabled: true;徹底移除用插件頁的 卸載。
插件管理器目前不支持自動更新;升級需先卸載再裝新版。替換已安裝包後,Host 半邊需重啓應用纔會加載新代碼。
典型用法¶
- 打開 DSH 設置,進入 歸檔會話管理。
- 瀏覽列表:根據標題、項目、大小與時間判斷是否需要保留。
- 需要重新出現在項目裏:點該行的 復原回工作區,側欄項目會話列表會恢復該條。
- 確認不再需要且會話未在運行:點 永久刪除,在行內確認;查看結果條中的路徑列表,覈對是否與預期一致。
- 若某條僅爲「僅歸檔記錄」、磁盤上已無日誌:仍可從列表移除歸檔記賬,而不刪文件。
開發者在倉庫內可用自檢腳本驗證 Host/Client 邏輯(不需要網絡與真實 Harness):
node test/selfcheck.mjs
或 pnpm test;全部通過時輸出 19/19 checks passed。
適用場景與注意¶
適合誰
- 長期在單機使用 DSH、頻繁歸檔舊會話的開發者;
- 需要查看
$DSH_HOME裏歸檔佔用、清理無用會話日誌與投影緩存的用戶; - 希望從 UI 復原誤歸檔會話、而不是手改
workspace.json或目錄的人。
使用前請知悉
- 插件以當前 DSH 進程的文件系統權限運行;
$DSH_HOME若位於需提權或受安全軟件鎖定的目錄,刪除可能報EACCES/EPERM。 - 永久刪除無回收站;刪前請確認會話內容不再需要。
- 隻影響本機這一份
$DSH_HOME,不同步其它設備或雲端。 - 資料記載的開發驗證環境爲 DSH
0.1.7-rc.2桌面版(Windows);所依賴 API 爲內部實現,非穩定契約。 - 安裝第三方插件前,建議自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全與合規要求。
社區插件目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本插件是其中針對歸檔會話缺口的一個客戶端擴展。
結尾¶
dsh-archive-manager 把本機已歸檔會話集中到設置裏的一頁:能看標題、項目、大小與時間,能復原回工作區,也能在嚴格校驗後永久刪除日誌與緩存。若你正被「歸檔後找不到、刪不乾淨」困擾,可按上文安裝方式裝入當前 profile,從 設置 → 歸檔會話管理 開始處理。
- 目錄頁:https://www.skillhub.cn/plugins/linanbuan/dsh-archive-manager
- 源碼與說明:https://github.com/linanbuan/dsh-archive-manager