给 DeepSeek Harness 会话用的回收站。 从侧边栏删除会话,8 秒内可撤销,之后还能恢复或彻底清除。
30.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wusoudiaowei/dsh-conversation-trash该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · chat
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 16 条)
- 读取本地文件lib/index.mjs:119
await stat(target); - 读取本地文件lib/index.mjs:134
entries = await readdir(current, { withFileTypes: true }); - 读取本地文件lib/index.mjs:144
total += (await stat(child)).size; - 读取本地文件lib/index.mjs:180
workspaces = await readdir(SESSIONS_DIR, { withFileTypes: true }); - 读取本地文件lib/index.mjs:226
const parsed = JSON.parse(await readFile(INDEX_FILE, "utf8")); - 写入本地文件lib/index.mjs:244
await mkdir(TRASH_DIR, { recursive: true }); - 写入本地文件lib/index.mjs:246
await writeFile(temp, `${JSON.stringify(next, null, 2)}\n`, "utf8"); - 写入本地文件lib/index.mjs:247
await rename(temp, INDEX_FILE); - 删除本地文件递归lib/index.mjs:349
await rm(destination, { recursive: true, force: true }); - 写入本地文件lib/index.mjs:350
await mkdir(dirname(destination), { recursive: true }); - 写入本地文件lib/index.mjs:351
await rename(source, destination); - 写入本地文件lib/index.mjs:375
await mkdir(dirname(target), { recursive: true }); - 删除本地文件递归lib/index.mjs:388
await rm(await trashPathFor(entry.id), { recursive: true, force: true }); - 删除本地文件递归lib/index.mjs:391
await rm(entry.origin, { recursive: true, force: true }); - 发起网络请求lib/client.cjs:129
const response = await fetch(`${BASE}${path}`, { - 发起网络请求lib/client.cjs:229
const response = await fetch(`${BASE}/list`);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 会话回收站:8 秒内可撤销,之后可恢复或彻底清除。
README
由 DeepSeek 最新模型翻译生成dsh-conversation-trash
给 DeepSeek Harness 会话用的回收站。 从侧边栏删除会话,8 秒内可撤销,之后还能恢复或彻底清除。
DeepSeek Harness 自带归档,但没有删除:它的持久层没有暴露删除原语,Workspace 注册表也刻意保留每一份会话日志。这个插件把删除实现为若干受支持操作的组合——它从不给宿主二进制打补丁,也从不改动日志格式。
功能
- 从会话行的 … 菜单移入回收站(危险样式,位于 Archive 下方)
- 8 秒内可撤销——弹出带撤销操作的 toast,而不是静默、不可逆的删除
- 子代理级联——被删会话名下的子代理会话一并移走
- 分叉保留——分叉是独立会话,不受影响
- 先停掉正在运行的工作,走宿主自己的归档路径
- 侧边栏底部按钮打开回收站面板,带数量角标:恢复条目、永久删除单条,或清空回收站
- 之后可恢复或清除;回收站位于 ~/.dsh/session-trash/
安装
dsh plugin --profile desktop add github:wusoudiaowei/dsh-conversation-trash
展开完整文档(README 剩余 1 节)
dsh-conversation-trash
给 DeepSeek Harness 会话用的回收站。 从侧边栏删除会话,8 秒内可撤销,之后还能恢复或彻底清除。
DeepSeek Harness 自带归档,但没有删除:它的持久层没有暴露删除原语,Workspace 注册表也刻意保留每一份会话日志。这个插件把删除实现为若干受支持操作的组合——它从不给宿主二进制打补丁,也从不改动日志格式。
功能
- 从会话行的 … 菜单移入回收站(危险样式,位于 Archive 下方)
- 8 秒内可撤销——弹出带撤销操作的 toast,而不是静默、不可逆的删除
- 子代理级联——被删会话名下的子代理会话一并移走
- 分叉保留——分叉是独立会话,不受影响
- 先停掉正在运行的工作,走宿主自己的归档路径
- 侧边栏底部按钮打开回收站面板,带数量角标:恢复条目、永久删除单条,或清空回收站
- 之后可恢复或清除;回收站位于 ~/.dsh/session-trash/
安装
dsh plugin --profile desktop add github:wusoudiaowei/dsh-conversation-trash
或者把这个文件夹复制到 %USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-conversation-trash,再把它加进该配置档的 dsh.profile.bundles,然后重启 DSH。install.ps1 在 Windows 上完成这两步,且可重复执行。
用法
1. 在侧边栏悬停到某个会话行,打开 … 菜单
2. 选择 删除对话 / Delete conversation
3. 对话框会预览标题,以及有多少个子代理会话会一起移走
4. 确认——该行从列表消失,toast 提供 Undo,持续 8 秒
工作原理
| 步骤 | 发生什么 |
| 1 | workspaceRegistry.archiveSession(id, { stopActivity: true })——停掉正在运行的工作并隐藏该行 |
| 2 | 会话目录从 ~/.dsh/sessions/<workspace>/<session-id>/ 移到 ~/.dsh/session-trash/<session-id>/ |
| 3 | 向 ~/.dsh/session-trash/index.json 写入一条记录(临时文件 + 重命名,原子操作) |
恢复会把目录移回,并取消会话的归档状态。清除则永久删除。
两个 Windows 特有的细节:移动执行时日志文件往往还开着,所以移动会带退避重试,失败的尝试记为 moved: false,由启动时的清扫补完;另外会话 id 本身已带 session- 前缀,所以宿主在边界处规范化 id,而不是重新推导。
HTTP 接口
仅限回环地址、同源、application/json 的 POST:
| 方法 | 路径 | 用途 |
| GET | /dsh-conversation-trash/list | 回收站条目与总大小 |
| POST | /dsh-conversation-trash/preview | {sessionId} → 标题、子代理 id |
| POST | /dsh-conversation-trash/delete | {sessionId, displayTitle} |
| POST | /dsh-conversation-trash/restore | {sessionId} |
| POST | /dsh-conversation-trash/purge | {sessionId} |
| POST | /dsh-conversation-trash/purge-all | {} |
测试
node test/smoke.mjs # delete → list → restore → purge against a throwaway HOME
node test/client-shape.mjs # the browser bundle registers the right slots
node test/dry-run.mjs # read-only pass over the real ~/.dsh (skips cleanly if none)
CI 在 Windows 上跑前两个。
已知限制
- 删掉的会话在下次重启前仍会出现在 All conversations (show archived) 下——它已被归档,日志也已经移走。
- 删除你当前正在查看的会话,页面不会跳转。
- 彻底删除还没有设置界面,请走 HTTP 路由。
- 依赖宿主内部实现(slot 名称、archiveSession、日志目录结构)。未来的 DSH 版本可能让它失效;出错时看得见,但不会破坏数据。
- 如果上游哪天真的提供了 session/delete,这个插件就该退休了。
设计说明
docs/design.md 讲清了各项约束、被否掉的备选方案,以及塑造了实现方式的四个 bug。
许可证
MIT
中文摘要
对话回收站:侧栏 … 菜单把会话移入回收站,8 秒内可撤销,之后可恢复或彻底删除;子代理会话随父会话一起删,分叉保留。详见 使用说明.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wusoudiaowei/dsh-conversation-trash
给 DeepSeek Harness 会话用的回收站。 从侧边栏删除会话,8 秒内可撤销,之后还能恢复或彻底清除。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目