前言¶
DeepSeek Harness(DSH)侧栏会积累大量历史会话。原版 DSH 对「未加载的空闲历史会话」可以删除,但对已打开或已恢复的空闲会话会拒绝删除;任务执行中、维护中或有待处理输入时同样无法删除。若你希望从侧栏发起不可恢复的清理,并覆盖日志、投影缓存与 Workspace 关联等持久化数据,需要借助社区插件。下面介绍维护者 huy8000 发布的客户端插件 dsh-session-delete(仓库 huy8000/dsh-session-delete),以及它与 DSH 版本、生命周期补丁之间的边界。
这是什么¶
dsh-session-delete 为 DSH 侧栏会话行的操作菜单增加 删除会话 / 永久删除 流程,界面支持中文与英文。插件分类为客户端;当前正式版本为 1.1.0,package.json 中声明仅支持 DSH 0.2.1-rc.2。简介与目录页一致:从 DeepSeek Harness 侧栏永久删除会话,包括活动会话相关缓存(在允许删除的前提下)及可识别的持久化数据。
插件以当前 DSH Host 的进程权限访问本地存储。安装前请阅读仓库源码与 MIT 许可证;社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
侧栏删除与确认¶
在会话行操作菜单中选择 删除会话,在确认框中核对名称与不可恢复提示后点击 永久删除。删除成功后会话从列表移除;若删除的是当前正在查看的会话,页面会回到新会话入口。取消、Escape 或点击遮罩可关闭尚未执行中的确认框;删除进行中会禁用重复提交和关闭。失败时保留确认框并分开显示失败原因。
正在执行任务的会话会被拒绝删除,插件不会强制停止任务。
删除范围¶
插件会清理目标会话的:
- 已识别的 JSONL 持久化日志
- 当前会话投影缓存
- Workspace 关联、置顶和归档记录
用于上游写锁的 session.lock 和空目录会保留。工作区中的项目文件、导出副本、外部备份、附件及第三方插件数据不在清理范围内。删除不是跨文件事务;路径不明、符号链接、异常存储结构、写入占用或无法确认的生命周期状态都会导致拒绝。
与会话状态的兼容性¶
| 会话状态 | 原版 DSH | 安装本仓库生命周期补丁的 DSH |
|---|---|---|
| 未加载的空闲历史会话 | 可以删除 | 可以删除 |
| 已打开或已恢复的空闲会话 | 拒绝删除 | 标准 Agent 会话安全关闭后删除 |
| 任务执行中、维护中或有待处理输入 | 拒绝删除 | 拒绝删除 |
只安装插件不会给 DSH 增加关闭会话的能力。 要删除已加载的空闲会话,需要额外应用仓库中的 DSH 生命周期补丁。补丁针对固定版本源码,尚未合入上游;不支持关闭的第三方 Agent 会明确拒绝删除。
所有删除都要求单个 DSH Host 独占会话、缓存和工作区存储。多个 Desktop、Web 或 CLI 实例共用一套存储不受支持。
安装与启用¶
在 DSH 的插件页面添加本地仓库路径,或使用 Git 地址安装:
git+https://github.com/huy8000/dsh-session-delete.git
启用插件后,在对应 Profile 的 cordis.patch.yml 中添加:
- id: dsh-session-delete
config:
singleHost: true
Desktop 默认配置位于 ~/.dsh/profiles/desktop/cordis.patch.yml;设置了 DSH_HOME 时使用对应目录。完成后重启 DSH Host;Desktop 用户可退出并重新打开应用。
singleHost 默认关闭,关闭时插件不会执行删除。只有确认存储由一个 Host 独占后才应启用;这是使用者的声明,不会自动检测其他进程,也不提供跨进程保护。
典型用法¶
- 按上一节完成安装、启用
singleHost: true并重启 Host。 - 打开侧栏会话行的操作菜单,选择 删除会话。
- 在确认框中核对会话名称和不可恢复提示。
- 点击 永久删除。
若需删除已打开的空闲会话,先按 补丁说明 应用生命周期补丁,再在会话安全关闭后执行上述步骤。
删除失败与重试¶
| 提示或情况 | 处理方式 |
|---|---|
| 会话正在运行 | 等待任务结束后重试;已归档也不代表没有活动任务 |
| 当前 DSH 不支持关闭已加载会话 | 安装生命周期补丁,或重启 Host 后在重新打开目标会话前删除 |
| 会话关闭或持久化失败 | 不继续文件删除;检查 DSH 日志,处理问题并重启 Host 后重试 |
| 部分清理失败 | 数据可能已部分删除;排除存储或 Workspace 错误后重试同一会话 |
| 请求中断或响应无效 | 结果未知;刷新核对,不能据此认为数据仍然完整 |
| 已删除,但列表刷新失败 | 点击 重试刷新,只重试客户端同步 |
同一 Host 内,同一会话的并发请求会合并处理。可安全重试清理,但这不等于删除具有原子性。
适用场景与注意¶
适合需要在单机、单 Host 环境下整理侧栏会话、并明确接受不可恢复删除的 DSH 用户。不适合多实例共享同一套 DSH_HOME 或存储目录的场景。
开发与打包检查(不验证删除行为)可在仓库根目录执行:
npm ci
npm run check
npm run pack:check
行为验收应使用隔离临时目录;README 指向 Desktop 记录、验收报告 等文档。目前仍依赖固定版本的部分内部缓存及 Workspace 接口,不保证其他 DSH 版本兼容。
结尾¶
dsh-session-delete 在 DSH 0.2.1-rc.2 上为侧栏提供带中英文界面的永久删除能力,并限定在单 Host 存储前提下清理可识别的会话持久化与关联数据;已加载空闲会话需配合生命周期补丁。更多信息见目录页 huy8000/dsh-session-delete 与 GitHub 仓库 https://github.com/huy8000/dsh-session-delete。