前言¶
在 DeepSeek Harness(DSH)中,会话归档往往只是从侧边栏的一个按钮出发,长期不用的会话会留在历史列表里,甚至需要重启 DSH 才能清理干净。这导致会话列表膨胀、磁盘占用增加,且归档操作缺乏统一管理入口。DSH 0.2.0-rc.2 及之后版本引入了会话投影缓存(SessionProjectionCache),为插件提供了零 I/O 的会话元数据访问能力。本文介绍的 dsh-session-manager 便利用这一能力,在 DSH 的会话列表中新增回收站入口,并提供多选还原/彻底删除、子会话保护等能力。
这是什么¶
dsh-session-manager 是一个 DSH 插件,提供会话回收站与永久删除功能。维护者为 sunshaobei。插件通过在对话头部和会话列表中增加操作入口,将当前会话归档到回收站,并在设置中集中管理已归档会话,支持批量还原、彻底删除、子会话保护与错误容错。界面自动跟随浏览器语言,支持亮/暗主题与 DSH 字体设置。
核心功能¶
- 对话头部归档入口:在对话头部提供「移入回收站」按钮,点击后会将会话归档,并弹出撤销提示。归档后的会话是否继续显示在左侧侧边栏,由 DSH 原生的「视图选项 → 过滤会话」决定(隐藏已归档 / 全部对话 / 仅已归档),插件不再额外控制。
- 回收站管理:在设置页面打开「🗑 会话回收站」,可查看所有已归档会话。每条记录显示会话名称、ID 与工作路径(悬停查看详情)。支持多选后批量还原或永久删除。
- 彻底删除:永久删除会话时,会从磁盘物理移除会话日志与投影缓存记录;同时清理孤立记录(没有日志的幽灵会话),避免残留。
- 活跃会话保护:对正在运行的会话及其子会话拒绝删除操作,并在拒绝时提示原因。
- 子会话感知与保护:每个主会话行可显示其子会话数量(整棵树,任意深度),并内联展开查看子会话的标题、大小、时间与运行状态,每个子会话有独立复选框。永久删除整棵树时,未勾选的子会话会被保留,并作为「已删除主会话 · N 个子会话保留」的行展示,避免变成不可见的残留。
- 运行中的子会话阻塞行:如果主会话的子会话树中存在正在运行的会话,则该主会话行会被阻塞,并提示具体原因。
- 批量容错:批量操作时,对每个会话执行删除,并收集错误信息与结果,最后统一报告。
- 亮/暗自适应 UI:所有颜色通过
client.css中的 CSS 自定义属性定义,组件跟随 DSH 的主题(data-ds-dark-theme)与系统偏好(prefers-color-scheme),不使用硬编码调色板。UI 与代码文本跟随 DSH 的字体设置(--dsw-font-family/--ds-font-family-code)。
安装与启用¶
- 前置要求:DSH 0.2.0-rc.2 或更新版本。插件依赖 SessionProjectionCache 的
cachedSnapshot与cachedPredecessorTitle方法;在未提供这些方法的主机上,归档/还原功能仍可用,但回收站列表仅显示「未命名会话」且不显示轮次计数。 - 从插件市场安装:当插件在 awesome-dsh-plugin 注册表中上架后,打开设置 → 插件市场,搜索
dsh-session-manager并安装。 - 手动安装:
dsh plugin --profile web add dsh-session-manager
安装后重启 Web 应用(停止 dsh web 进程,再运行 dsh web)。
- 本地开发安装:
dsh plugin --profile web add link:/absolute/path/to/harness-session-delete
- 卸载:
dsh plugin --profile web remove dsh-session-manager
典型用法¶
- 移动到回收站:在对话头部点击「移入回收站」图标,会话归档并弹出撤销提示。归档后,会话是否继续显示在左侧侧边栏由 DSH 的视图选项决定。
- 在回收站中管理:打开设置 → 🗑 会话回收站,勾选需要还原的会话后点击「还原」,或勾选需要彻底删除的会话后点击「永久删除」。
- 彻底删除会话:永久删除操作会从磁盘物理移除会话日志与投影缓存记录,并清理孤立记录。若子会话中存在正在运行的会话,则主会话行会被阻塞,无法删除。
- 撤销还原:还原会话时会显示撤销提示,点击撤销可重新将会话归档。
适用场景与注意¶
- 适合需要统一管理已归档会话、定期清理无用会话、避免磁盘占用膨胀的 DSH 用户与开发者。
- 插件以当前 DSH 进程的权限运行,安装前建议检查仓库与许可证。
- 插件依赖 DSH 0.2.0-rc.2 及以上版本,且依赖 SessionProjectionCache 的两个方法;在旧版本或未实现这些方法的主机上,回收站列表将降级为仅显示会话名称与 ID。
短结尾¶
dsh-session-manager 通过会话回收站与彻底删除功能,为 DSH 提供了统一、可控的会话生命周期管理入口。更多细节与源码可访问插件目录页与 GitHub 仓库。