前言¶
在 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 的功能表与说明:
- 删除会话:会话
⋯菜单中的红色「删除会话」,需二次确认。 - 侧栏回收站:「工作区 / 回收站」一键切换;回收站有独立标题、搜索和清空。
- 搜索:按标题过滤,输入即筛。
- 时间展示:每行显示「今天 / N 天」。
- 恢复:会话回到原工作区,标题、位置与会话目录一并恢复;原工作区不存在时落在「未分组」,仍可打开。
- 彻底删除:单条彻底删除,或一键清空(均有二次确认)。
- 斜杠命令:
/sessions列出会话;/delete-session <id>删除。 - 界面:复用 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(推荐)¶
- 到 Releases 下载
huiyou-1.0.0.tgz。 - 放到固定路径,例如
~/.dsh/plugins/huiyou-1.0.0.tgz。 - 编辑 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"
}
}
- 在 profile 目录安装依赖:
cd ~/.dsh/profiles/desktop
pnpm install
- 重启 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等。
链接¶
- 目录页:https://www.skillhub.cn/plugins/qiesh-cn/dsh-huiyou
- GitHub:https://github.com/qiesh-cn/dsh-huiyou
洄游把 DSH 侧栏会话管理补成「可删、可找、可清」的闭环;若你的痛点是归档不够用、误删想找回,可按 Release 方式接入 @local/dsh-session-manager 1.0.0 试用。