DSH 插件:dsh-archive-session(瀏覽與清理歸檔會話)

DSH 官方支持會話歸檔,但不提供查看歸檔列表、關閉內存中的會話、取消歸檔或刪除歸檔會話的途徑。這個插件填補了這一操作缺口。

功能

  • 瀏覽歸檔會話:列出歸檔集中的會話,顯示標題、會話 ID、工作區路徑、創建時間、運行狀態以及日誌路徑。
  • 無重啓關閉會話:使用 archived_session_close 將空閒的內存會話分離並持久化,無需重啓 DSH。
  • 取消歸檔:將會話從歸檔集中移除,使其重新出現在側邊欄中。
  • 刪除歸檔:在明確確認後,物理刪除會話日誌目錄。
  • 設置 UI:在 DSH Web 設置中提供獨立的“Archived Sessions”管理頁面。
  • HTTP API:提供簡單的 JSON 端點,便於自動化操作。

安裝

前置條件

  • 已安裝 DSH,命令行可執行 dsh。
  • 如果需要從源碼構建,需要 Node.js 和 npm。

安裝步驟

  1. 下載或構建插件包(建議使用發佈版本)。
  2. 執行安裝命令:
dsh plugin --profile web add dsh-external-dsh-archive-session-0.0.9.tgz
  1. 安裝完成後,重啓 DSH 服務。

用法

Agent 工具

工具 描述
archived_sessions_list 列出仍指向真實會話的歸檔會話。
archived_session_close 關閉空閒的內存歸檔會話(刷新並分離),無需重啓。
archived_session_unarchive 將會話從歸檔集中移除,使其可通過常規 UI 訪問。
archived_session_delete 徹底刪除歸檔會話。需要參數 confirm: true。

HTTP API

插件宿主在 /dsh-archive-session/api 路徑下。

方法 路徑 Body 描述
GET /archived - 列出歸檔會話。
POST /close { "sessionId": "..." } 關閉空閒的內存會話。
POST /unarchive { "sessionId": "..." } 取消歸檔會話。
POST /delete { "sessionId": "...", "confirm": true } 刪除歸檔會話。

注意事項

  • 刪除前必須關閉:DSH 在對話結束後仍會將會話對象保留在內存中。若要刪除處於“運行/空閒”狀態的會話,必須先使用 archived_session_close 將其持久化,或重啓 DSH。
  • 取消歸檔以管理:歸檔會話默認在側邊欄中隱藏。若需通過常規 UI 打開、關閉或恢復會話,需使用 archived_session_unarchive。
  • 忽略過期 ID:如果歸檔 ID 不再指向真實的會話日誌,該 ID 會被忽略。
  • 後端限制:刪除功能僅支持 JSONL 持久化後端(路徑通常爲 ~/.dsh/sessions)。SQLite 後端會被拒絕,因爲 DSH 未提供公開的刪除 API。
羽毛球分组比赛记分
小程序二维码

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

小夜