dsh-session-trash
DSH 会话回收站:删除会话、可恢复、文件留档(DeepSeek Harness 插件)
What it is
DSH 会话回收站:删除会话、可恢复、文件留档(DeepSeek Harness 插件)
How to install
Run this in the DSH web profile, then refresh the page.
$ dsh plugin --profile web add dsh-session-trash@0.1.1
DSH versions accepted
Undeclared
Author and traction
a307608689-afk · ★ 4 · Updated 2026-11-02
About this plugin
dsh-session-trash
> DSH 会话回收站 —— 让「删除会话」变成可撤销的操作。
License MIT · Node ≥ 20 · 依赖 零第三方依赖 · 网络 纯本地,无出站连接
[DSH (DeepSeek Harness)](https://github.com/deepseek-ai) 默认删除会话是直接从工作区列表里摘掉,误删之后只能去磁盘上翻目录。这个插件把删除改成两步:先移进回收站,保留期内随时可以恢复,到期自动清理。
> 非官方插件:本项目由社区开发者维护,不是 DeepSeek 官方项目,与 DeepSeek 官方无隶属关系。完整免责条款见 [DISCLAIMER.md](DISCLAIMER.md)。
它解决什么问题
DSH 里「会话」不是一个数据库行,而是磁盘上的一个目录:
~/.dsh/sessions/<工作区目录名>//session.v4.jsonl.zstd
哪个会话属于哪个工作区,记在 ~/.dsh/storages/workspace.json 的名单里。原生删除只做「从名单里摘掉 + 删目录」,没有回收站,也没有撤销。
这带来三个实际问题:
1. 手滑即永久丢失 —— 删除没有二次确认和留档,误删就只能靠时间机器 / 文件恢复工具;
2. 不知道删掉了什么 —— 删除前看不到会话多大、有没有附件、是不是正在运行;
3. 删完侧栏还挂着 —— 内存里的工作区快照没刷新,界面上还看得到,点进去报错。
这个插件针对性地做了三件事:回收站(可恢复)、删除前分析(知道在删什么)、留档(留一手证据),另外补了孤儿目录清理、退出自检、崩溃自愈这些运维向能力。
截图
| 删除入口 | 删除前分析 |
|---|---|
| | |
| 回收站 | 批量操作 |
| | |
| 附件明细 | 彻底删除 |
| | |
功能
- 删除会话:会话「⋯」菜单最下面多一项「删除会话」(红色,单独一排)。
- 删除前分析:先告诉你这个会话在不在本地、目录多大、是否归档 / 置顶 / 还在运行,再让你确认。
- 移入回收站:会话目录搬到
~/.dsh/session-trash/payload//,同时从workspace.json的三处名单里摘掉(改动前自动备份)。 - 回收站管理:设置 → 回收站,列出所有条目,可以恢复(回原位、恢复归档/置顶状态)、彻底删除、批量操作。
- 保留期:默认 30 天,可配置 5–1440 天;到点自动清理,每次动作写
journal.jsonl。 - 文件留档:删除前自动生成元数据快照(zstd 压缩 + sha256 校验),留档失败会中止删除。
- 退出自检 + 崩溃自愈:页面退出时做一次只读体检;启动时把回收站索引与磁盘目录对齐。
- 孤儿会话目录清理:找出磁盘上不属于任何工作区的会话目录,可以批量移进回收站。
安装
本插件通过 package.json 里的 dsh 字段和 cordis.patch.yml 声明,属于 DSH 的 Web 客户端插件。
1. 克隆或下载本仓库:
git clone https://github.com/a307608689-afk/dsh-session-trash.git
2. 把插件目录放到 DSH 能加载的位置,或在 DSH 的插件管理界面里添加本地路径;
3. 完全退出并重新启动 DSH;
4. 打开 设置 → 回收站,能看到条目列表就说明加载成功。
具体加载方式随 DSH 版本可能不同,以你所用版本的插件文档为准。
环境要求:Node.js ≥ 20、DSH Web 端。
使用
删除一个会话
1. 在侧栏找到会话,点它右侧的「⋯」菜单;
2. 选最下面的 删除会话;
3. 看完分析信息,点确认 —— 会话进入回收站。
恢复或彻底删除
设置 → 回收站:
- 「恢复」:把会话目录搬回原位,归档 / 置顶状态一并恢复;
- 「彻底删除」:不可撤销,删除前会先做一次留档;
- 支持勾选多条批量操作。
保留期
默认 30 天。到期后自动清理(插件每分钟检查一次,默认每 30 分钟执行一轮)。
# 改成 90 天(接口方式)
curl -X POST http://127.0.0.1:<端口>/dsh-session-trash/config \
-H 'content-type: application/json' \
-d '{"retentionDays":90}'
autoPurgeMinutes 可设 5–1440,0 表示关闭自动清理。
实现方式
> 细节见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)。
插件分两半:
| 部分 | 文件 | 做什么 |
|---|---|---|
| 宿主半端 | index.js | 路由、存储、删除 / 恢复 / 留档 / 清理逻辑 |
Compare in this category
The five most-starred plugins in the same category.
| Plugin | Author | Stars | Version | Updated |
|---|---|---|---|---|
| dsh-purge | kingcharleslzy-ai | 6.3K | 1.6.86 | 2026-11-08 |
| dsh-unrestricted | yexi-by | 1.1K | 0.2.8 | 2026-11-05 |
| dsh-univer-office | dream-num | 707 | 0.4.0 | 2026-11-03 |
| dsh-synapse | liangmianya | 697 | 0.5.7 | 2026-11-04 |
| dsh-qqbot | tencent-connect | 570 | 0.5.5 | 2026-11-08 |