🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话回收站 jackal-Alex/dsh-session-delete

DeepSeek Harness
jackal-Alex17 天前有提交已提供中文文档扫描:含敏感能力

从侧边栏删除会话,可移入回收站恢复或彻底清除

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jackal-Alex/dsh-session-delete
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/10/31·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 17 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 19 处,展示前 13 条)
  • 发起网络请求
    lib/client.js:77
    const response = await fetch(ENDPOINT, {
  • 读取本地文件
    lib/host.js:133
    entries = await fs.readdir(dir, { withFileTypes: true })
  • 读取本地文件
    lib/host.js:143
    total += (await fs.stat(child)).size
  • 读取本地文件
    lib/host.js:173
    workspaces = await fs.readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/host.js:182
    entries = await fs.readdir(workspacePath, { withFileTypes: true })
  • 读取本地文件
    lib/host.js:191
    stat = await fs.stat(dir)
  • 读取本地文件
    lib/host.js:220
    workspaces = await fs.readdir(root, { withFileTypes: true })
  • 写入本地文件
    lib/host.js:274
    await fs.mkdir(trashRoot(home), { recursive: true })
  • 写入本地文件
    lib/host.js:277
    await fs.rename(found.path, target)
  • 写入本地文件
    lib/host.js:293
    await fs.writeFile(join(target, 'meta.json'), JSON.stringify(meta, null, 2) + '\n', 'utf8')
  • 写入本地文件
    lib/host.js:361
    await fs.mkdir(join(sessionsRoot(home), workspace), { recursive: true })
  • 写入本地文件
    lib/host.js:362
    await fs.rename(source, workspacePath)
  • 删除本地文件
    lib/host.js:379
    await fs.rm(target, { recursive: true, force: false })
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

从侧边栏删除 DSH 会话——可恢复的回收站或永久清除。

README

由 DeepSeek 最新模型翻译生成
dsh-session-delete 在 DSH 侧边栏删除会话 —— 先移入可恢复的回收站,或彻底清除。 从会话行的「…」菜单删除 DSH 会话:移入可恢复的回收站,或彻底清除。DSH 本身不带删除操作,它的会话存储接缝按设计也没有删除 API,所以本插件把会话目录移出 $DSH_HOME/sessions,并保留一份 meta.json,以便放回原处。 为什么需要它 DSH 的会话行菜单里有 置顶、重命名、分叉、归档,没有删除;会话日志在 $DSH_HOME/sessions/ 下一直累积,只能手工清。协议里虽然有 session/delete,但它只对外部 ACP agent 生效,宿主自己的存储层明确写着「不删除会话文件 —— 直到外部移除」。 所以删除只能落在文件系统上。本插件只做这一件事,并且把它做成可逆的。 功能 | 菜单项 | 行为 | | 删除会话 | 把 sessions/<工作区>/session-<id>/ 整体移进 $DSH_HOME/session-trash/<时间戳>/,附 meta.json 记录原工作区与目录名 | | 彻底删除会话 | 同上移入,然后立刻从回收站清除。
展开完整文档(README 剩余 1 节)
dsh-session-delete

在 DSH 侧边栏删除会话 —— 先移入可恢复的回收站,或彻底清除。

从会话行的「…」菜单删除 DSH 会话:移入可恢复的回收站,或彻底清除。DSH 本身不带删除操作,它的会话存储接缝按设计也没有删除 API,所以本插件把会话目录移出 $DSH_HOME/sessions,并保留一份 meta.json,以便放回原处。

为什么需要它

DSH 的会话行菜单里有 置顶、重命名、分叉、归档,没有删除;会话日志在 $DSH_HOME/sessions/ 下一直累积,只能手工清。协议里虽然有 session/delete,但它只对外部 ACP agent 生效,宿主自己的存储层明确写着「不删除会话文件 —— 直到外部移除」。

所以删除只能落在文件系统上。本插件只做这一件事,并且把它做成可逆的。

功能

| 菜单项 | 行为 |
| 删除会话 | 把 sessions/<工作区>/session-<id>/ 整体移进 $DSH_HOME/session-trash/<时间戳>/,附 meta.json 记录原工作区与目录名 |
| 彻底删除会话 | 同上移入,然后立刻从回收站清除。红色危险样式,二次确认 |

- 正在使用的会话删不掉:Windows 上目录里有被占用的日志文件时 rename 会失败,插件把它报成「该会话正在被使用,先切到别的会话再删除」——不会半删一半
- 删完自动刷新页面,侧边栏不再显示该行
- 菜单项的字号、行高、内边距、悬停与危险色对齐 DSH 自带的菜单单元格(13px / 20px / 34px / 6px 8px)

安装

从 npm(发布后)
dsh plugin --profile desktop add @jackal-alex/dsh-session-delete

从 GitHub(需要本机有 git)
dsh plugin --profile desktop add github:jackal-Alex/dsh-session-delete

本地开发(软链,改完硬刷新即可)
dsh plugin --profile desktop add link:/path/to/dsh-session-delete

⚠️ 别装错:npm 上另有一个第三方同名插件 dsh-session-delete(作者 vtxf,仓库 vtxf/dsh-session-delete),功能相近但不是本项目。本项目的 npm 包名带 scope,是 @jackal-alex/dsh-session-delete(GitHub 仓库是 jackal-Alex/dsh-session-delete),装的时候认准这两处作者名。

装完重启 DSH(bundle 层在启动时装配),再按 Ctrl+Shift+R 硬刷新页面加载客户端半边。

用法

1. 鼠标移到任意会话行,点右侧的「…」
2. 选 删除会话,确认
3. 会话从列表消失;文件在 ~/.dsh/session-trash/ 里

恢复(接口已就绪,暂无 UI):

curl -X POST http://127.0.0.1:19387/api/session-delete/restore \
-H "content-type: application/json" -H "x-dsh-session-delete: 1" \
-d '{"trashId":"<回收站目录名>"}'

宿主接口

| 方法 | 路径 | 作用 |
| GET | /api/session-delete/list | 列出磁盘上的会话(工作区、id、大小、时间) |
| GET | /api/session-delete/trash | 列出回收站条目 |
| POST | /api/session-delete/delete | {sessionId, mode?} —— mode: "purge" 移入后立刻清除 |
| POST | /api/session-delete/restore | {trashId} —— 放回原位置 |
| POST | /api/session-delete/purge | {trashId} —— 彻底删除,不可恢复 |

所有请求(包括 GET)都必须带 x-dsh-session-delete: 1,并且只接受回环对端(127.0.0.1 / ::1)。
原因:DSH 把 exact 类型的路由注册在它自己的鉴权围栏之前,插件必须自己上闸 —— 自定义头会触发跨站预检(这些路由不发放 CORS),回环判断则拦住非本机来源。手工调用时记得带上:

curl -s http://127.0.0.1:19387/api/session-delete/list -H "x-dsh-session-delete: 1"

兼容性

不声明任何 @deepseek-ai/ 的 peerDependencies。 DSH 0.2+ 的版本闸门会把 peer 对不上的插件整包跳过(现象是「装上了,重启后什么也没发生」,且不报错);客户端半边只用 ctx.slots,宿主半边只用 ctx.webServer,都不静态依赖某个宿主包的具体版本。

在 DSH 0.2.0-rc.2(Windows 桌面版)上实测可用。

测试

不需要构建、不需要 DSH 运行时,纯 Node 即可:

npm run check # node --check 三个入口
npm test # 三个测试文件

- tests/host.test.mjs —— 文件层:list → trash → restore → trash → purge,含路径穿越拒绝
- tests/routes.test.mjs —— 用假 cordis context 驱动五条路由,覆盖 405 / 403 / 404 / 400
- tests/client.test.mjs —— 替身 __ModuleLoader__ + 假 require + 假 DOM,验证装配、两个菜单项的 order 与注入面,以及菜单单元格的度量(防字体回退)

已知限制

- 删除后靠 location.reload() 刷新列表
- 没有批量删除,也没有回收站的 UI 列表(接口 trash / restore / purge 已就绪)
- 只处理 sessions/<工作区>/session-<id>/ 这种目录布局;平铺或压缩的单文件布局不在本版范围
- 彻底删除不做 shred(不是安全擦除)

开发

插件手写、无构建:宿主半边是普通 ESM,客户端半边是 window.__ModuleLoader__.load({ id, factory }) 的 self-contained bundle。改 lib/.js 后重跑 npm test,硬刷新页面即可看到客户端改动。

许可

MIT
预览分享卡片长什么样 ↓jackal-Alex/dsh-session-delete
分享 · DeepSeek Harness Hub
jackal-Alex/dsh-session-delete

从侧边栏删除会话,可移入回收站恢复或彻底清除

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部