dsh-session-archive:給 DeepSeek Harness 歸檔會話一個管理出口

DeepSeek Harness (DSH) 支持歸檔會話,但官方不支持刪除。sessionPersistence 只有 create/open/flush/stat/list 接口,ctx.fs 也沒有刪除動詞。歸檔之後想清掉一個會話,沒有出口。dsh-session-archive 插件把出口補上。

核心功能

給歸檔會話一個管理頁面。它可以列出歸檔會話,按最後活動時間排序;將已歸檔會話恢復到側邊欄;以及徹底刪除已歸檔會話。

插件運行在 DSH 的 Host 進程中,Host 半邊通過兩個同源路由處理請求:GET /dsh-session-archive/archived 和 POST /dsh-session-archive/delete。Client 半邊不引用任何宿主包,樣式只使用 --dsw-* 主題令牌,因此深淺色模式自動跟隨。

安裝

插件已發佈到 npm。

安裝前請確保 DeepSeek Harness 完全退出。應用運行時 profile 的 package.json 是被鎖住的,命令行操作拿不到鎖。

dsh plugin --profile desktop add dsh-session-archive

如果 profile 不叫 desktop,請替換後面的名字。不想用命令行,也可以走界面:側邊欄 → Plugins → Add plugin,填包名。

安裝完成後刷新頁面。以後更新時,只改 client.js 刷新頁面即可;如果修改了 index.js(Host 半邊),需要重啓應用——插件的 Host 模塊不會因爲重新組合而重新加載。

從源碼安裝

克隆倉庫後,按目錄安裝。裝進去的是 link: 依賴,所以安裝目錄別挪走:

git clone https://github.com/meowyuho/dsh-session-archive.git
dsh plugin --profile desktop add link:<clone 下來的絕對路徑>

路徑必須是絕對路徑。link: 也可以寫成 file:,或者直接裸給絕對路徑。

也可以不 clone,直接按倉庫裝:

dsh plugin --profile desktop add github:meowyuho/dsh-session-archive

這兩種方式都會把插件註冊進 profile 的 bundle 層棧。本包沒有構建步驟,不會碰到 git 安裝那種 allowBuilds 提示。

使用

設置 → 左側導航 → 歸檔會話。

  • 恢復:會話回到側邊欄原來的位置。
  • 徹底刪除:點擊行內「徹底刪除」,展開一張確認卡片(寫明是哪個會話、日誌在哪兒)。確認之後才動手。卡片可以按 Esc 取消。

刪除機制

刪除操作會移除以下內容:

  • 會話的日誌目錄:<dsh home>/sessions/<項目目錄>/<會話 id>/。裏面可能並存 v0–v4 多個格式世代,所以刪的是整個目錄。
  • 投影緩存記錄:<dsh home>/storages/session_projcache/sessions/<id>.json。
  • 工作區裏的會話佔位,以及歸檔集合、置頂集合裏的記錄。

插件不會觸碰以下內容,以避免連帶破壞其他會話:

  • attachments/ 及其請求緩存(內容是尋址的,可能被多個會話共用)。
  • spill 臨時文件。
  • 會話查詢索引。
  • workspace.json 整體。
  • 工作區目錄裏用戶自己的文件。

刪除過程分三步:刪文件 → 讓瀏覽器重拉一次會話目錄 → 最後才移出歸檔集合。

這樣設計是爲了避免 UI 閃爍。如果一次性做完,中間會出現一個瞬間:它已經不在歸檔集合裏了,但客戶端目錄還記着它——側邊欄就會把它畫成一行,點開報 session/not-found。分三步走,中間那步做完時它仍然處於歸檔狀態,沒有任何界面會畫它;等身份從客戶端清掉之後再移出歸檔集合,就一幀都不露。任何一步失敗都停在可以直接重試的狀態。

注意事項

  • 排序:列表按「最後活動」時間從新到舊排,而不是歸檔時間。dsh 的歸檔集合裏只有一個 id 數組,不帶時間戳。
  • 刪除限制:有活兒在跑(turn / job / subagent / schedule)或正開在主視圖裏的會話不能刪除。被加載過但閒着的會話可以刪。早期版本把兩者混爲一談,結果一大批本該能刪的會話都刪不掉。
  • Subagent:subagent 世系的會話不能單獨刪,它的日誌歸擁有它的那個會話管。
  • 不可逆:沒有回收站,刪除不可撤銷。
  • 側邊欄:側邊欄那邊插件一點沒動。dsh 默認就隱藏歸檔會話;宿主的「全部會話(顯示已歸檔)」「僅顯示已歸檔」開關由用戶自己控制,插件不會改回去。
  • 異常清理:日誌已經不在、但歸檔記錄還在的行會被標出來,可以直接點刪除把登記清乾淨。

驗證

插件包裏附帶 node _verify-session-archive.mjs 驗證腳本。它只依賴 Node 內置模塊,全程把 DSH_HOME 指到一個臨時目錄,不會碰你真實的會話數據。

腳本會覆蓋 bundle 聲明、瀏覽器半邊的註冊契約、同源與各類拒絕路徑、真實的文件刪除(在臨時 HOME 裏覈對磁盤結果)、活動判據、分步協議,以及樣式只用主題令牌。失敗以非零退出碼結束。

許可

MIT 許可證。

  • GitHub 倉庫:https://github.com/meowyuho/dsh-session-archive
  • 生態目錄:https://www.skillhub.cn/plugins/meowyuho/dsh-session-archive
羽毛球分组比赛记分
小程序二维码

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

小夜