洄游(dsh-huiyou):爲 DSH Desktop 補上可搜索的會話回收站

前言

在 DSH Desktop 裏整理側欄會話時,常見需求是「刪掉這條對話」或「誤刪後找回來」。DSH 自帶的「歸檔會話」只是把會話從列表裏藏起來,沒有明確的刪除流程,也沒有回收站這一中間態。誤刪、清理列表、找回舊對話,都缺少一條可逆的路徑。

下面介紹的 洄游(倉庫 qiesh-cn/dsh-huiyou)由維護者 qiesh-cn 發佈,在 SkillHub 目錄中歸類爲 記憶。它給 DSH Desktop 側欄補上 刪除 → 回收站 → 搜索 / 恢復 / 徹底刪除 的完整鏈路;數據落在本地 ~/.dsh,不聯網。

這是什麼

洄游是面向 DSH Desktop Web GUI 的 Cordis 插件(npm 包名 @local/dsh-session-manager,版本 1.0.0)。README 標明適配 DSH Desktop 0.2.x,在 DSH Desktop 0.2.1-rc.3(Windows) 上開發與驗證。

一句話定位:刪掉的會話先進入回收站,可搜索、可恢復、可徹底刪除;恢復時無需重啓 DSH。

與歸檔的區別

做法 行爲
DSH 自帶「歸檔會話」 從列表隱藏,無「刪除」、無回收站
洄游 刪除會移動數據到 ~/.dsh/session-trash/,側欄可在「工作區 / 回收站」之間切換

核心功能

以下能力均來自項目 README 的功能表與說明:

  1. 刪除會話:會話 ⋯ 菜單中的紅色「刪除會話」,需二次確認。
  2. 側欄回收站:「工作區 / 回收站」一鍵切換;回收站有獨立標題、搜索和清空。
  3. 搜索:按標題過濾,輸入即篩。
  4. 時間展示:每行顯示「今天 / N 天」。
  5. 恢復:會話回到原工作區,標題、位置與會話目錄一併恢復;原工作區不存在時落在「未分組」,仍可打開。
  6. 徹底刪除:單條徹底刪除,或一鍵清空(均有二次確認)。
  7. 斜槓命令:/sessions 列出會話;/delete-session <id> 刪除。
  8. 界面:複用 DSH 的 HoverCard、Modal、Button、Input、圖標與設計 token。

限制(README 明確寫出):當前打開的會話不能刪除,需先切換到其他會話或新建會話。側欄切換依賴 DSH 非公開的 sidebar.workspaces 槽;大版本升級後若內部結構變化,插件可能需重新適配,但不會破壞已有數據。

數據落在哪

刪除是移動,不是立刻抹除磁盤內容。目錄結構如下:

~/.dsh/session-trash/<ISO 時間>-<session-id>/
├── <session-id>/       # 會話目錄
├── <session-id>.json   # 投影緩存
└── meta.json           # 原工作區、標題、刪除時間

恢復時 Host 重新索引會話頭並掛回工作區,Client 刷新目錄和投影;徹底刪除與清空均有二次確認。README 說明:不聯網、不收集數據,操作均在本地 ~/.dsh 完成。

安裝與啓用

項目未提供 dsh plugin add github:... 一類 CLI 安裝命令。README 推薦從 Release 安裝。

方式一:Release(推薦)

  1. 到 Releases 下載 huiyou-1.0.0.tgz。
  2. 放到固定路徑,例如 ~/.dsh/plugins/huiyou-1.0.0.tgz。
  3. 編輯 DSH profile(默認 ~/.dsh/profiles/desktop)的 package.json,在 bundles 與 dependencies 中引用本地 tgz(路徑按本機替換):
{
  "dsh": {
    "profile": {
      "bundles": [
        "@local/dsh-session-manager"
      ]
    }
  },
  "dependencies": {
    "@local/dsh-session-manager": "file:C:/Users/<you>/.dsh/plugins/huiyou-1.0.0.tgz"
  }
}
  1. 在 profile 目錄安裝依賴:
cd ~/.dsh/profiles/desktop
pnpm install
  1. 重啓 DSH。

README 註明:desktop profile 由 Electron 應用管理,官方 dsh CLI 會拒絕直接修改它;手動改 package.json 再 pnpm install 即可。

方式二:源碼

將 dependencies 中的路徑改爲克隆後的本地目錄(示例:file:C:/path/to/dsh-huiyou),其餘步驟同上。README 中的克隆地址爲:

git clone https://github.com/qiesh-cn/dsh-huiyou.git
cd dsh-huiyou

修改源碼後,profile 裏的 file: 依賴是一份複製,需重新 pnpm add 纔會同步。

典型用法

經過上面的安裝步驟並重啓 DSH 後,可按 README 中的交互路徑操作:

  • 刪除:側欄會話行懸停 → ⋯ → 刪除會話 → 確認。
  • 恢復:側欄點 回收站 → 懸停某一行 → 恢復。
  • 徹底刪除:回收站行懸停 → 垃圾桶圖標;或標題右側 清空。
  • 搜索:回收站標題右側的搜索圖標。

側欄在「工作區」與「回收站」之間切換:從工作區點「回收站」進入回收站列表;從回收站點「工作區」回到常規定義。

工作原理(簡述)

Host 側(index.js)通過 Cordis 註冊 HTTP 路由,負責移動文件、寫入 meta.json、列出回收站;Client 側(client.js)在 sidebar.workspaces.session.menu.item 注入刪除項,並包裝 sidebar.workspaces 槽實現切換。刪除與列表操作分別對應 README 中的 POST /plugins/session-manager/delete 與 POST /plugins/session-manager/trash,最終讀寫 ~/.dsh/session-trash。

適用場景與注意

適合誰:長期在 DSH Desktop 裏積累大量會話、需要可逆刪除與本地回收站的開發者;希望用搜索在回收站裏找舊標題的用戶。

安裝前建議:

  • 插件以當前 DSH 進程權限讀寫 ~/.dsh,安裝前應閱讀倉庫源碼與 MIT 許可證。
  • 僅支持 DSH Desktop 的 Web GUI;與 SkillHub 社區目錄一樣,屬於社區生態,與 DeepSeek / 幻方無官方從屬關係。
  • 本地開發可運行 README 中的 Node 測試:node test/delete.test.mjs 等。

鏈接

洄游把 DSH 側欄會話管理補成「可刪、可找、可清」的閉環;若你的痛點是歸檔不夠用、誤刪想找回,可按 Release 方式接入 @local/dsh-session-manager 1.0.0 試用。

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

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

小夜