DeepSeek Harness (DSH) 目前仅提供“归档”功能,会话移入归档后仅变灰,无法彻底清理。对于需要整理会话列表的用户来说,缺乏真正的删除入口是一个痛点。dsh-plugin-session-trash 插件解决了这个问题,它为 DSH 增加了回收站机制,允许用户将会话移动到回收站进行管理,并在需要时恢复或永久删除。
插件介绍¶
- 名称:dsh-plugin-session-trash
- 描述:DSH 会话回收站插件
- 所有者:DelayNooMore
- 类别:记忆
- 许可证:MIT
核心功能¶
该插件在 DSH 原有的归档功能之外,增加了完整的会话生命周期管理能力:
- 移入回收站:在会话行菜单新增“移入回收站”选项(位于“归档”之后),操作后侧栏条目就地消失。
- 恢复会话:在“设置 → 回收站”中恢复,若原工作区不存在会自动重建挂接。
- 永久删除:在“设置 → 回收站”中永久删除,或清空回收站。
- 设置页管理:提供垃圾桶图标分区,支持打开回收站文件夹。
- 删除保护:拒绝删除进行中的会话,仅在回合间隙的空闲会话可被删除。
- 自动清理:删除时会自动解档、取消置顶、分离会话。
安装与启用¶
在 DSH 的 desktop profile 里安装(DSH 自带 pnpm,无需全局安装):
cd ~/.dsh/profiles/desktop
node ~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/pnpm/bin/pnpm.cjs add github:<你的用户名>/dsh-plugin-session-trash
安装后,将 "dsh-plugin-session-trash" 加入 profile package.json 的 dsh.profile.bundles 数组,重启 DSH 即可。
也可以通过 DSH 设置里的插件管理器安装(指向本仓库的 git 地址)。
卸载时执行 pnpm remove dsh-plugin-session-trash + 从 dsh.profile.bundles 移除 + 重启。~/.dsh/trash 与 ~/.dsh/sessions 均不受卸载影响,回收站里的数据保持原样。
典型用法¶
- 在会话行菜单中选择“移入回收站”。
- 在“设置 → 回收站”中恢复或永久删除。
- 在“设置 → 回收站”中打开回收站文件夹。
- 回合间隙的空闲会话可被删除。
工作原理与注意事项¶
- 数据存储:被删除的会话目录整体移动到
~/.dsh/trash/sessions/<sessionId>/,登记信息写入~/.dsh/trash/manifest.json。 - 即时更新:删除后侧栏条目就地消失,无需重启。
- 挂接逻辑:恢复时若原工作区不存在,会自动重建挂接;若工作区目录没了,会话文件恢复但保持未挂接。
- 标题处理:无标题会话会尝试从
session_projcache读取标题。
兼容性¶
在 DSH 0.2.0-rc.2(Electron 44,darwin arm64)上开发并实测。用到的主要接口:cordis 插件体系、workspaceRegistry 服务、sessions 服务(含内部 live 表的 best-effort 驱逐,特性检测 + 降级)、Typert remote、sidebar.workspaces.session.menu.item / settings.section / shell.overlay 槽位、primitives 的 Toast/Modal/MenuItemButton。其他版本未测试,接口变动时以降级行为兜底。
结语¶
该插件提供了真正的会话删除能力,适合需要管理大量会话的开发者。安装前请检查源码与许可证。
- 目录页:https://www.skillhub.cn/plugins/DelayNooMore/dsh-plugin-session-trash
- GitHub:https://github.com/DelayNooMore/dsh-plugin-session-trash