dsh-archived:DeepSeek Harness 歸檔會話管理

前言

DeepSeek Harness (DSH) 原生沒有提供刪除已歸檔會話的接口。歸檔操作只能取消歸檔,而日誌和投影緩存會一直留在磁盤上。dsh-archived 插件通過提供 UI 和 RPC 接口,填補了這一空白,確保會話日誌、投影緩存和歸檔索引能被徹底清理。

插件介紹

這是一款記憶類插件,主要用於管理 DSH 的已歸檔會話。它爲 DSH 的“設置 → 已歸檔”頁面增加了刪除、恢復和清理功能,並處理了索引殘留和宿主契約檢查等複雜狀態。

核心功能

插件實現了以下核心能力:

  1. 會話刪除:支持逐條刪除和批量刪除。默認採用“回收站”機制(30 天自動過期),也提供“永久刪除”選項。
  2. 回收站管理:支持從回收站恢復會話,或清空回收站。頂部常顯回收站中的會話數量和磁盤佔用。
  3. 磁盤佔用顯示:列出每個會話的磁盤佔用情況。
  4. 陳舊會話掃描:支持掃描並清理超過指定天數未動的會話(僅歸檔模式)。
  5. 目錄訪問:提供“打開文件夾”功能,直接在系統文件管理器中打開會話目錄。
  6. 安全邊界檢查:
    • 僅接受已歸檔的 ID,拒絕刪除未歸檔會話。
    • 拒絕刪除正在運行的會話,或擁有正在運行子代理後代的父會話。
    • 處理索引殘留,防止因只有索引而無文件導致的異常。
    • 進行宿主契約檢查,確保宿主 API 可用。

安裝與啓用

安裝命令如下:

dsh plugin --profile web add dsh-archived

前置要求:需要 DSH 0.2.0-rc.1 或更高版本。插件不支持 DSH 0.1.x。

典型用法

安裝後,插件會自動掛載到 Settings -> Archived 頁面。

界面操作

  1. 進入“設置 → 已歸檔”頁面。
  2. 使用搜索框或工作區分組篩選會話。
  3. 勾選需要刪除的會話,點擊“刪除”或“批量刪除”。
  4. 在頂部回收站區域,可以點擊“恢復最近一個”或“清空回收站”。

API 調用

通過 RPC 調用管理會話:

# 刪除會話(進回收站或永久刪除)
POST /api/dsh-archived/delete
Body: { "sessionId": "...", "mode": "quarantine" | "forever" }

# 批量刪除
POST /api/dsh-archived/delete-all
Body: { "mode": "quarantine", "ids": ["id1", "id2"] }

# 從回收站恢復
POST /api/dsh-archived/restore
Body: { "sessionId": "..." }

# 掃描陳舊會話(僅讀取)
POST /api/dsh-archived/sweep/scan
Body: { "days": 30 }

注意事項

  1. 24 小時硬保護:日誌在 24 小時內寫過的一律不列、不刪,與天數設置無關。
  2. 宿主狀態影響:如果宿主(Host)內存中還持有該會話,刪除操作會暫時延遲執行(寫入 deferred.json),直到宿主釋放該會話(通常在重啓後)。
  3. 不修改宿主數據:插件不會修改宿主的 schedule.json 或 message_feedback.json。
  4. 陳舊清理策略:陳舊會話清理只進回收站,永不永久刪除。
  5. 權限要求:插件以當前 DSH 進程的權限運行,安裝前請檢查源碼與許可證。

總結

dsh-archived 解決了 DSH 歸檔會話無法徹底清理的問題,提供了從 UI 到 RPC 的完整管理方案。對於需要維護長期會話記錄的開發者來說,這是一個必要的清理工具。

更多資源:
* GitHub 倉庫
* 社區目錄

羽毛球分组比赛记分
小程序二维码

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

小夜