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

清除会话历史 n0pe-sled/clear-session-history

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

按工作区或单个会话删除磁盘上的会话日志

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

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add n0pe-sled/clear-session-history
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
静态安装检查有提示项,装前建议看一眼 README
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 51 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

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

✗npm 包dsh-clear-session-history(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/21 23:55:57

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

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

读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    src/index.ts:124
    return await realpath(raw)
  • 读取本地文件
    src/index.ts:269
    if (!(await stat(dir)).isDirectory()) return false
  • 删除本地文件递归
    src/index.ts:270
    await rm(dir, { recursive: true, force: true })
  • 删除本地文件
    src/index.ts:281
    await rmdir(projectDir)
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-typert-protocol@deepseek-ai/dsh-typert-registry
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按工作区删除会话日志
  • 按单个会话删除日志
  • 删除前需确认

dsh 插件:从磁盘清除会话历史(工作区/全部/会话),删除按范围执行并需确认

README

由 DeepSeek 最新模型翻译生成
dsh-clear-session-history 为 dsh Web GUI 添加破坏性的“清除会话历史”功能,每项操作前都有一个“确定吗?”对话框,准确显示将要删除的内容: 1. 清除会话历史。 侧边栏中某个工作区自己的“…”菜单内的一行红色选项(位于重命名 / 删除工作区旁边)。删除该工作区在磁盘上存储的所有会话日志,然后将该工作区本身从侧边栏中移除。 2. 清除所有会话历史。 位于“新建会话”按钮正下方的一个红色按钮。删除所有工作区在磁盘上的所有会话日志,然后将所有工作区从侧边栏中移除(完全重置为空白状态)。 3. 删除会话。 侧边栏中任意会话自己的“…”菜单内的一行红色选项(垃圾桶图标)(位于重命名 / 分叉 / 归档旁边)。从磁盘上删除该会话的日志。工作区及其其他会话不受影响。对已打开(已附加)的会话同样有效:日志被删除,该行立即从侧边栏消失。唯一拒绝的情况是该会话的代理正在运行(有回合正在进行中),因为删除它会破坏正在进行的写入;对话框会说明这一点,并且删除保持禁用状态,直到其完成。 “删除”的含义 会话日志位于 $DSH_HOME/sessions/// 下。该插件通过宿主自身的会话持久化后端删除这些目录(locate() 解析每个会话的目录,不重新实现 slug),因此从磁盘上消失的内容与侧边栏列出的内容完全一致。
展开完整文档(README 剩余 1 节)
dsh-clear-session-history

为 dsh Web GUI 添加破坏性的“清除会话历史”功能,每项操作前都有一个“确定吗?”对话框,准确显示将要删除的内容:

1. 清除会话历史。 侧边栏中某个工作区自己的“…”菜单内的一行红色选项(位于重命名 / 删除工作区旁边)。删除该工作区在磁盘上存储的所有会话日志,然后将该工作区本身从侧边栏中移除。
2. 清除所有会话历史。 位于“新建会话”按钮正下方的一个红色按钮。删除所有工作区在磁盘上的所有会话日志,然后将所有工作区从侧边栏中移除(完全重置为空白状态)。
3. 删除会话。 侧边栏中任意会话自己的“…”菜单内的一行红色选项(垃圾桶图标)(位于重命名 / 分叉 / 归档旁边)。从磁盘上删除该会话的日志。工作区及其其他会话不受影响。对已打开(已附加)的会话同样有效:日志被删除,该行立即从侧边栏消失。唯一拒绝的情况是该会话的代理正在运行(有回合正在进行中),因为删除它会破坏正在进行的写入;对话框会说明这一点,并且删除保持禁用状态,直到其完成。

“删除”的含义

会话日志位于 $DSH_HOME/sessions/// 下。该插件通过宿主自身的会话持久化后端删除这些目录(locate() 解析每个会话的目录,不重新实现 slug),因此从磁盘上消失的内容与侧边栏列出的内容完全一致。效果:

- 完全成功清除后,GUI 会重新加载页面,这会关闭确认对话框并重新拉取两个列表:已删除的会话和已移除的工作区一步就从侧边栏消失。(该框架没有“会话已删除”推送事件,因此重新加载是第三方插件反映此更改的可靠方式;这与最初确认删除时手动重新加载的结果相同。)
- 之后会清理空的项目目录。
- 被清除的工作区会从注册表中移除($DSH_HOME/storages/workspace.json),因此其行会从侧边栏消失。全部清除会移除所有工作区注册。任何仍属于已移除工作区的正在运行的会话会移动到“未分组”桶中,与应用自身的“删除工作区”行为一致。
- 部分清除(某些日志无法解析为安全目录)会保留工作区,因此剩余的会话仍保持分组,而不会成为孤儿;对话框会报告有多少已删除、多少未删除。
- 对于保留的工作区,注册表中存储的会话 ID 可能会在下一次宿主启动前过期。无害:侧边栏会针对 session.list 联接成员关系,并跳过没有摘要的 ID。

该插件在构造上不依赖主目录:它从不自行解析路径(没有 ~/.dsh 字面量,没有主目录查找),它触及的每个路径都来自其接线由 $DSH_HOME 派生的宿主服务(dshHomePath('sessions'))。
已针对使用自定义 DSH_HOME 启动的测试框架进行验证:预览读取该 home 的会话,清除操作将其删除,而默认 home 保持未受影响。

有意保留的内容

每个操作都遵循同一条规则:

- 任何清除操作唯一拒绝的会话是那些其 agent 正在运行的会话(有回合正在进行且日志正在被追加),以及其谱系可追溯到正在运行会话的冷子代理日志(对 parentSession 链求不动点):删除其写入者下方的日志会留下一个重新创建的、无头文件。对话框会报告保留的数量。
- 已附加但空闲(打开)的会话会被删除。宿主会在本次运行的剩余时间内将其接触过的每个会话保留在内存中,因此保护已附加会话会使工作区和全部清除操作在重启前变成空操作。由于宿主仍会从内存中列出此类会话(重新加载后它会残留在侧边栏中),清除操作会先将其归档——宿主自身的归档会隐藏该行,并在它是当前会话时清除选择——然后删除日志。
- 持久化后端无法解析为形状良好的会话目录的任何内容(基名必须等于会话 id,父级必须匹配项目键的形状)。此类条目会被计为未解析并报告回来,而不是被删除。

对话框会在用户确认之前说明保留的数量。

它如何融入 GUI

这三个界面都没有声明插件槽位。工作区和会话行菜单属于 ui-workspace 的浏览器,而 New Session 按钮属于侧边栏外壳,因此浏览器这一半在 DOM 层面进行集成:

- 一个 body 级观察者在 portal 菜单打开时通过其菜单项集合识别它:Rename + Delete-workspace 这一对是工作区菜单(会克隆进来一个“Clear session history”危险行),Rename + Fork + Archive 这一组是会话菜单(会克隆进来一个带垃圾桶图标的红色“Delete session”行)。克隆的行复用菜单自身的类以及主题的危险色。
- 目标在 pointerdown/keydown 时从锚点按钮的 aria-label 中捕获:工作区行(标题 + 同名行中的出现次序,因此同名基名的工作区可以确定性地解析)或会话行(标题、所属工作区分组,以及该行在组内的索引)。会话 id 永远不会到达 DOM,因此插件在点击时通过按组相对行索引寻址 workspace.sessionIds 来解析它,镜像侧边栏自身的渲染顺序(跳过已归档和无摘要的 id),并在执行操作前再次核对会话标题。未分组的行按标题在没有任何工作区拥有的会话中匹配。
- New Session 按钮会在其下方获得一个克隆的红色同级按钮(仅限宽侧边栏;56px 的窄栏保持不变)。

每个钩子在模板不匹配(未知区域设置、DOM 重构)时都会降级为空操作,而不是破坏侧边栏。两个随附的区域设置(英文和简体中文)已匹配。

该对话框是 harness 自有的 RiskConfirmation 原语(由复选框控制),托管在插件的私有 React root 上。所有调用都通过 Typert remote(/api/clearSessionHistory/*)往返:

- preview(input) / clear(input) → 工作区范围 { workspaceTitle, titleOccurrence }(空标题 = 所有工作区);
返回 { targets, kept } / { deleted, targets, kept, removed }。
- previewSession(input) / clearSession(input) → 单个会话 { sessionId };preview 报告该日志是否可删除,clear
返回 { deleted, targets, kept, removed },并且绝不会移除工作区。

工作区标题通过 workspaceRegistry(注册表显示顺序)解析,与侧边栏渲染它们的顺序一致。

安装

dsh plugin --profile web add /path/to/deepseek-harness-plugins/clear-session-history

重启 GUI。验证:

curl -s -o /dev/null -w "%{http_code}\n" \
http://127.0.0.1:3080/plugins/dsh-clear-session-history/client.js # 200

安全说明

- 该插件运行在宿主仅追加持久化服务之下。
它只会移除后端自身为所列会话定位到的目录,并且仅在重新检查磁盘上的目录形态之后才会这样做。
- 工作区注册只会由宿主自身的
workspaceRegistry.delete() 移除,并且仅在完全成功清除(每个
目标日志都已消失)之后才会这样做,因此部分失败绝不会使会话成为孤儿。
- 没有回收站或撤销:删除是永久性的。对话框中的复选框正是为此而存在。

验证

- pnpm test(node 部分针对打桩服务 + 临时会话根目录):范围匹配、运行中/子代理保留规则、出现次数解析、未知工作区软失败、工作区注册移除(按工作区和全部清除)、部分清除保留工作区、单会话删除(冷删除、已附加但空闲的删除并归档以隐藏、运行中的 agent 被拒绝、未知 id 失败、工作区绝不删除)、退化
locate() 拒绝、缺失服务失败。
- node tests/client-session-flow.mjs(在 harness checkout 的 jsdom 下构建的客户端 bundle):针对模拟的分组侧边栏驱动真实的 pointerdown → session-menu → Delete session → id-resolution 路径,并断言对话框作用于解析出的会话 id。
- 针对运行中实例的实时探测(非破坏性):

curl -s -X POST http://127.0.0.1:3080/api/clearSessionHistory/preview \
-H 'content-type: application/json' \
-d '{"type":"client-request","rpcId":"probe","method":"clearSessionHistory/preview",
"payload":{"args":{"input":{"workspaceTitle":"","titleOccurrence":0}}}}'

返回的 targets 数量与 find ~/.dsh/sessions -mindepth 2 -maxdepth 2 -type d | wc -l 匹配(减去当时其 agent 正在运行的会话,这些会话报告为 kept)。
预览分享卡片长什么样 ↓n0pe-sled/clear-session-history
分享 · DeepSeek Harness Hub
n0pe-sled/clear-session-history

按工作区或单个会话删除磁盘上的会话日志

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