在会话菜单一键永久删除会话及其全部磁盘数据
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/Dubai1210/dsh-session-delete.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 删除本地文件递归lib/index.js:213
await rm(dirname(located.path), { recursive: true, force: true }); - 读取本地文件lib/index.js:259
const info = await stat(item.absolute); - 删除本地文件lib/index.js:261
await rm(item.absolute, { force: true }); - 读取本地文件lib/index.js:273
if ((await readdir(current)).length > 0) break; - 删除本地文件lib/index.js:274
await rmdir(current); - 发起网络请求client.js:203
const response = await fetch(path, { - 读取本地文件lib/transcript.js:81
const bytes = await readFile(path); - 读取本地文件lib/classify.js:167
if (existsSync(current + sep + ".git")) return true;
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 插件(DeepSeek Harness 插件):在会话菜单「归档会话」下方增加「删除会话」,点一下就能删掉该会话及其全部数据。
README
由 DeepSeek 最新模型翻译生成DSH Session Delete
Listed on dsh-plugin.org
会话「⋯」菜单的「归档会话」下面多一项 删除会话:点一下、确认一次,这个会话连同它在磁盘上的全部数据都会被彻底删掉。
DSH 自带的「归档」只是把会话从列表里挪走,文件还在、可以取消归档恢复。这个插件补上真正不可逆的那一步。
功能
- 菜单项插在 sidebar.workspaces.session.menu.item 插槽 order 410,即「归档会话」之后、「会话 ID」之前
- 垃圾桶图标,点击先关闭菜单,再弹出二次确认框(显示会话标题,明确写"无法恢复")
- 确认后在 Host 侧一次性完成清理,所有已打开的窗口立刻把该行移除
删除范围
一次调用会删掉下面这些,缺一不可:
| 数据 | 处理 |
| 正在运行的 agent | cancel({kind:"user"}) + agent.scope.dispose(),释放日志文件句柄 |
| 会话日志目录 | ~/.dsh/sessions/<project>/<session-id>/ 整目录删除(session.v4.jsonl.zstd 等世代日志) |
| 投影缓存 | storages/session_projcache 里该会话的行(含投影后的消息正文) |
展开完整文档(README 剩余 1 节)
DSH Session Delete
Listed on dsh-plugin.org
会话「⋯」菜单的「归档会话」下面多一项 删除会话:点一下、确认一次,这个会话连同它在磁盘上的全部数据都会被彻底删掉。
DSH 自带的「归档」只是把会话从列表里挪走,文件还在、可以取消归档恢复。这个插件补上真正不可逆的那一步。
功能
- 菜单项插在 sidebar.workspaces.session.menu.item 插槽 order 410,即「归档会话」之后、「会话 ID」之前
- 垃圾桶图标,点击先关闭菜单,再弹出二次确认框(显示会话标题,明确写"无法恢复")
- 确认后在 Host 侧一次性完成清理,所有已打开的窗口立刻把该行移除
删除范围
一次调用会删掉下面这些,缺一不可:
| 数据 | 处理 |
| 正在运行的 agent | cancel({kind:"user"}) + agent.scope.dispose(),释放日志文件句柄 |
| 会话日志目录 | ~/.dsh/sessions/<project>/<session-id>/ 整目录删除(session.v4.jsonl.zstd 等世代日志) |
| 投影缓存 | storages/session_projcache 里该会话的行(含投影后的消息正文) |
| 工作区归属 | 从每个工作区记录的 sessionIds 中 detachSession |
| 归档 / 置顶集合 | 全局 archivedSessionIds、pinnedSessionIds 中移除 |
| 客户端列表 | ctx.emit("api-session/removed", id) → 所有窗口实时移除该行 |
删除不进回收站,不可恢复。
安装
源码安装(GitHub):
dsh plugin --profile web add github:Dubai1210/dsh-session-delete
本地目录安装(开发调试):
dsh plugin --profile desktop add link:/path/to/dsh-session-delete
安装后刷新一次 DSH 窗口(Ctrl+R)让 client bundle 加载;如果菜单里没有出现新项,重启一次 DSH。
使用
1. 在左侧工作区列表里找到目标会话行,点行尾的「⋯」
2. 选择「归档会话」下面的「删除会话」
3. 确认框里核对标题,点「删除」
4. 该会话行消失,磁盘上的对应目录同时被删除
权限与风险
- Host 半注册一个同源 HTTP 路由 POST /dsh-session-delete/delete,请求体 {"sessionId":"..."}。同源校验照抄 DSH 官方插件的做法:拒绝 sec-fetch-site: cross-site、origin: null、以及 origin.host 与 host 头不一致的请求
- 只操作本机 ~/.dsh 下的会话数据与工作区注册表,不发起任何外部网络请求,不依赖任何第三方服务
- 没有任何遥测、没有后台常驻任务
- 风险点只有一个:删除是永久性的。确认框是唯一的刹车
兼容与运行要求
- DSH:0.2.x(desktop profile 与 web profile 均可)
- 平台:Windows / macOS / Linux
- 运行时:Node.js >= 18(Host 半只用 node:fs/promises 与 node:path)
- 依赖的服务:webServer、sessions、agents、sessionPersistence、workspaceRegistry、storageDomain,全部来自 DSH 基础 bundle,无额外依赖
能力分类
界面与体验(同时涉及会话与消息的数据清理)
实现说明
bundle 插件,两半:
Host — lib/index.js,导出 apply(ctx),注册 webServer exact 路由。删除流水线:
1. 停活 agent 并释放文件句柄
2. sessionPersistence.locate({cwd, id}) 定位日志文件,rm -r 其所在会话目录
3. storageDomain.get("session_projcache").table("sessions").delete(id) 清投影缓存行
4. 遍历 workspaceRegistry.list(),逐个 entity.detachSession(id)
5. unarchiveSession(id) + unpinSession(id) 清全局集合
6. ctx.emit("api-session/removed", id) 通知所有客户端
每一步独立 try/catch,单步失败不影响其余步骤;返回值 {ok, live, removedFiles, cacheRows, headerFound} 便于排查。
Client — client.js,window.__ModuleLoader__.load 注册懒工厂,往两个插槽注册:
- sidebar.workspaces.session.menu.item → 删除菜单项(order 410)
- shell.overlay → 确认弹窗(Modal + 取消/删除按钮)
确认后 fetch("/dsh-session-delete/delete", {method:"POST"}),同源、credentials: same-origin。
目录结构
dsh-session-delete/
├── package.json # dsh.bundle.patch + dsh.client
├── cordis.patch.yml # - insert: 宿主插件条目 ├── lib/index.js # Host 半:路由 + 删除流水线 ├── client.js # Client 半:菜单项 + 确认框 ├── locale/en.json # meta.title / meta.description ├── locale/zh.json └── icon.svg
开发
改完文件后重新装一次即可热生效(Host 半需要重新加载):
dsh plugin --profile desktop add link:/path/to/dsh-session-delete
许可证
MIT,见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Dubai1210/dsh-session-delete
在会话菜单一键永久删除会话及其全部磁盘数据
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目