dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
把 DSH 会话删入可恢复的回收站——子会话随其父会话作为一棵树处理,支持批量归档、恢复与彻底删除,只有彻底清除才会真正销毁数据。
给 DSH 补上删除会话的能力——删除即移入可恢复的回收站,子会话跟随主会话整树处理。
DSH 没有删除会话的接口。本插件把它补上,并且做成两步:删除 = 移入回收站,随时可以恢复;只有「彻底删除」才真正销毁磁盘上的字节。
能删除会话的插件不少,本插件围绕三条约定设计:
插件已在 npm 发布为 dsh-recycle-bin。
dsh plugin --profile <profile> add dsh-recycle-bin
也可以直接在市场里搜索 会话回收站 / Session Recycle Bin 点安装。装完 刷新一次页面(Ctrl+F5),侧栏入口会出现在「插件」「定时」「市场」那一排。
本地开发安装(源码即运行代码,不需要 build):
plugin_manager { action: "install_bundle", target: "<本目录绝对路径>" }
| 位置 | 作用 |
|---|---|
| 会话右键菜单 → 红色「删除会话…」 | 先弹确认框(不会单击即删),并写明有几个子会话会一并移入 |
| 会话右键菜单 →「批量操作…」 | 对某个工作区的全部会话批量归档或删除;独立确认框,写明整个选中集合带多少子会话 |
| 侧栏「会话回收站」 | 主区打开完整页面:每条会话行首有复选框、行尾是恢复与彻底删除,上方是选择栏,可批量操作 |
| 右键侧栏图标 | 「清空回收站…」——一键清空的捷径,同样先过写明条数的确认框 |
| 设置 → 会话回收站 | 同一个回收站页,给习惯在设置里操作的人 |
delete_session 工具(给模型用) | preview / trash / trashMany / archiveMany / list / restore / restoreMany / purge / purgeMany / purgeAll,与 UI 共用同一批 Host 方法 |
删除确认框会写明带走的子会话数:
彻底删除前同样先报数:
origin: 'subagent' + parentSession 找到全部子代理会话(任意深度),不依赖侧栏当前显示什么。session-open。~/.dsh/session-recycle-bin/<时间戳>-<id>/,并从工作区登记里摘除,侧栏行随即消失。恢复是反过程,并且先检查整棵树的所有目标路径再动任何一个字节:只要有一个会话会与现有目录冲突,整条恢复就被拒绝,不会出现「父会话回来了、子会话还在回收站」的半棵树。
~/.dsh/attachments/v1/objects,按内容寻址、跨会话共享)、~/.dsh/sessions 下的项目目录本身、以及任何同 ID 的既有会话。session-child)——正确动作是删父会话。父会话已不存在的孤儿子会话仍可按 id 清理。rename 回退到复制(EXDEV);同卷内是原子 rename。delete_session 写调用;那是 DSH 的权限策略,不是插件行为,改用 UI 或换权限预设即可。| 声明 | 值 |
|---|---|
engines.dsh | 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-rc.1 || 0.2.1-rc.2 |
peerDependencies | 10 个包:9 个 @deepseek-ai/dsh-*(同样的 0.2.x-rc.* 区间)+ @deepseek-ai/cordis ~4.0.5 |
DSH 0.2 与 0.1 的插件 API 不兼容(settings API 在 0.2 被移除),所以下限钉在 0.2.0-rc.1,而不是一个会静默排除预发布版本、让用户只看到「没有解释的 ERESOLVE」的宽泛区间。
plugin_manager { action: "remove_bundle" }
回收站里尚未恢复的条目会保留在 ~/.dsh/session-recycle-bin。如果插件已卸载又想把会话找回来,每个条目里都有 entry.json 清单写明每个文件该去哪:把 session/(以及每个 children/<id>/session/)搬回 ~/.dsh/sessions/<projectDir>/<id>/,把 projcache.json 搬回 ~/.dsh/storages/session_projcache/sessions/<id>.json 即可。
MIT