dsh-session-manager:DeepSeek Harness 歸檔會話管理插件

前言

DeepSeek Harness 在執行 “Delete workspace” 操作時,只會移除工作區列表中的條目,保留會話目錄和日誌文件。長期使用會導致磁盤積累大量無法回收的會話目錄。雖然 dsh 0.1.7 版本已引入官方的歸檔功能,但缺乏物理刪除歸檔會話的入口。dsh-session-manager 插件通過一級設置頁面和會話上下文菜單,提供跨工作區的歸檔會話列表、恢復和永久刪除能力。

核心功能

設置頁面

進入 DSH 的設置界面,可以找到 “Session Manager” 頁面。該頁面列出所有歸檔會話的詳細信息,包括標題、所屬工作區、項目目錄、更新時間和運行狀態。在列表中,可以對單個會話執行恢復操作,或點擊紅色的 “Delete permanently” 按鈕永久刪除。此外,支持全選(通過表頭複選框或行選擇)後進行批量刪除操作。所有刪除操作均需經過確認對話框。

會話上下文菜單

在左側邊欄的會話列表中,鼠標懸停在某一行並點擊 ⋯ 菜單,在內置的 “Rename”、”Fork session”、”Archive session” 等選項下方,會出現一個紅色的 “Delete permanently” 項。該菜單項使用了原生危險樣式,點擊後會觸發與設置頁面相同的確認對話框。

Agent 工具

插件爲 Agent 提供了三個工具函數,用於在代碼中操作歸檔會話:
* session_list_archived:以 JSON 格式列出所有歸檔會話。
* session_restore_archived:根據 ID 恢復歸檔會話(無確認步驟)。
* session_delete_permanently:根據 ID 永久刪除歸檔會話。此工具必須傳入 confirm: true 參數,且拒絕處理未知 ID、非歸檔 ID 或包含運行任務的會話。

安裝與啓用

本插件依賴 dsh 0.1.7 版本,因爲它引入了 sidebar.workspaces.session.menu.item 插槽(用於上下文菜單項)以及 size-neutral 產品圖標。

  1. 克隆倉庫到本地:
    git clone https://github.com/SunshineR04/dsh-session-manager.git
  1. 添加插件到指定配置文件:
    dsh plugin --profile <name> add "file:/path/to/dsh-session-manager"
插件會通過 pnpm 安裝並追加到 `dsh.profile.bundles`。如果在頁面刷新後未看到插件,請重啓 DSH 桌面應用。

注意:請勿通過裸 npm 名稱 dsh-session-manager 安裝。該名稱下存在一個無關的獨立項目(由 hkkz9522 維護),安裝錯誤的包會導致功能異常。

典型用法

  1. 查看歸檔會話:在 Agent 調用 session_list_archived 工具,或在 DSH 設置頁面的 Session Manager 中查看所有已歸檔會話。
  2. 恢復會話:在設置頁面點擊會話對應的恢復按鈕,或讓 Agent 調用 session_restore_archived 工具。
  3. 永久刪除:在設置頁面勾選會話並確認刪除,或在會話上下文菜單中點擊紅色刪除按鈕。若需在 Agent 中刪除,調用 session_delete_permanently 並設置 confirm: true。

注意事項

  • 物理刪除:插件執行的是直接物理刪除,不會經過備份層。刪除前請務必確認。
  • 環境限制:每個 DSH_HOME 僅支持一個主機。如果兩個 DSH 實例共享同一個 Home 目錄並嘗試併發刪除,後寫入的進程會靜默覆蓋前者的標記,導致前者的會話標記丟失且文件已被刪除。
  • 版本要求:需要 dsh >= 0.1.7。低於此版本的 dsh 無法渲染上下文菜單項,僅設置頁面可用。
  • 依賴項:需要 @deepseek-ai/schemastery 版本 >= 3.18.0。

結語

dsh-session-manager 解決了 DSH 歸檔會話無法物理清理的痛點。它提供了直觀的圖形界面和腳本化工具,幫助開發者有效管理磁盤空間。更多細節可參考插件目錄或 GitHub 倉庫。

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

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

小夜