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

会话删除 Ansellwan/DeepSeekHarness-Session-Delete

DeepSeek Harnessv1.0.6
Ansellwan13 天前有提交已提供中文文档扫描:含敏感能力

给 DeepSeek Harness 侧栏会话补上官方缺失的「删除会话」:运行中置灰、二次确认、真卸载 + 注册表/磁盘清除,做不到时如实告知。

31.5/100
综合分
2
GitHub 星标
731
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-session-clean
npm 源 · dsh-session-clean 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · browser
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功(非静态推断);本次验证针对插件 v1.6.2,当前版本为 v1.0.6
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 13 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-session-clean @ 1.0.6
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 22:43:59

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 17 处,展示前 14 条)
  • 写入本地文件
    index.js:109
    mkdirSync(dirname(opLogPath()), { recursive: true })
  • 写入本地文件
    index.js:110
    appendFileSync(opLogPath(), `${new Date().toISOString()} ${line}\n`, 'utf8')
  • 读取本地文件
    index.js:304
    if (!existsSync(root)) return 0
  • 读取本地文件
    index.js:306
    const workspaceDirs = await readdir(root)
  • 读取本地文件
    index.js:307
    const alive = (id) => workspaceDirs.some((dir) => existsSync(join(root, dir, id)))
  • 读取本地文件
    index.js:382
    if (!existsSync(root)) return removed
  • 读取本地文件
    index.js:383
    for (const workspaceDir of await readdir(root)) {
  • 读取本地文件
    index.js:385
    if (!existsSync(target)) continue
  • 删除本地文件递归
    index.js:386
    await rm(target, { recursive: true, force: true })
  • 删除本地文件递归
    index.js:419
    await rm(target, { recursive: true, force: true })
  • 删除本地文件
    index.js:474
    await rm(cacheFile, { force: true })
  • 发起网络请求
    client.js:312
    const response = await fetch('/_dsh-session-clean/delete', {
  • 发起网络请求
    client.js:589
    const precheck = await fetch(`/_dsh-session-clean/precheck?sessionIds=${query}`, {
  • 发起网络请求
    client.js:602
    const response = await fetch('/_dsh-session-clean/delete', {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 侧栏一键删除会话
  • 运行中置灰
  • 二次确认
v1.6.22026-10-21
· v1.6.2 — 「删除会话」+「清理分组」 给 DSH 侧栏补上官方缺失的会话删除能力,并提供一个能整组清理的面板。这是 1.1.2 之后第一个正式版,累积了删除正确性、导航、批量清理的全部改动。 · 删除会话(会话菜单 ⋯ → 删除会话) · 运行中一定点不动:该会话有任务在跑时整项置灰(铁律,宿主侧同样返回 409 拒绝) · 二次确认:写清会删什么、不可撤销 · 真删除:侧栏列表 + 会话注册表 + 磁盘负载 + 投影缓存一并清除,刷新页面不回来 · 删的是当前打开的会话:自动跳到同分组的新会话,不留空壳 · 做不到就明说:卸载原语不可用时降级为「已隐藏」并返回 unloaded:false,不假装删成功 · 已归档会话同样可删 —— 清掉归档正是很多人装它的原因 · 清理分组(侧栏底部扫帚按钮) · 选一个分组 → 批量清空该组全部会话;「未分组」单列一行 · 批里只要有 1 个在跑,整批拒绝,不跳过、不部分执行 · 显示「N 个会话 · M 个不在列表」——分组记录包含已归档会话,计数必须拆开报 · 「清空并移除分组」= 先清会话再注销分组 · 与官方「删除工作区」的边界(故意分开) · 官方分组行的「删除工作区」是原生功能,语义是只注销分组、会话下沉到「未分组」;插件完全不拦截、不改变它 · 想让会话也一起消失,用面板里的「清空并移除分组」 · 升级 dsh plugin --profile desktop add dsh-session-clean@1.6.2 装完重启 DSH(软件形态没有热刷新)。 · 兼容性 · 桌面版:已实测、正式支持 · 浏览器形态 profile(dsh web):只用 Web 面 API,无桌面端专属调用,按设计可用;但未单独实测,请自行尝试并反馈 --- English — Adds the missing per-session Delete action to the DSH sidebar, plus a workspace cleanup panel. First stable release after 1.1.2. · Delete session in the session ⋯ menu, greyed out and unclickable while the session has running work (the host also rejects with 409). Confirmation dialog states exactly what will be removed and that it cannot be undone. True removal from the sidebar list, the session registry, the on-disk payload and the projection cache — it does not come back after a refresh. Deleting the session you currently have open navigates to a fresh session in the same workspace. When the framework's unload primitive is unavailable the plugin degrades honestly to "hidden" (unloaded:false) instead of faking success. Archived sessions are deletable too. · Clean a whole workspace from the sidebar footer: pick a workspace and delete all of its sessions in one batch ("Ungrouped" is listed separately). If any session in the batch is running, the entire batch is refused — no skipping, no partial deletes. Counts are reported as "N sessions · M not in the list" because workspace records include archived sessions. "Clean and remove workspace" deletes the sessions first, then unregisters the workspac
v1.1.22026-10-13
· v1.1.2 — 真卸载 + 诚实降级 这一版把「删除」从*从列表里藏起来*变成了*真的删掉*: · 真卸载活会话:对仍驻留内存的会话,调用框架自身的拆除原语 SessionStore.liveEntryFor(session).detach(),触发 session/disposed → api-session/removed,侧栏那一行被真正移除——无需重启,刷新页面也不会回来。 · 投影缓存修复:投影缓存是写回型自愈缓存(真实表名 sessions,键为完整会话 id),只删文件会被下一次检查点重新写出来;现在改为通过活动域删键,内存与介质一致。 · spill 清理:同时删除该会话在 %TEMP%/dsh-spill-*/session-/ 下的溢出文件(超长工具输出)。 · 诚实降级:卸载原语探测失败时,退化为「隐藏 + 明说」并返回 unloaded:false,且在写回窗口(默认 5 秒)后自动补清一次缓存——不假装删成功。 · README 重写:用户段说人话(能做什么 / 删除到底做了什么 / 会删什么不会删什么 / 常见问题),实现细节集中在「技术说明(可跳过)」。 · 确认框与结果提示改为大白话,并说明对「正打开的会话」的处理。 升级: dsh plugin --profile desktop add dsh-session-clean@1.1.2 装完重启 DSH。 --- English: resident sessions are now really unloaded through the framework's own teardown primitive (session/disposed → api-session/removed drops the sidebar row for real); the projection cache is deleted through its live domain table so the write-behind cannot recreate it; per-session spill directories are removed; when the unload primitive is unavailable the plugin degrades to a reported hide (unloaded:false); both READMEs rewritten in plain language.
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
DeepSeekHarness Session Delete(删除会话) Listed on dsh-plugin.org DSH 有归档、重命名、分叉,却没有删除会话。这个插件在侧栏每个会话的 ⋯ 菜单里补上一项红色「删除会话」,点之前先弹确认框。删就是真删:不会给你留个"看起来删了、过两天又冒出来"的尾巴。 会话菜单中的「删除会话」 删除确认框 会话运行中,删除自动置灰 安装 主测试目标是 DeepSeek Harness 桌面版。 浏览器形态的 web profile(dsh web)按设计应当可用——插件只用到 Web 面 API,没有任何桌面端专属调用——但未单独实测;Web 端用户请自行尝试,欢迎反馈结果。
展开完整文档(README 剩余 1 节)
DeepSeekHarness Session Delete(删除会话)

Listed on dsh-plugin.org

DSH 有归档、重命名、分叉,却没有删除会话。这个插件在侧栏每个会话的 ⋯ 菜单里补上一项红色「删除会话」,点之前先弹确认框。删就是真删:不会给你留个"看起来删了、过两天又冒出来"的尾巴。

会话菜单中的「删除会话」 删除确认框 会话运行中,删除自动置灰

安装

主测试目标是 DeepSeek Harness 桌面版。 浏览器形态的 web profile(dsh web)按设计应当可用——插件只用到 Web 面 API,没有任何桌面端专属调用——但未单独实测;Web 端用户请自行尝试,欢迎反馈结果。

从 npm 安装(推荐)—— 桌面版,已实测的主目标
dsh plugin --profile desktop add dsh-session-clean

浏览器形态 profile(dsh web)—— 按设计可用,但未单独实测
dsh plugin --profile web add dsh-session-clean

从 GitHub 安装(桌面版)
dsh plugin --profile desktop add github:Ansellwan/DeepSeekHarness-Session-Delete

安装后重启 DSH(软件形态没有热刷新;dsh web 服务重启进程即可)。

升级(add 不会自动升版,须显式版本号):

dsh plugin --profile desktop add dsh-session-clean@<新版本号>

卸载:

dsh plugin --profile desktop remove dsh-session-clean

它能做什么

- 每个会话的 ⋯ 菜单里多一项红色「删除会话」(排在置顶 / 重命名 / 分叉 / 归档之后)
- 会话正在干活时(回复中,或等你审批 / 回答)自动变灰,点不动
- 已归档的会话一样能删——清库存最好用
- 删除前弹一次确认框,确认后才动手
- 侧栏底部多一个「清理分组」入口:选一个分组、看清会话数量、确认一次,整组会话一次删完

清理整个分组

点侧栏底部的「清理分组」,选一个分组,点「清空」,整组会话一次性删掉。列表里还有一行「未分组」,装的是不属于任何分组的会话。

清理分组面板:选一个分组,点清空

- 组里有会话正在跑(回复中、等你确认),这个分组就清不了,按钮是灰的
- 已归档的会话也会一起删;行上写明「共 N 个会话 · M 个不在列表」,看到多少就删多少
- 分组本身留着,只是变成空分组。想连分组一起删,用确认框里的「清空并移除分组」
- 清理时会显示进度,结束告诉你删了几个;如果正在看的会话被删了,会自动切到同分组的新会话

清空确认框 清理完成

两条“删分组”的路,故意分开

官方「删除工作区」与本插件的面板做的是不同的事,本插件从不替官方动作做决定:

| 你做的操作 | 会话 | 分组 |
| 官方 删除工作区 | 保留——下沉到「未分组」 | 注销 |
| 面板 → 清空 | 删除 | 保留,变成一个可以新建会话的空分组 |
| 面板 → 清空并移除分组 | 删除 | 注销 |

所以“把这个项目彻底清掉”是面板里的一个动作:选中分组 → 选「清空并移除分组」→ 确认一次(确认框仍会写明会话数量)。如果只想清掉对话、留着文件夹以后继续用,就选「清空」。

删除到底做了什么

1. 数据真的没了,删了找不回来(和「归档」不一样:归档只是收起来)
2. 正开着的会话也能删:删完侧栏里立刻就没有它了,不用重启,刷新页面也不会回来;如果删的正是你正在看的那个会话,界面会自动切到同工作区的新会话,不会停在一个已被删除的对话上
3. 万一这次删不彻底,插件只会先把它藏起来,并且直接告诉你——不会假装已经删干净

会删掉什么,不会删什么

| ✅ 会删 | 这段对话本身,它的标题 / 大纲 / token 统计等缓存,工具输出过长时落盘的溢出文件,以及它在侧栏里的各种登记(分组、置顶、归档) |
| ❌ 不动 | ~/.dsh/attachments/ 里的附件原件——它们按内容存一份,多个会话可能共用同一份,按会话删会连累别的对话 |
| ❌ 不动 | 本插件自己的日志(~/.dsh/logs/session-delete.log,记录删过谁、删了哪些文件) |
| ❌ 不动 | 其他插件自己抄到各自数据库里的副本 |

另外,DSH 进程退出前,内存里还会留一个空的会话对象(官方没提供清理它的接口)。它不会再出现在任何列表里,重启后彻底消失。

常见问题

- 删了还能恢复吗? 不能。没有回收站,也没有撤销。
- 正在回复的会话能删吗? 不能,会被拦下并提示原因;等它停下来再删。
- 提示"先藏起来"是什么意思? 说明当前 DSH 版本不支持彻底移除,插件只能先把它隐藏,并如实告诉你;这一行会在重启 DSH 后彻底消失。插件宁可说清楚,也不会假装删成功。
- 删的时候正在看这个会话怎么办? 能删,但删完窗口会空着,点开别的会话即可。
- 会误删别的会话吗? 不会。只动这一个会话自己的文件。
- 删完要不要重启才生效? 不用。
- 会联网吗? 不会,没有任何网络请求、没有遥测。

权限与隐私

- 只在你自己的 DSH 进程里开一个仅本机可用的接口,并走 DSH 官方同一道连接信任检查,外部连不进来
- 只删这一个会话自己的文件:~/.dsh/sessions/…、~/.dsh/storages/session_projcache/…,以及临时目录里属于它的溢出文件目录
- 无网络请求、无遥测、无外部服务

兼容性

| DeepSeek Harness | 桌面版 0.2.0-rc.2 —— 已实测的主目标 |
| Profile | desktop:已实测、正式支持。 Web 形态 profile(dsh web 浏览器形态):按设计可用(只用到 Web 面 API,无桌面端专属调用),但未单独实测——请自行尝试并反馈遇到的问题 |
| Node | ≥ 18(DSH 运行时自带) |
| 能力分类 | 界面与体验 |

技术说明(普通用户可跳过)

- 客户端半 client.js:向官方 slot 列表 sidebar.workspaces.session.menu.item 注册 order: 500 的菜单行(与内置 pin=100 / rename=200 / fork=300 / archive=400 同一列表,官方支持的扩展点);忙碌状态来自宿主注入的 useSessionStatus 快照;确认弹窗挂在框架级 shell.overlay 槽位,菜单关闭不会连带销毁。
- 宿主半 index.js:注册私有路由 /_dsh-session-clean,先重探会话活动,再按固定顺序删除——① 把仍驻留内存的会话从宿主活动存储中卸载 → ② 从工作区注册表移除(全局归档 / 置顶集 + 各工作区会话列表)→ ③ 清理落盘数据(会话目录、session_projcache 投影缓存记录、spill 溢出目录)。注册表写入走它自己已打开的同一个存储域句柄,写即持久化并发变更事件,侧栏据此刷新。
- 卸载活会话用的是框架自己的拆除原语 SessionStore.liveEntryFor(session).detach()(即属主卸载时执行的同一段 store.delete + session/disposed)。该事件被会话控制器转成 api-session/removed,客户端据此真的把那一行删掉,同时关闭该会话的日志写入器,因此对话记录不会被重新落盘。liveEntryFor / detachEntered 属于内部成员(不在生成的 API catalog 里),所以每一步都先做能力探测,失败就退化为「如实汇报的隐藏」,不做无声的假删除。
- 投影缓存为什么必须单独处理:它是「写回型自愈缓存」,且该域真正的表名是 sessions、键是完整会话 id。必须通过活动域删键(而不是只删文件),否则域内存里的那行还在,下一次检查点就会把文件重新写出来。
- 不修改 app.asar,不 patch 任何官方装载行,升级 DSH 不受影响。

许可证

MIT
预览分享卡片长什么样 ↓Ansellwan/DeepSeekHarness-Session-Delete
分享 · DeepSeek Harness Hub
Ansellwan/DeepSeekHarness-Session-Delete

给 DeepSeek Harness 侧栏会话补上官方缺失的「删除会话」:运行中置灰、二次确认、真卸载 + 注册表/磁盘清除,做不到时如实告知。

这是你的仓库?认领条目

回到顶部