洄游(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 试用。

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

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

小夜