@huangzhaoyu/dsh-trashbin:DSH 回收站(刪除冷靜區)

在 DeepSeek Harness(DSH)中,歸檔會話通常只是將其從側邊欄隱藏,沒有明確的恢復入口,一旦歸檔往往意味着會話永久消失。@huangzhaoyu/dsh-trashbin 爲 DSH 增加了一個“回收站”機制,讓歸檔操作變成一個可控的“刪除冷靜區”。

下面介紹這個插件的安裝方式、核心功能以及技術實現細節。

功能概覽

該插件旨在解決歸檔會話不可找回的問題,提供以下能力:

  • 歸檔即回收:歸檔的對話會進入回收站,而不是直接從界面消失。
  • 恢復與移除:在 7 天有效期內,支持隨時恢復會話至原工作區;也支持手動移除。
  • 自動清理:歸檔超過 7 天未恢復的會話將自動清理。
  • 數據安全:插件不修改 DSH 核心,不觸碰 ~/.dsh/sessions 中的會話日誌文件,只負責界面狀態管理。
  • 冪等性:恢復操作具備冪等性,恢復不存在的會話不會報錯。

安裝與啓用

所有安裝方式在完成配置後都需要重啓 DSH,插件纔會生效。

方式一:命令行安裝(推薦)

如果你本地環境配置了 dsh 命令,可以直接通過 profile 安裝:

dsh plugin --profile web add @huangzhaoyu/dsh-trashbin

方式二:腳本安裝(Windows)

插件倉庫提供了 PowerShell 安裝腳本:

powershell -ExecutionPolicy Bypass -File install.ps1

腳本會自動完成備份、複製文件、註冊依賴與 bundles 以及驗證文件完整性。

方式三:手動安裝

如果沒有 dsh 命令或無法使用腳本,可以手動複製文件並修改配置:

  1. 複製 dsh-trashbin 目錄到 ~/.dsh/profiles/web/node_modules/@huangzhaoyu/。
  2. 修改 ~/.dsh/profiles/web/package.json,在 dependencies 中添加 "@huangzhaoyu/dsh-trashbin": "^0.1.0"。
  3. 在 dsh.profile.bundles 數組中追加 "@huangzhaoyu/dsh-trashbin"。
  4. 重啓 DSH。

卸載

同樣可以通過提供的腳本卸載:

powershell -ExecutionPolicy Bypass -File uninstall.ps1

或手動從 dsh.profile.bundles 和 dependencies 中移除該插件,並重啓 DSH。

機制與限制

回收站入口

安裝後,側邊欄左下角的設置按鈕旁會出現一個垃圾桶圖標,點擊進入回收站面板。

狀態存儲

回收站的狀態(如歸檔時間)存儲在瀏覽器的 localStorage 中。
* 注意:如果清除了瀏覽器緩存,localStorage 會被清空,此時所有歸檔對話的時間信息會丟失,表現爲全部顯示爲“過期”狀態。但這不會影響歸檔本身,也不會導致數據丟失。

自動清理邏輯

7 天自動清理的過濾邏輯是在打開回收站時觸發的。如果連續 7 天未打開回收站,清理順延到下次打開,用戶無感知差異。

目錄與文件結構

插件的主要代碼與配置文件如下:

dsh-trashbin/
├── package.json       # 聲明 dsh.bundle.patch + dsh.client 雙面機制
├── cordis.patch.yml   # 註冊 trashbin 行到 profile
├── install.ps1        # 安裝腳本(包含備份與回滾)
├── uninstall.ps1      # 卸載腳本
└── lib/
    ├── index.js       # host 半邊:處理 /trash/unarchive 路由及存儲域寫入
    └── client.js      # browser 半邊:處理回收站按鈕、面板 UI 及 localStorage 狀態

結語

@huangzhaoyu/dsh-trashbin 通過獨立包的形式,在不侵入 DSH 核心的前提下,爲歸檔操作提供了“後悔藥”。對於習慣使用歸檔整理會話但擔心誤刪的開發者來說,這是一個實用的工具。

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

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

小夜