dsh-session-delete:在 DSH 侧栏永久删除会话

前言

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 独占后才应启用;这是使用者的声明,不会自动检测其他进程,也不提供跨进程保护。

典型用法

  1. 按上一节完成安装、启用 singleHost: true 并重启 Host。
  2. 打开侧栏会话行的操作菜单,选择 删除会话。
  3. 在确认框中核对会话名称和不可恢复提示。
  4. 点击 永久删除。

若需删除已打开的空闲会话,先按 补丁说明 应用生命周期补丁,再在会话安全关闭后执行上述步骤。

删除失败与重试

提示或情况 处理方式
会话正在运行 等待任务结束后重试;已归档也不代表没有活动任务
当前 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。

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

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

小夜