dsh-session-delete:从侧栏上下文菜单删除 DSH 会话

前言

在 DeepSeek Harness(DSH)里长期开发智能体时,侧栏会积累大量会话:每条会话对应事件日志目录和回放投影缓存。若只靠手动在文件系统里删目录,容易漏掉 storages/session_projcache 下的缓存,且当前正在打开的会话更不能在进程仍持有状态时硬删。下面介绍社区插件 dsh-session-delete(维护者 ashulam,分类:客户端),它把「删除会话」放进侧栏 Session 行的上下文菜单,并按会话是否处于本次运行中的 live 状态,走立即删除或下次启动排队清理两条路径。

这是什么

dsh-session-delete 是 DSH 的客户端插件:在侧栏会话列表里,悬停某一行并点击 ⋯,菜单中会出现 删除会话 / Delete session。插件对「冷」会话做可恢复的物理删除;对「热」会话则写入删除队列,在下次启动 DSH 时再清空队列并移除文件。实现上分为 Host 端 HTTP 路由与浏览器端菜单项、启动通知,依赖 DSH 0.2.x 提供的 sidebar.workspaces.session.menu.item 与 shell.overlay 等插槽。

核心功能

上下文菜单删除

操作路径:悬停会话行 → 点击 ⋯ → Delete session。删除前会弹出确认对话框。

按会话状态区分行为

会话状态 行为
Cold(本次应用运行未加载) 立即删除;该会话的日志与回放缓存进入 Windows 回收站(非 Windows 时回退到 <DSH_HOME>/.session-trash/)。侧栏通过客户端 Session 控制器自行刷新,无需整页重载。
Live(当前打开,或本次运行中曾打开) DSH 未提供「关闭会话」类 API,无法在运行时安全删文件。插件可将其 排队:POST /dsh-session-delete/queue 写入 <DSH_HOME>/.session-delete-queue.json,下次启动时在打开任何会话之前先排空队列。

若在重启后完成了排队会话的清理,界面角落会显示小通知:列出已删除会话标题(最多五条,其余显示数量),并报告未能删除、仍留在队列中的条目。

实际删除的文件

针对一个 session id,插件会移除:

路径 内容
<DSH_HOME>/sessions/<project>/session-<id>/ 追加式事件日志目录
<DSH_HOME>/storages/session_projcache/sessions/<id>.json 回放/投影缓存

不会动附件(共享、按内容寻址的 blob);Workspace 注册表里的 sessionIds 条目也会保留——注册表没有「注销会话」API,侧栏在对应存储已不存在时会跳过该 id。

安全与恢复

  • 对 live 会话直接删除会拒绝(HTTP 409),只能通过排队在下次启动删除。
  • HTTP 路由位于 Host 的浏览器信任边界内(connection.requestRejection),且只接受 session-<uuid> 形式的 id。
  • 删除可恢复:Windows 回收站,或 <DSH_HOME>/.session-trash/ 下带时间戳的目录。

安装与启用

插件已列入 DSH 插件市场;也可按 README 手动安装。官方命令如下(注意 profile 与 add 子命令写法):

dsh plugin --profile desktop add github:ashulam/dsh-session-delete

本地 checkout 时,可在 profile 目录用 pnpm add file:<path to this repo>,并在 package.json 的 dsh.profile.bundles 中加入 dsh-session-delete。

典型用法

  1. 在 DSH 桌面 profile 安装并启用插件后,打开带工作区侧栏的界面。
  2. 对不再需要的、且当前未打开的会话:悬停该行 → ⋯ → Delete session → 确认。日志与投影缓存进入回收站(或 .session-trash),侧栏列表自动更新。
  3. 若要删的是当前或本次运行中打开过的会话:在确认流程中选择排队删除;完全退出 DSH 后再次启动,启动阶段会处理队列,并在角落显示本次清理结果摘要。

Host 侧还提供 POST /dsh-session-delete/delete、GET /dsh-session-delete/last-drain 等路由(见仓库 lib/index.js);日常使用以侧栏菜单为主。

适用场景与注意

适合谁:需要在 DSH 侧栏里常规整理会话、且希望日志与 session_projcache 一并清理的开发者;在 Windows 上可优先利用系统回收站误删恢复。

环境要求:DeepSeek Harness 0.2.x;回收站行为以 Windows 为完整支持,其他平台使用 .session-trash 目录回退。

权限与信任:插件以当前 DSH 进程权限读写 <DSH_HOME> 并调用 Host HTTP 接口。安装前建议在 GitHub 仓库 阅读源码与 MIT 许可证,确认符合你的安全策略。社区目录站点与 DeepSeek / 幻方无官方从属关系,插件来自社区维护者 ashulam。

结尾

dsh-session-delete 把会话删除收敛到侧栏菜单一条路径:冷会话即时进回收站(或 trash 目录),热会话排队到下次启动,并明确只删日志与投影缓存、不动附件。更多信息见 SkillHub 目录页 与 GitHub:ashulam/dsh-session-delete。

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

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

小夜