dsh-session-clean-delete:在 DeepSeek Harness 侧边栏添加永久删除会话能力

前言

在 DeepSeek Harness(DSH)中,Archive 会话只是将行移到“归档”列表,且可以撤销。对于需要彻底清理的会话,Archive 不够用。一个简单的 rm session.log 往往只删除日志文件,而不会让行从侧边栏消失,因为 Host 仍然持有会话的“live”状态,刷新后会重新出现。

下面介绍一个插件,它在侧边栏每个会话的 … 菜单中添加“删除会话”操作,并在删除前弹出确认对话框,告知即将删除的内容。确认后,它会真正停止会话工作、解绑会话目录与投影检查点、从所有注册表中释放 ID,并刷新侧边栏,让行彻底消失。该插件不提供撤销与回收站,由对话框明确提示这一点。

插件是什么

  • 名称:dsh-session-clean-delete
  • 维护者:wilsonchengassistant
  • 类型:客户端插件
  • 核心价值:为 DSH 侧边栏会话菜单提供“永久删除会话”能力,与 Archive 互为补充

插件通过一个 Typert Remote 服务实现,不依赖 HTTP 路由与权限检查,浏览器端通过 RPC 调用 Host 端的 sessionDelete 服务。确认对话框会列出会话的 live 状态、日志大小、运行中的轮次、子代理、后台任务与提醒数量,并显示将被删除的提醒总数。

核心功能

  1. 菜单入口:在每个会话的 … 菜单中插入“删除会话”行,顺序在 Pin / Rename / Fork / Archive 之后。
  2. 确认对话框:打开后显示:
    - 会话是否仍在当前机器上打开(无法在之后重新打开);
    - 即将被删除的日志大小;
    - 绑定到该会话的运行中轮次、子代理、后台任务与提醒;
    - 随同删除的提醒数量。
  3. 删除执行:确认后执行:
    - 停止会话的工作;
    - 解绑会话目录与投影检查点;
    - 按代理循环的销毁顺序先释放代理,再释放会话,并调用 unarchiveSession(id) 与 workspace.detachSession(id);
    - 从各个注册表中释放 ID。
  4. 刷新侧边栏:删除完成后刷新侧边栏,会话行消失。
  5. 无撤销与回收站:对话框明确提示没有撤销与回收站。

安装与启用

插件以 dsh.bundle manifest 形式发布,dsh plugin 会将其安装为 profile 层,无需手动编辑 cordis.patch.yml。包声明零依赖,不添加额外的 @deepseek-ai/* 导入。

  1. 在终端执行:
dsh plugin --profile web add dsh-session-clean-delete

这是 npm 名称,也是仓库名称。

  1. 从源码克隆后,使用 file: 路径安装:
dsh plugin --profile web add file:/path/to/dsh-session-clean-delete

该命令会做两件事:将包加入依赖,并把它追加到 profile 的 package.json 的 dsh.profile.bundles 中。后者是关键,因为 cordis.patch.yml 只对被 bundle 列表命名的包生效。

  1. 验证包已加入树:
dsh --profile <profile> --dump-config | grep -B1 session-clean-delete

输出中应出现类似:

# == …/dsh-session-clean-delete/cordis.patch.yml
- id: session-clean-delete
  name: dsh-session-clean-delete
  1. 重启 Harness。Bundle 在启动时组合,重启前菜单中不会出现“删除会话”行。

常见问题与排查

  • 重复执行相同 add 命令是无操作的。如需重新安装,先删除本地副本:rm -rf ~/.dsh/profiles/<profile>/node_modules/dsh-session-clean-delete。
  • pnpm 会将包复制到 profile 而非创建符号链接,修改源码不会影响运行中的插件。调试时可手动复制 lib/*.js 到 profile 中的 node_modules/dsh-session-clean-delete/lib/;client.js 支持热重载,index.js 需要重启。
  • 确保 dsh plugin 能找到 pnpm(corepack enable pnpm)。
  • 若包发布不足 24 小时,pnpm 可能安装低于 registry latest 的版本,这是 minimumReleaseAge 安全机制,不是缓存问题。可等待或使用版本范围 ^x.y.z。

适用场景与注意

  • 适合需要彻底清理会话、不希望保留归档列表的场景,例如清理大量测试会话、归档后仍需永久移除的会话。
  • 插件以当前 DSH 进程的权限运行,删除操作不可逆,请谨慎确认对话框中的信息。
  • 安装前建议检查源码与许可证(MIT),确保符合你的使用环境与安全要求。

小结

该插件为 DSH 侧边栏提供了“永久删除会话”的选项,与 Archive 形成互补。它通过确认对话框展示会话状态与删除内容,并正确处理 Host 的 live 状态,避免简单 rm 导致的行重新出现。安装简单,依赖零,适合需要在会话管理中彻底清理的场景。

  • 目录页:https://www.skillhub.cn/plugins/wilsonchengassistant/dsh-session-clean-delete
  • GitHub:https://github.com/wilsonchengassistant/dsh-session-clean-delete
羽毛球分组比赛记分
小程序二维码

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

Xiaoye