前言¶
DeepSeek Harness(DSH)侧栏里的会话可以归档:条目会从列表里消失,需要时还能恢复。但归档并不等于从磁盘上清掉数据。压缩日志仍留在 ~/.dsh/sessions/,投影检查点仍在 ~/.dsh/storages/session_projcache/,工作区也会继续为可能再也不会打开的会话 id 记账。若你关心本地留存、隐私或磁盘占用,需要的是「删除」而不是「隐藏」。
社区插件 dsh-session-delete(仓库 Adolanium/dsh-session-delete)在 DSH 0.2.x 上补了这一动作:在会话行菜单底部增加 Delete session…,经确认后由 Host 清理日志、投影缓存与工作区记账,而不是仅归档。插件由 Adolanium 维护,分类为客户端;MIT 许可,非 DeepSeek 官方产品。
这是什么¶
dsh-session-delete 的定位是:为 DeepSeek Harness 提供永久会话移除能力。npm 包名为 dsh-plugin-session-delete(当前资料中版本为 0.1.0)。它在不改变内置归档行为的前提下,在同一菜单里增加第二条、需二次确认的路径。
| 归档(Archive) | 删除(Delete) | |
|---|---|---|
| 侧栏行消失 | 是 | 是 |
| 磁盘上的会话日志 | 保留 | 移除 |
| 投影缓存 | 保留 | 移除 |
| 工作区记账 / 置顶 / 归档项 | 保留 | 移除 |
| 可恢复 | 可取消归档 | 不可 |
环境与安装¶
依赖:DeepSeek Harness 0.2.x(README 写明在 0.2.1-rc.1 上测试)。Desktop 与 Web UI 均支持。包为纯 JavaScript,无 prepare 脚本、无运行时依赖,Node >= 20。
下面介绍两种常用安装方式;安装规格均为 GitHub 地址,而非凭名称拼接。
从 Plugins 页面安装(推荐)¶
- 打开侧栏,进入 Plugins。
- 选择安装插件,粘贴:
github:Adolanium/dsh-session-delete
- 完成安装;bundle 默认启用。
- 刷新 DeepSeek Harness 窗口(
Ctrl+R/Cmd+R)。浏览器端懒加载,菜单项需在刷新后出现。
使用 dsh CLI¶
若你自行启动 profile(Web、headless 或已停止的 Desktop),可对命名 profile 安装同一规格:
dsh plugin --profile desktop add github:Adolanium/dsh-session-delete
dsh 会把 bundle 写入 profile 的 dsh.profile.bundles(包声明了 dsh.bundle)。启动 Harness 后同样建议刷新窗口。
若需固定到某一发布版本,可带标签安装(README 示例):
dsh plugin --profile desktop add github:Adolanium/dsh-session-delete#v0.1.0
卸载:
dsh plugin --profile desktop remove dsh-plugin-session-delete
在 Desktop 已运行时对 desktop profile 执行 CLI 受 profile 锁支持,但 Plugins 页面通常更省事且会报告激活状态。
典型用法¶
打开某条会话行右侧 ⋯ 菜单,选择 Delete session…。对话框会显示会话名称,并说明将移除日志及其缓存投影。Delete 执行删除;Cancel 不做任何改动。
不同会话状态下的结果如下。
| 状态 | 行为 |
|---|---|
| Cold — 无存活 Agent 占用 | 立即删除;行从列表消失,对话框关闭。 |
| Live — 本应用打开或仍有运行中的 turn | 对话框说明日志仍在使用,可提供 Delete on next start。 |
| Unknown id | 拒绝;不改动任何数据。 |
Delete on next start¶
存活会话无法从 Agent 底下强行摘掉,因此可排队删除:
- id 写入
~/.dsh/plugin-session-delete/pending.json; - 会话会尽力归档,使行从默认列表消失;
- 下次启动 DeepSeek Harness 时在写句柄空闲时重试删除;
- 若你取消归档该会话,则取消排队删除 — 归档即可见的「待删除」状态。
已不存在的排队 id 会静默丢弃;仍在使用的 id 会保留到下一次启动再试。
删除范围与安全¶
对单个会话 id,Host 会移除:
~/.dsh/sessions/<project>/<session-id>/下的会话目录(含各代session.vN.jsonl.zstd与锁文件);session_projcache域中的投影缓存记录(经域 API,避免内存残留);- 工作区记账槽、全局置顶与归档项。
故意保留的内容包括:~/.dsh/attachments 下按内容寻址的附件(可能与其他会话共享);子 Agent 子会话(独立 id,需单独删除);若组合了 dsh-session-query-sqlite,SQLite 搜索索引会在下次搜索时 reconcile;其他域中的派生行(遥测、标题等)因 id 无法解析而被忽略。
插件围绕四条规则设计删除安全性:单写者(先取得 persistence 写句柄并立即关闭,失败则拒绝删除);仅 loopback(非本机来源拒绝);严格 id 与目录校验;日志不在配置根下则拒绝删除而非只清记账。无网络、无遥测、无后台进程。
可选配置(均可省略,默认与标准安装一致)包括:dshHome(默认 $DSH_HOME 或 ~/.dsh)、sessionsRoot(默认 <dshHome>/sessions)、storagesRoot(默认 <dshHome>/storages,README 配置表在资料中截断,其余字段以仓库文档为准)。
适用场景与注意¶
适合需要在 DSH 侧栏明确「删掉这条会话及其本地持久化痕迹」的开发者或自用环境,例如清理试验会话、减少 ~/.dsh 占用,或在归档仍不够时做不可逆移除。
安装前请知悉:这是会主动删除本地文件的社区代码,以当前 DSH 进程权限运行;应先阅读仓库 Safety 与源码、确认 MIT 许可。DeepSeek Harness 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系,亦非官方应用商店。
结尾¶
归档适合「先藏起来还能回来」;dsh-session-delete 提供与之并列、需确认的 Delete session…,在 Host 侧一并清理日志、投影缓存与工作区记账。安装规格为 github:Adolanium/dsh-session-delete,装好后刷新界面即可在会话菜单中使用。