前言¶
DeepSeek Harness(DSH)的会话会落在本机:JSONL 日志、投影缓存、工作区注册表里的引用。归档或改名只能改变「是否显示」,不会把磁盘上的会话目录清掉。若需要彻底移除某次对话——包括侧边栏条目和对应文件——官方界面里没有单独的「永久删除」入口时,只能手动找路径删目录,容易漏掉缓存或注册表残留。
下面介绍社区插件 dsh-session-remover(npm 包名 @jamolpe88/dsh-session-remover),维护者为 JaMoLpE88,分类为客户端插件。它在每个会话行的 ⋯ 菜单里增加一条红色的 Delete session,经确认后关闭正在运行的 Agent,再删除会话目录、投影缓存,并清理工作区注册表中的引用。插件不发起网络请求,也没有设置页。
这是什么¶
一句话:在 DSH Desktop 侧边栏会话菜单中,经二次确认后永久删除指定会话及其在本机的对话日志与缓存数据。
与「仅归档、隐藏侧边栏行」不同,删除会直接移除 <session store>/<project>/<session-id>/ 下的 .jsonl.zstd 等文件,并删除 storages/session_projcache/sessions/<session-id>.json,同时在 storages/workspace.json 里解除挂载、取消置顶与归档标记。会话不会进入回收站,空间会立即释放。
界面为英文;README 说明无设置页、无归档管理器、无 Agent 工具或斜杠命令。
核心功能¶
侧边栏入口与确认流程¶
- 在每个会话行
⋯菜单中,在内置项(pin、rename、fork、archive、copy Session ID)之后增加红色 Delete session。 - 弹出 DSH 风格确认框,写明将要删除的会话名;Cancel 默认获焦,按 Escape 可关闭且不执行任何操作;只有确认 Delete permanently 后才会向 Host 发送请求。
删除前关闭会话¶
若该会话当前打开,插件会按 DSH 自身 Agent 的 teardown 顺序(stop、drain、释放 writer、detach)关闭,完成后再动存储。
实际清除的范围¶
| 路径 | 含义 |
|---|---|
<session store>/<project>/<session-id>/ |
会话目录及版本化 JSONL 日志等 |
storages/session_projcache/sessions/<session-id>.json |
标题、消息派生字段等投影缓存 |
storages/workspace.json |
仅更新引用:detach、unpin、清除 archive 标记 |
删除后会刷新侧边栏;若删的是当前主面板显示的会话,会清空主面板。Host 侧还会用廉价搜索协调 SQLite 搜索索引。
不会删除的内容¶
- 附件:图片与文件在
attachments/v1/objects/<hash>内容寻址存储中,可能被 fork 后的会话共用;插件不删附件,避免误伤其他会话。 - 其他会话、工作区工程文件、DSH 自身日志、用户自备份、已离开本机的副本等均不触碰。
已归档且侧边栏无行的会话:需先在 DSH 自带归档页取消归档,再在其 ⋯ 菜单中删除。
安装与启用¶
要求(来自 README):
- DSH Desktop
>= 0.2.1-rc.3,profile 为desktop(README 在0.2.1-rc.3、Windows 11 上测试)。 - 默认的 per-session JSONL 会话存储;非 JSONL 后端在加载时会被拒绝。
- Node 22+(DSH 自带运行时)。
- 安装或更新插件后须完全退出并重新打开 DSH。Host 半部拦截 Agent 生命周期,只能关闭「插件加载之后」打开的会话;对加载前已打开的会话会拒绝删除,避免半删状态。
从 npm 安装:
dsh plugin --profile desktop add @jamolpe88/dsh-session-remover
从 GitHub 仓库安装:
dsh plugin --profile desktop add github:JaMoLpE88/dsh-session-remover
安装完成后完全退出 DSH 再打开,并刷新窗口。
package.json 中当前版本为 0.1.1,许可证 MIT。兼容性表注明 macOS、Linux 与 web profile 未测试;会话存储须为 JSONL 后端。
典型用法¶
- 在侧边栏将鼠标悬停于目标会话,打开
⋯菜单。 - 选择最后一行红色的 Delete session。
- 在对话框中核对会话名称,点击 Delete permanently 确认,或取消。
删除过程经 Host 路由 POST /plugins/session-remover/delete 完成;请求须通过 Host 的 request fence,并携带头 x-session-remover-confirmation: delete-session,普通链接或跨站表单无法伪造该头。会话 id 在写路径前会按 ^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$ 校验。
适用场景与注意¶
适合谁:需要在 DSH 内一键、可确认地清除某会话在本机的痕迹(隐私整理、误建会话、不再需要的实验对话),且接受「纯文本会话几乎不占附件空间、带图会话的附件仍留在磁盘」这一设计。
权限与安全:插件以当前 DSH 进程权限读写本机会话存储与工作区注册表。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证;删除不可恢复,确认框中的会话名务必核对。
生态说明:DSH 采用「一切皆插件」的扩展方式;社区目录站点 dsh-plugin.org 与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的客户端插件。
结尾¶
dsh-session-remover 把「永久删会话」收成侧边栏里一行菜单加一次确认:会话目录、投影缓存与工作区引用一并清理,且不删共享附件存储。若你的 DSH 版本与 JSONL 存储满足 README 要求,可按上文命令安装并在重启后使用。