前言¶
在 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。
典型用法¶
- 在 DSH 桌面 profile 安装并启用插件后,打开带工作区侧栏的界面。
- 对不再需要的、且当前未打开的会话:悬停该行 → ⋯ → Delete session → 确认。日志与投影缓存进入回收站(或
.session-trash),侧栏列表自动更新。 - 若要删的是当前或本次运行中打开过的会话:在确认流程中选择排队删除;完全退出 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。