DeepSeek Harness 插件:dsh-delete-session

DSH 的 Web 模式爲智能體開發提供了圖形界面,但在會話管理上,用戶往往只能查看或歸檔,缺乏直接刪除會話日誌和工作區登記的入口。這會導致目錄膨脹,影響檢索效率。dsh-delete-session 插件解決了這個問題,它將“刪除”能力直接集成到會話列表的溢出菜單中。

插件簡介

這是一個 DeepSeek Harness (DSH) Web 模式的客戶端與主機插件。它由 SMWHff 維護,旨在爲 Web 界面的會話列表提供“刪除會話”的功能。操作時會徹底清理磁盤上的日誌目錄和引用該會話的工作區記錄。

核心功能

  1. 菜單集成:在會話列表每行右側的省略號菜單末尾追加“刪除會話”選項。
  2. 安全確認:點擊後彈出產品級風險確認對話框,必須勾選“我瞭解此操作不可恢復”後方可確認。
  3. 清理機制:徹底刪除會話日誌目錄(sessions/<project>/<sessionId>/),並從工作區記錄中移除會話登記。
  4. 狀態反饋:提供 Toast 成功/失敗反饋;若刪除當前打開會話,會清空選擇回到空態。
  5. 運行時保護:運行中拒絕刪除,提示等待完成;執行順序爲先 flush 緩衝事件落盤,再 detach。
  6. 事件轉發:detach 發佈的 session/disposed 由 host API proxy 轉發爲 host/session-removed,已打開的客戶端列表自動移除該會話。

安裝與啓用

使用 pnpm 安裝插件:

pnpm dsh plugin --profile web add file:/path/to/dsh-delete-session

安裝後需重啓 web 表面,並刷新頁面以獲取新的 window.__DSH_BOOT__ 圖。

典型用法

  1. 在 DSH Web 界面的會話列表中,找到目標會話行,點擊右側的省略號菜單。
  2. 在菜單末尾選擇“刪除會話”。
  3. 在彈出的確認對話框中勾選“我瞭解此操作不可恢復”,點擊確認。
  4. 等待會話 agent 運行完成後再嘗試刪除。

工作原理

  • 主機端:插件按 dsh-open-in-vscode 同款模式註冊了 deleteSession/delete 的嚴格 Typert Remote,Gateway 無需 @Remote 標記表即可解析調用。
  • 客戶端:由於當前構建的會話行菜單沒有原生 slot,插件使用 legacy 適配器模式。它識別會話行省略號按鈕(通過 aria-label 模板匹配),並在 portal 菜單彈出時使用 MutationObserver 將“刪除會話”行注入菜單中。會話身份解析優先級爲:顯示標題唯一匹配 -> 同名會話按 DOM 位置消歧 -> 僅當解析失敗且該行是當前選中行時纔回退到當前會話。

注意事項

  • 依賴項:插件依賴運行時會話列表快照(displayTitle、blank、current)以及 workspace locale 的 actions.session.aria 和 menu.archiveSession 模板。它也依賴會話行 [role="treeitem"] 的 aria-selected 標記。
  • 維護:官方後續版本若調整這些契約,需更新 src/client/session-menu.ts 頂部的識別邏輯。
  • 權限與審查:插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。

該插件爲 DSH Web 模式提供了會話清理能力,減少了人工維護負擔。更多細節與源碼可參考:

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

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

小夜