dsh-archive-manager:本機已歸檔會話的列表、復原與永久刪除

前言

在 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。會話在工作區中的記賬槽位一直保留,因此會回到原來的項目與位置。此操作可再次歸檔,不是刪數據。

永久刪除

點擊 永久刪除 時,行內二次確認(非彈窗)。成功後操作結果條會列出本次真正被移除的路徑,而不是籠統提示「已刪除」。

刪除步驟(資料中的確切含義):

  1. 刪除會話日誌目錄 ~/.dsh/sessions/<項目鍵>/<會話 id>/;
  2. 刪除投影緩存 ~/.dsh/storages/session_projcache/sessions/<會話 id>.json;
  3. 調用 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 桌面端內安裝(推薦)

  1. 側欄 插件 → 添加插件(Add plugin);
  2. 在輸入框填寫 spec,例如倉庫地址 https://github.com/linanbuan/dsh-archive-manager,或該倉庫的 Source code (zip) 鏈接、本機已存在的目錄絕對路徑,或將來可能的 npm 包名;
  3. 點 安裝,確認包信息後完成安裝;
  4. 點 立即啓用。

安裝由 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 半邊需重啓應用纔會加載新代碼。

典型用法

  1. 打開 DSH 設置,進入 歸檔會話管理。
  2. 瀏覽列表:根據標題、項目、大小與時間判斷是否需要保留。
  3. 需要重新出現在項目裏:點該行的 復原回工作區,側欄項目會話列表會恢復該條。
  4. 確認不再需要且會話未在運行:點 永久刪除,在行內確認;查看結果條中的路徑列表,覈對是否與預期一致。
  5. 若某條僅爲「僅歸檔記錄」、磁盤上已無日誌:仍可從列表移除歸檔記賬,而不刪文件。

開發者在倉庫內可用自檢腳本驗證 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜