DeepSeek Harness (DSH) 是基於插件架構的智能體開發環境。在日常開發中,會話列表往往需要定期清理。DSH 原生的歸檔功能無法徹底移除數據,手動操作容易遺留工作區賬目或緩存文件。
dsh-session-delete 是一個客戶端插件,由 yauntyour 維護。它在每個會話行的操作菜單中新增了「刪除會話」選項,用於徹底移除會話及其相關數據。
核心功能¶
- 菜單注入:在每個會話行的
⋯操作菜單中,在「歸檔會話」正下方新增「刪除會話」。該選項採用紅色危險配色(跟隨主題變量--dsw-alias-state-error-primary),並配有垃圾桶圖標與危險態懸停底色。 - 二次確認:執行刪除前會彈出確認框,遵循 DSH 主題變量,確認前不會刪除任何數據。
- 同名會話多選:當存在多個同名會話時,彈窗會列出所有候選會話(標題、ID、相對時間),由用戶選擇目標。
- 即時刷新:利用 DSH 的 wire 推送機制(
host/session-removed、host/workspace-changed、host/archived-sessions-changed)更新會話列表,無需刷新頁面。刪除當前會話時,視圖會自動跳轉至「新會話」。 - 乾淨刪除:不僅移除會話日誌文件,還會同步清理工作區賬目(
workspace.sessionIds)、歸檔集合(archivedSessionIds)與投影緩存(session_projcache),防止重啓後出現幽靈會話。 - 安全圍欄:複用官方
/api網關的瀏覽器信任圍欄機制(Loopback Host 或受信主機 + 同源檢查)。
安裝與啓用¶
# 在插件目錄構建並打包
cd D:/Developments/Workspace/DSH-SessionDelete
npm install && npm run build && npm pack
# 掛載到 web profile
dsh plugin --profile web add "D:/Developments/Workspace/DSH-SessionDelete/dsh-session-delete-0.2.0.tgz"
驗證安裝:
dsh --profile web --dump-config | grep session-delete
# 應輸出包含 id 和 name 的配置項
重啓 dsh web 後,刷新瀏覽器頁面,在左側會話列表任意會話行的 ⋯ 菜單中,即可看到新增的「刪除會話」選項。
使用步驟¶
- 將鼠標移到會話行上,點擊行尾的
⋯。 - 在彈出的菜單中,點擊「歸檔會話」下方的 刪除會話。
- 在確認彈窗中核對會話標題(若存在同名會話,先在列表中選擇目標)。
- 點擊「刪除」,等待提示「會話已刪除」——列表會自動移除該會話。
注意事項與邊界¶
- 不可逆操作:刪除會話不可恢復,日誌文件會被永久移除,請謹慎操作。
- 附件處理:
~/.dsh/attachments目錄下的附件按對象尋址,無會話索引,刪除時不會清理附件對象。 - 搜索索引:若啓用了會話內容搜索(session-query),舊索引行可能殘留,不影響列表顯示,重啓後索引重建會自然失效。
- Live 會話限制:正在運行 agent 的會話會被拒絕刪除(提示等待運行結束),以避免運行中的回合在目錄刪除後繼續落盤重建文件。
- 菜單依賴:菜單注入爲 DOM 級操作,依賴「歸檔會話」菜單項的穩定文案與 role 契約。若 DSH 官方 UI 重構該菜單結構,需同步更新插件邏輯。