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

彻底删除会话 HHHHHH233333/dsh-session-delete

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

从本机永久清除会话记录、缓存与派生子会话

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

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

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

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 12 处,展示前 10 条)
  • 发起网络请求
    client.js:222
    const response = await fetch(`${PREFIX}/preview?${query}`, { method: 'GET', headers: { accept: 'application/json' } })
  • 发起网络请求
    client.js:228
    const response = await fetch(`${PREFIX}/delete`, {
  • 读取本地文件
    lib/purge.js:104
    return (await stat(target)).isDirectory()
  • 读取本地文件
    lib/purge.js:127
    projects = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/purge.js:142
    return (await stat(target)).isFile()
  • 读取本地文件
    lib/purge.js:161
    entries = await readdir(directory, { withFileTypes: true })
  • 读取本地文件
    lib/purge.js:205
    const entries = await readdir(tmpdir(), { withFileTypes: true })
  • 读取本地文件
    lib/purge.js:248
    info = await stat(target)
  • 删除本地文件递归
    lib/purge.js:281
    await rm(target, { recursive: true, force: true, maxRetries: 6, retryDelay: 120 })
  • 删除本地文件
    lib/purge.js:366
    await rmdir(project)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

永久删除 DeepSeek Harness 会话:聊天记录、投影缓存、溢出文件,以及它派生的子代理会话。侧边栏菜单项加确认对话框。

README

由 DeepSeek 最新模型翻译生成
dsh-session-delete · 彻底删除会话 给 DeepSeek Harness 的会话右键菜单加一项 “彻底删除会话…”:把一段对话在这台电脑上留下的所有东西真正删掉,而不只是从列表里隐藏。 DSH 自带的是 归档(Archive):会话行消失,但 session.v4.jsonl.zstd 完整保留在磁盘上,随时可以取消归档读回来。本插件补上“删除”这一档。 界面 菜单项排在“归档会话”之后、单独一组;确认框会实时读取待删文件清单(会话数、文件数、体积),并在有多级子代理时给出是否连带的勾选。上面两张是示意图,配色、文案与顺序与插件实际渲染一致。 删除什么 确认框里点“彻底删除”后,对目标会话(勾选时还包括它派生的子代理会话)依次做四件事: | 步骤 | 动作 | 说明 | | 1 | 停止并隐藏 | 调 Workspace 注册表的 archiveSession(id, { stopActivity: true }),停掉正在跑的回合、子代理、后台任务与定时器,把会话行移出所有分组视图 | | 2 | 删聊天记录 | 删掉 $DSH_HOME/sessions/<项目目录>/<会话 id>/,即 session.v4.jsonl.zstd 与其同目录文件 |
展开完整文档(README 剩余 1 节)
dsh-session-delete · 彻底删除会话

给 DeepSeek Harness 的会话右键菜单加一项 “彻底删除会话…”:把一段对话在这台电脑上留下的所有东西真正删掉,而不只是从列表里隐藏。

DSH 自带的是 归档(Archive):会话行消失,但 session.v4.jsonl.zstd 完整保留在磁盘上,随时可以取消归档读回来。本插件补上“删除”这一档。

界面

菜单项排在“归档会话”之后、单独一组;确认框会实时读取待删文件清单(会话数、文件数、体积),并在有多级子代理时给出是否连带的勾选。上面两张是示意图,配色、文案与顺序与插件实际渲染一致。

删除什么

确认框里点“彻底删除”后,对目标会话(勾选时还包括它派生的子代理会话)依次做四件事:

| 步骤 | 动作 | 说明 |
| 1 | 停止并隐藏 | 调 Workspace 注册表的 archiveSession(id, { stopActivity: true }),停掉正在跑的回合、子代理、后台任务与定时器,把会话行移出所有分组视图 |
| 2 | 删聊天记录 | 删掉 $DSH_HOME/sessions/<项目目录>/<会话 id>/,即 session.v4.jsonl.zstd 与其同目录文件 |
| 3 | 删派生数据 | 删掉 $DSH_HOME/storages/session_projcache/sessions/<会话 id>.json(标题、标题候选、token 统计、回合大纲等) |
| 4 | 删临时文件 | 删掉 %TEMP%/dsh-spill-/session-<sha256(id)[:12]>/ 下的工具输出溢出文件 |

删完再扫一遍,并在约 6 秒后再扫一次(投影缓存有 5 秒的写回窗口,晚到的检查点不会把记录重新写出来)。若某个文件正被占用导致删不掉,接口会把失败清单返回给界面,提示“重启应用后重试”。

删除 不 依赖“回收站”,也不发送任何网络请求;全部是本机文件系统操作。

子代理会话

默认勾选“同时删除它派生的子代理会话”。规则:

- 只沿着 origin: "subagent" 的 parentSession 链向下展开(含多级);
- 分叉(fork)不会被连带删除——分叉是一段独立对话,origin 为空;
- 取消勾选时只删你点的那一个会话。

安装

已安装到桌面应用的 desktop 配置:

%USERPROFILE%\.dsh\profiles\desktop\package.json
dependencies: "dsh-session-delete": "link:<本目录>"
dsh.profile.bundles: [ ..., "dsh-session-delete" ]

这个目录不能删,也不能改名。 安装用的是 link:,运行中的应用直接从 <本目录> 读代码;目录消失后插件从下次启动起失效(应用本身仍能启动,只是这一行会被跳过,菜单项消失)。要搬到别处,先移动目录,再从新位置运行 install.ps1 重新链接。

需要重启一次桌面应用:插件行是在应用启动时按 dsh.profile.bundles 组合进 profile 的,新装的 bundle 不会被当前进程热加载(配置文件的热更新只重建已有的 bundle 列表,不会导入新包)。重启后:

1. 访问 http://127.0.0.1:<端口>/.dsh-session-delete/health 应返回 {"ok":true,...}(端口以应用实际 URL 为准);
2. 侧栏会话行右键 → 菜单最后一项出现“彻底删除会话…”。

卸载:从 dependencies 与 dsh.profile.bundles 中删掉 dsh-session-delete,再执行 pnpm install 并重启。

分享给别人

插件是自包含的 npm 包:无运行时依赖、无构建步骤,index.js / client.js / lib/ / cordis.patch.yml 直接可用。

仓库:<https://github.com/HHHHHH233333/dsh-session-delete> —— 在 DSH 的插件管理里填这个地址即可安装。

三种给法:

A. 直接给文件夹(最省事) 把整个 dsh-session-delete 目录压缩发过去。对方解压后在该目录里运行:

powershell -ExecutionPolicy Bypass -File .\install.ps1

脚本会:备份他的 profile → 写入 link:<解压目录> 依赖 → 把 dsh-session-delete 追加进 dsh.profile.bundles → 用 DSH 自带的 node/pnpm 安装 → 校验能否解析,最后提示重启。可重复执行;先加 -DryRun 只预览不落盘,-Profile / -DshHome 可指定其他 profile 或主目录。

B. 给一个 tarball 直接从 Releases 下载 dsh-session-delete-0.1.0.tgz,或本地用 pnpm pack 重新打(只含 files 里列的文件,test/ 不会打进去)。对方在插件管理里安装本地包,或手动:

pnpm add .\dsh-session-delete-0.1.0.tgz

然后把 dsh-session-delete 加进 dsh.profile.bundles 并重启。

C. 从仓库装(推荐给熟悉 DSH 的人) 在 DSH 的插件管理里填仓库地址 https://github.com/HHHHHH233333/dsh-session-delete,管理器会 clone 并执行 pnpm 安装、自动把这个 bundle 加进 profile。

D. 发到 npm 先把 package.json 里的 "private": true 改成 false,再 npm publish。无前缀的 dsh-session-delete 可能已被占用,必要时改成 @你的scope/dsh-session-delete——插件行 id 就是包名,改名后 dsh.profile.bundles 里的条目和 link: 路径都要跟着改。

对方需要什么:桌面版或 web profile 的 DSH(@deepseek-ai/dsh-base 提供 webServer / workspaceRegistry / sessionPersistence,本插件依赖这三个服务);装完必须重启应用。

使用

1. 右键侧栏里的会话(或它的 “…” 菜单)。
2. 选 彻底删除会话…(排在“归档”和“复制会话 ID”之后,带分隔线)。
3. 确认框会显示:会话标题、将删除的会话数与文件数、是否包含子代理。
4. 点 彻底删除。界面提示成功后,该会话行从列表消失,磁盘上不再有它的记录。

删除当前正在使用的会话同样会成功:会话行消失,当前视图随之失效。请自行确认这是你要的结果。

配置(可选)

在 cordis.patch.yml 里给这一行加 config 即可覆盖默认值:

- id: dsh-session-delete
config:
sessionsRoot: D:\dsh\sessions # 默认 $DSH_HOME/sessions dshHome: D:\dsh # 默认 $DSH_HOME,其次 ~/.dsh
spillRoots: [D:\temp\dsh-spill] # 额外的溢出根目录;系统临时目录总会扫描
settleMs: 1200 # 停止后等待多久再删文件 lateSweepMs: 6000 # 后台补扫延迟;0 关闭

HTTP 接口

仅供本机界面调用(服务只监听回环地址,跨站 Origin 会被拒绝,sessionId 必须是单个安全路径段):

- GET /.dsh-session-delete/health
- GET /.dsh-session-delete/preview?sessionId=<id>&subagents=1
- POST /.dsh-session-delete/delete,body { "sessionId": "<id>", "deleteSubagents": true }

preview 只统计不删除;delete 返回 { ok, found, targets, artifacts, files, bytes, complete, failures }。

已知边界

- 共享附件:内容寻址的附件/图片仓库是跨会话共享的,不属于某一个会话,因此不会被删除。
- 工作区成员表:storages/workspace.json 的 sessionIds 里会留下一个指向已删会话的 id。没有公开 API 可以移除成员,且该 id 不可见(没有会话头就不再渲染)。插件在下次启动时会清理 archivedSessionIds / pinnedSessionIds 中已不存在的 id。
- 归档 id 的保留:删除后故意不立即取消归档,否则正在运行的界面会把该行重新显示出来;清理放在下次启动。
- 搜索索引:当前构建的会话检索使用 :memory: 数据库、从不落盘,因此没有需要清理的索引文件;若未来开启持久索引,需要补一条清理路径。
- 文件占用:Windows 上若某个文件被子进程占用,删除会失败并回报清单;关闭相关任务或重启应用后再删一次。
- 其它机器的副本:本插件只处理本机文件,不影响任何远端备份。

开发与测试

node --test test/.test.mjs

- purge.test.mjs:路径编码、日志/缓存/溢出目录删除、空项目目录回收、幂等性;
- service.test.mjs:目标展开(含子代理、排除分叉)、归档调用、HTTP 路由、启动清理;
- client.test.mjs:客户端模块装配、两个插槽、确认框/菜单项渲染与预览请求;
- cordis.test.mjs:在真实 Cordis 上下文里挂载 Host 半边,验证路由注册、健康检查与卸载。找不到运行时时自动跳过;需要手动跑时,用 DSH_CORDIS_ENTRY 指向任意 @deepseek-ai/cordis 的 lib/index.js 即可。

文件

index.js Host 入口:注入服务、注册前缀路由、启动清理 lib/service.js 编排:展开目标 → 停止 → 删除 → 补扫;preview / delete / health lib/purge.js 纯文件系统层:定位与删除日志、缓存、溢出目录 client.js 浏览器半边:菜单项 + 确认框 + 提示 cordis.patch.yml bundle 补丁层(插入一行)
locale/{zh,en}.json 插件元信息
icon.svg 图标 install.ps1 给别人的一键安装脚本(备份 / 写依赖 / 装依赖 / 校验) test/*.test.mjs 单元与集成测试

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

从本机永久清除会话记录、缓存与派生子会话

这是你的仓库?认领条目

回到顶部