前言¶
在 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 状态、日志大小、运行中的轮次、子代理、后台任务与提醒数量,并显示将被删除的提醒总数。
核心功能¶
- 菜单入口:在每个会话的
…菜单中插入“删除会话”行,顺序在 Pin / Rename / Fork / Archive 之后。 - 确认对话框:打开后显示:
- 会话是否仍在当前机器上打开(无法在之后重新打开);
- 即将被删除的日志大小;
- 绑定到该会话的运行中轮次、子代理、后台任务与提醒;
- 随同删除的提醒数量。 - 删除执行:确认后执行:
- 停止会话的工作;
- 解绑会话目录与投影检查点;
- 按代理循环的销毁顺序先释放代理,再释放会话,并调用unarchiveSession(id)与workspace.detachSession(id);
- 从各个注册表中释放 ID。 - 刷新侧边栏:删除完成后刷新侧边栏,会话行消失。
- 无撤销与回收站:对话框明确提示没有撤销与回收站。
安装与启用¶
插件以 dsh.bundle manifest 形式发布,dsh plugin 会将其安装为 profile 层,无需手动编辑 cordis.patch.yml。包声明零依赖,不添加额外的 @deepseek-ai/* 导入。
- 在终端执行:
dsh plugin --profile web add dsh-session-clean-delete
这是 npm 名称,也是仓库名称。
- 从源码克隆后,使用
file:路径安装:
dsh plugin --profile web add file:/path/to/dsh-session-clean-delete
该命令会做两件事:将包加入依赖,并把它追加到 profile 的 package.json 的 dsh.profile.bundles 中。后者是关键,因为 cordis.patch.yml 只对被 bundle 列表命名的包生效。
- 验证包已加入树:
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
- 重启 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