DSH Session Delete:在会话菜单中增加彻底删除会话的选项

前言

在 DeepSeek Harness(DSH)中,归档会话只是把会话从列表中移除,对应的文件仍然保留在磁盘上,可以取消归档恢复。对于需要彻底清理会话数据的场景,这个原生行为不够直接。DSH Session Delete 插件在会话菜单的「归档会话」下方增加了一个「删除会话」项,一次点按即可删除该会话及其全部数据,且不进入回收站。

这是什么

DSH Session Delete 是一个 DSH 插件,由 Dubai1210 维护。它扩展了 DSH 客户端的会话菜单,在「归档会话」之后插入一个「删除会话」选项。点击后,会话标题显示在确认框中,确认后该会话及其磁盘上的所有数据都会被移除。

核心功能

菜单项位置

菜单项被插入到 sidebar.workspaces.session.menu.item 插槽,顺序为 410,位于「归档会话」之后、「会话 ID」之前。

删除范围

一次删除操作会清理以下内容:

  • 正在运行的 agent:调用 cancel({kind:"user"}) 并执行 agent.scope.dispose(),释放日志文件句柄
  • 会话日志目录:~/.dsh/sessions/<project>/<session-id>/ 整目录删除,包括 session.v4.jsonl.zstd 等世代日志
  • 投影缓存:storages/session_projcache 中该会话的行(含投影后的消息正文)
  • 工作区归属:从每个工作区的 sessionIds 中调用 detachSession
  • 归档 / 置顶集合:从全局 archivedSessionIds、pinnedSessionIds 中移除
  • 客户端列表:通过 ctx.emit("api-session/removed", id) 通知所有客户端窗口移除该行

删除操作不进入回收站,无法恢复。

安装与启用

从 GitHub 安装:

dsh plugin --profile web add github:Dubai1210/dsh-session-delete

本地目录安装(用于开发调试):

dsh plugin --profile desktop add link:/path/to/dsh-session-delete

安装后刷新 DSH 窗口(Ctrl+R)让 client bundle 加载;如果菜单中没有出现新项,重启一次 DSH。

典型用法

  1. 在左侧工作区列表中找到目标会话行,点击行尾的「⋯」
  2. 在菜单中选择「归档会话」下方的「删除会话」
  3. 在确认框中核对会话标题,点击「删除」
  4. 会话行消失,磁盘上的对应目录同时被删除

权限与风险

  • Host 侧注册了一个同源 HTTP 路由 POST /dsh-session-delete/delete,请求体为 {"sessionId":"..."}。同源校验遵循 DSH 官方插件的做法:拒绝 sec-fetch-site: cross-site、origin: null 以及 origin.host 与 host 头不一致的请求
  • 只操作本机 ~/.dsh 下的会话数据和工作区注册表,不发起任何外部网络请求,不依赖任何第三方服务
  • 没有遥测,没有后台常驻任务
  • 唯一的风险是删除是永久性的,确认框是唯一的刹车

兼容与运行要求

  • DSH:0.2.x(desktop profile 与 web profile 均可)
  • 平台:Windows / macOS / Linux
  • 运行时:Node.js >= 18(Host 侧仅使用 node:fs/promises 与 node:path)
  • 依赖的服务:webServer、sessions、agents、sessionPersistence、workspaceRegistry、storageDomain,全部来自 DSH 基础 bundle,无额外依赖

适用场景与注意

适合需要彻底清理会话及其数据(包括日志、投影缓存、工作区归属等)的场景。安装前建议查看源码与许可证,确保符合项目安全要求。

结尾

DSH Session Delete 补上了 DSH 原生「归档」与真正「删除」之间的空白,为会话管理提供了不可逆清理的能力。目录页与源码地址如下:

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

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

小夜