前言¶
在 DeepSeek Harness(dsh)里整理会话时,内置能力主要是「归档」:会话从侧栏藏起来,并阻止后续运行,但日志仍占磁盘,也不能像常见产品那样「删错了还能捞回来」。若你希望右键就能删除会话,且先进入回收站、可撤销或在设置里统一恢复/清空,需要客户端侧的扩展。skyrocks/dsh-session-trash(npm 包名 @skyrocks/dsh-session-trash)由维护者 skyrocks 发布,分类为客户端插件,当前 GitHub 星标为 0,版本 0.1.2,许可证 MIT。
下面介绍它做什么、如何安装,以及使用时需要留意的边界。
这是什么¶
dsh-session-trash 是 DSH 的 Host + 客户端插件:在会话列表右键增加「删除会话…」,确认后先把整棵会话目录移入本机回收站,而不是立即抹掉;提示条可即时撤销,也可在「设置 → 回收站」里逐条恢复、彻底删除或一次清空。
与内置归档对比:归档不释放目录;本插件把删除拆成「移入回收站 → 再决定是否 purge」,降低误删风险。删除父会话时,origin === 'subagent' 的子会话会进入同一条回收站记录并一并恢复;fork 出来的会话视为独立会话,不会随父会话被带走。
核心功能¶
删除与撤销¶
- 右键目标会话 → 菜单底部「删除会话…」。
- 确认框点「移入回收站」:侧栏消失,数据搬到
~/.dsh/trash/sessions/<删除时间>-<会话 id>/。 - 提示条点「撤销」:目录原样搬回,归档/置顶状态一并还原。
- 未点撤销时,在 设置 → 回收站 对每条执行「恢复」或「彻底删除」,或清空全部。
安全拒绝¶
插件会在两种情况下拒绝删除,并给出说明:
| 情况 | 表现 | 原因 |
|---|---|---|
| 会话(或其子会话)正在本机打开 | 提示先切换或重启 | 写句柄仍持有锁,边写边删会冲突 |
| 仍有运行中工作 | 列出回合/子会话/后台或定时任务 | 复用归档侧活动检查,避免删掉正在跑的任务 |
未归档会话也可直接删:插件会先逐个替你归档(含活动检查);任一被拒则整体回滚,全部成功后才清理归档/置顶标记。
配置¶
在 profile 的 cordis.patch.yml 中按插件 id 覆盖:
- id: session-trash
config:
retentionDays: 0 # >0 时打开回收站会清理超过 N 天的条目;0 表示不自动清理
trashRoot: "" # 自定义回收站根目录;空则使用 <DSH_HOME>/trash/sessions
磁盘布局与手动救援¶
回收站条目结构如下:
~/.dsh/trash/sessions/<deletedAt>-<rootSessionId>/
meta.json # 根会话 id/标题/cwd、删除时间、字节数、各会话原路径与归档/置顶状态
sessions/<escaped-session-id>/… # 各被删会话目录
恢复只依赖 meta.json:搬回原路径并还原 wasArchived / wasPinned;恢复前会预检目标路径,任一占用则整条中止。也可手动 mv 回原路径。会话目录与回收站不在同一磁盘时会退化为「复制 + 删除」(EXDEV)。插件不联网、不发送遥测,仅在 ~/.dsh 下读写会话与回收站路径。
安装与启用¶
发布后从 GitHub 默认分支安装(桌面 profile):
dsh plugin --profile desktop add github:skyrocks/dsh-session-trash
使用 dsh web 时,将 --profile desktop 换为 --profile web。装完后完全退出 DSH 再打开——Host 插件只在启动时加载。
兼容性(来自仓库说明):DSH >= 0.2.1-rc.3 < 0.3.0(在 0.2.2-rc.1 桌面端验证),Node >= 18;无额外运行时依赖,使用 DSH 已有的 cordis 等 peer。
插件以当前 dsh 进程权限读写本机会话与回收站目录;安装前建议在 GitHub 仓库 查看源码与 MIT 许可证。
已知取舍¶
workspace.json可能留下悬空 id(工作区注册表无公开「移除成员」API);侧栏会过滤无 summary 的 id,视觉无影响。- 不删除附件:附件在
~/.dsh/attachments/v1/objects内容寻址共享,不随单会话删除;空间回收需单独 GC。 - 不能删除当前正在使用的会话,需先切换到其他会话。
- 删除后列表依赖
sessions.refresh()对账;Host 卡顿时可能需要手动刷新页面。
结尾¶
若你希望在 DSH 里用「回收站」模型管理会话删除,而不是仅归档或不可逆清目录,可按上述命令安装 @skyrocks/dsh-session-trash,并在误删时利用撤销或设置页回收站恢复。
- 社区目录页:https://www.skillhub.cn/plugins/skyrocks/dsh-session-trash
- 源码与说明:https://github.com/skyrocks/dsh-session-trash
(SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本介绍事实以仓库 README 与 package.json 为准。)