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

会话删除 EarthPretender/dsh-session-delete

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

在会话菜单中彻底删除会话及其日志数据

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/05·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 32 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
  • 删除本地文件递归
    lib/index.js:102
    await rm(target, { recursive: true, force: true });
  • 读取本地文件
    lib/index.js:212
    entries = await readdir(root, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:221
    await stat(target);
  • 发起网络请求
    lib/client.js:60
    const response = await fetch("/api/session-delete", {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

功能亮点

  • 会话菜单新增删除入口
  • 二次确认后删除
  • 删除日志与工作区登记

DSH 插件:在会话“…”菜单的“归档会话”下方新增红色“删除会话”行,二次确认后真正删除该会话的日志与工作区登记(不可逆;当次启动使用过的会话先停用再删,正在执行任务的会话再点一次停止任务并删除)。

README

由 DeepSeek 最新模型翻译生成
dsh-session-delete 给 DeepSeek Harness(DSH)会话“…”菜单的“归档会话”下方加一个红色的“删除会话”——真正删除该会话的全部数据,而不是只把它归档。 标签 / Tags: dsh-plugin · dsh · deepseek-harness 它做了什么 DSH 官方只提供“归档”(Archive),归档后的会话仍然留在磁盘上、也能在归档区找回。本插件补上真删除: 1. 菜单行:在侧栏每个会话行的“…”菜单里、官方“归档会话”下方新增一行红色“删除会话”,带垃圾桶图标与分隔线。 2. 二次确认:第一次点击变为“再次点击确认删除”(6 秒无操作自动还原),第二次点击才真正执行——菜单保持打开并直接显示结果,避免误删。若会话正有任务在跑,行会变为“再次点击:停止任务并强行删除”,再点一次先停任务再删;其他失败(宿主不可达等)行内显示原因并保持红色,再点一次即可重试。
展开完整文档(README 剩余 1 节)
dsh-session-delete

给 DeepSeek Harness(DSH)会话“…”菜单的“归档会话”下方加一个红色的“删除会话”——真正删除该会话的全部数据,而不是只把它归档。

标签 / Tags: dsh-plugin · dsh · deepseek-harness

它做了什么

DSH 官方只提供“归档”(Archive),归档后的会话仍然留在磁盘上、也能在归档区找回。本插件补上真删除:

1. 菜单行:在侧栏每个会话行的“…”菜单里、官方“归档会话”下方新增一行红色“删除会话”,带垃圾桶图标与分隔线。
2. 二次确认:第一次点击变为“再次点击确认删除”(6 秒无操作自动还原),第二次点击才真正执行——菜单保持打开并直接显示结果,避免误删。若会话正有任务在跑,行会变为“再次点击:停止任务并强行删除”,再点一次先停任务再删;其他失败(宿主不可达等)行内显示原因并保持红色,再点一次即可重试。
3. 删除内容:
- 删除该会话在 sessions/<工作区>/<会话id>/ 下的全部日志数据(含 session.v4.jsonl.zstd);
- 通过工作区注册表的官方持久化写清理登记(unpin → unarchive → detachSession),因此 workspace.json 由 registry 自己写,内存与磁盘始终一致,之后归档其他会话也不会把已删的会话“复活”。

安全性设计

- 当次启动使用过的会话也能直接删:删除前先把该会话从内存停用(flush 落盘 → detach 会话 → 注销 agent,顺序固定——先会话后 agent,否则 DSH 会把行重新公告回来),写句柄随之关闭,日志删除带文件锁重试(15×100ms)——因此不会“删了不生效”或“删了又复活”,也不用重启。
- 正在跑任务的会话:提醒一下,再点一次就强删:确认点击后若宿主返回“正在执行任务”,行会变为“再次点击:停止任务并强行删除”(6 秒无操作自动还原);再点一次先调用官方 workspace/session-stop 停止任务(最多等 4 秒,可用环境变量 SESSION_DELETE_STOP_WAIT_MS 调整),任务拒绝停止也照样删——这是强行删除的既定语义。
- 删除成功后列表立即移除该行,无需重启:插件会广播官方的 api-session/removed 事件(dsh-api-remotes 转发到每个浏览器),这正是 DSH 自己删除行用的通道——没有它,冷会话的行会留在浏览器启动时的快照里,掉进"未分组"直到重启。幂等的重复点击也会再广播一次,用来清掉残留的旧行。
- 鉴权继承官方通道:删除接口挂在 DSH 共享的 /api 连接通道上(connection.registerFetchRoute),因此 Host/Origin 校验与浏览器认证由官方 admit() 统一把关。
- 幂等:重复点击或对已删除的会话再次操作不会报错,只提示已删除。
- 不可逆:删除会同时移除日志文件与登记,仅剩共享的附件/投影缓存等孤儿数据(无会话关联键,无害)。

安装

方式一:插件市场(推荐)

在 DSH 的插件市场(dshmarket)里搜索安装;仓库已按社区约定打标 dsh-plugin。

方式二:手动安装(github 源)

编辑 profile 的 package.json(~/.dsh/profiles/desktop/package.json):

{
"dsh": {
"profile": {
"bundles": [
// ... 其他 bundle "dsh-session-delete" ] } },
"dependencies": {
// ... 其他依赖 "dsh-session-delete": "github:EarthPretender/dsh-session-delete" } }

然后在 profile 目录执行 pnpm install,重启 DeepSeek Harness。

方式三:本地目录

"dsh-session-delete": "file:./dsh-session-delete"

把本仓库放到 profile 目录下,同样需要加入 dsh.profile.bundles。

使用

1. 重启 DeepSeek Harness(首次安装后)。
2. 侧栏任意会话行 → “…” → 最底部红色 “删除会话”。
3. 第一次点 → “再次点击确认删除”,再点一次执行;结果直接显示在行内,该行立即从列表消失。
4. 若该会话正有任务在跑,会看到“再次点击:停止任务并强行删除”——再点一次即停止任务并删除。

安装后在 设置 → 插件 里可以看到本插件卡片,并可随时开关。

卸载

1. 从 profile package.json 的 dsh.profile.bundles 与 dependencies 中移除 dsh-session-delete;
2. pnpm install,重启应用。

兼容性

- DSH 0.2.0-rc 系列(Web / Desktop profile)。
- 宿主端为 Node ≥ 22;客户端半使用 DSH 平台基线模块(React、@deepseek-ai/dsh-client-ui-primitives)。

结构

| 路径 | 说明 |
| lib/index.js | Host 半:在 /api 上注册 POST /api/session-delete,执行日志删除 + registry 登记清理 |
| lib/client.js | Client 半:在 sidebar.workspaces.session.menu.item 槽注册“删除会话”行 |
| cordis.patch.yml | bundle 补丁:插入一个同时承载两半的 loader 条目 |
| icon.svg | 插件卡片图标 |
| scripts/selftest.mjs | 零依赖自检(npm test),不需要启动 DSH |

开发自检

npm test # = node scripts/selftest.mjs

自检不启动 DSH,覆盖三块:
1. 身份一致性:package.json 的 name、lib/client.js 里 __ModuleLoader__.load({ id }) 的 id、cordis.patch.yml 插入行的 name,三者必须相同。不一致时 client-modules 会报 loaded without registering "…" via __ModuleLoader__.load,浏览器半永远不会上场——设置页显示「本页面的插件未能完成同步」。
2. 浏览器半:二次确认两步、忙碌会话的强删警告行(第三次点击带 force: true)、成功/被拒/网络异常三种结果、失败后可重试,以及槽注册的 name/id/order/locale。
3. 宿主半:路由契约(POST /api/session-delete、buffered body)、非法方法/非 JSON/路径穿越、活动会话 409(未 force)、force 停任务(stop → flush → dispose → 注销 agent 的固定顺序)、stop 不生效时的有界等待、live 会话停用后删除、store 无法 detach 时的拒绝回退、真实删除(日志目录 + unpin/unarchive/detachSession + header 索引重建)、api-session/removed 广播、幂等与存储不可读时的 500。

改包名时(例如从 @local/dsh-session-delete 改成 dsh-session-delete)上面三处必须一起改,然后重启应用:已启动的页面仍持有旧 id 的客户端模块行,热改文件不会把旧行换掉。

许可

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

在会话菜单中彻底删除会话及其日志数据

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