前言¶
在 DeepSeek Harness(DSH)里长期跑智能体,侧栏会话会越积越多。官方提供的是归档(archive):会话从列表里藏起来,数据仍在磁盘上,且没有「删掉」这条路径。想清理列表、误操作想反悔,或希望过一段时间再彻底释放空间,单靠归档往往不够顺手。
社区插件 @lazyra/dsh-session-trash(维护者 LazyRa,SkillHub 分类为「记忆」)把「删除」做成移入回收站:默认保留 7 天可恢复,到期自动清理。下文介绍它的定位、能力、安装方式与使用要点;事实均来自项目 README 与 package.json。
这是什么¶
一句话:为 DSH 增加可恢复的会话删除——删除时把会话目录移动到 <DSH_HOME>/trash/,而不是直接抹掉;侧栏提供回收站页面,支持恢复与彻底删除。
- npm 包名:
@lazyra/dsh-session-trash(当前版本0.1.1,MIT 许可) - 运行要求:
dsh≥0.2.0,Node ≥22.19.0 - 目录页:SkillHub - dsh-session-trash
- 源码:GitHub - LazyRa/dsh-session-trash
核心功能¶
下面能力均在 README 中写明,安装验证说明插件从 npm 安装后删除、撤销、回收站均可正常使用。
| 能力 | 说明 |
|---|---|
| 删除即入回收站 | 会话目录被移动(rename)到 trash/,不就地删改会话文件 |
| 6 秒内撤销 | 删除后顶部提示条可一键恢复,无需先打开回收站 |
| 7 天保留期 | 期内可随时恢复;启动时扫描一次,之后默认每 6 小时清理过期条目 |
| 回收站页面 | 侧栏「回收站」:搜索标题/路径、按删除时间/大小/名称排序、显示占用 |
| 完整恢复 | 回到原工作区与原位置,标题、排序、置顶等状态一并处理 |
| 界面即时刷新 | 通过 DSH 事件链路(如 api-session/removed / api-session/added),删完侧栏立即更新 |
| 快捷键 | Ctrl/Cmd + Shift + Delete 删除当前打开的会话 |
| 运行中保护 | 会话仍在跑时会先询问,避免静默打断 |
| 中英双语 | 跟随 DSH 语言设置 |
与归档的对比(README 表述):归档是藏起来且可反悔;本插件提供明确的「删除 → 回收站 → 恢复或彻底删除」路径,并配合自动过期清理。
附件:attachments/v1/objects/ 为内容寻址存储,多会话可能共用同一对象,删除会话不会删除附件,以免破坏其他会话历史。
安装与启用¶
插件已发布到 npm,README 给出三种方式;装好后需重启 DSH,侧栏应出现「回收站」。
方式一:插件管理器(推荐)¶
- 侧栏打开 插件
- 添加插件
- 输入
@lazyra/dsh-session-trash - 安装 → 启用 → 重启 DSH
方式二:命令行¶
dsh plugin --profile desktop add @lazyra/dsh-session-trash
方式三:从本地目录安装¶
README 说明可先取得源码目录,再执行(路径换成你的实际路径):
dsh plugin --profile desktop add /path/to/dsh-session-trash
若侧栏没有「回收站」,检查插件是否已启用并已重启。
典型用法¶
删除会话¶
侧栏会话行悬停 → ⋯ → 删除会话。删除后可用顶部提示条在约 6 秒内撤销。
管理回收站¶
侧栏进入 回收站:
- 恢复:会话回到原工作区与原位置
- 彻底删除:永久删除,不可撤销(有二次确认)
- 全部删除:清空回收站
- 搜索 / 排序 / 刷新:按标题或路径过滤,按删除时间、大小或名称排序
快捷键¶
| 快捷键 | 功能 |
|---|---|
Ctrl/Cmd + Shift + Delete |
删除当前打开的会话 |
配置¶
在 profile 的 cordis.patch.yml 中为插件增加 config:
- id: dsh-session-trash
name: "@lazyra/dsh-session-trash"
config:
retentionDays: 7 # 会话保留天数,默认 7
sweepIntervalMs: 21600000 # 自动清理间隔(毫秒),默认 6 小时
home: null # DSH home 路径,默认读 $DSH_HOME 或 ~/.dsh
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
retentionDays |
number |
7 |
回收站保留天数,到期后自动彻底删除 |
sweepIntervalMs |
number |
21600000 |
过期扫描间隔,最小 60000 毫秒 |
home |
string \| null |
null |
DSH home,留空则自动推断 |
工作原理(摘要)¶
删除时除移动 sessions/<projectKey>/<sessionId>/ 外,还需同步 storages/workspace.json(从成员/归档/置顶集合移除)和 storages/session_projcache/(一并进回收站),否则会出现侧栏「幽灵会话」或恢复后标题丢失。回收站条目目录内含 meta.json(原位置、标题、删除时间)与会话本体等文件。
HTTP API 挂在 /api/dsh-session-trash/ 下,均为精确路由,例如 POST list、move、restore、purge、purge-all、sweep 等(详见 README「HTTP 接口」一节)。
适用场景与注意¶
适合谁:侧栏会话需要定期清理、希望误删可恢复、又希望在保留期后自动释放磁盘的用户。
权限与安全:插件以当前 DSH 进程权限读写本机 <DSH_HOME>;安装前建议阅读源码与 MIT 许可证,确认符合你的环境策略。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。
已知限制(README):
projectKey路径编码在 DSH 侧存在既有行为,插件通过记录原始 key 规避恢复错位- 会话日志格式会探测
session.v<N>.jsonl.zstd,若 DSH 引入全新存储结构可能需要插件更新 - 主要在桌面端验证,Web 端理论可用但未充分测试
结尾¶
dsh-session-trash 在 DSH「一切皆插件」的生态里,补上了官方归档之外的可恢复删除与回收站管理,默认 7 天保留、定时清扫,并尽量与侧栏状态同步。需要进一步了解或安装,可访问 SkillHub 目录页 与 GitHub 仓库。