从网页界面永久删除会话日志与附件
28.3/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Geralt4/dsh-plugin-session-delete该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-slots给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 永久删除会话日志
- 永久删除会话附件
- 顶栏按钮确认弹窗
DSH 插件:在 Web UI 里永久删除某个会话的磁盘日志和附件(顶栏按钮 + 确认弹窗)。
README
由 DeepSeek 最新模型翻译生成dsh-plugin-session-delete
一个 DeepSeek Harness 插件,为 Web UI 中的会话(聊天)添加真正的、永久性的删除功能——在对话头部添加一个“删除会话”按钮,并附带确认对话框。确认后,它会删除该会话在磁盘上的对话日志和附件,并将该行从侧边栏中隐藏,无需刷新页面。
目前,原生 UI 只能归档会话(将其隐藏;日志会永久保留在磁盘上)。核心没有 deleteSession RPC,因此该插件添加了一个小型的宿主端 HTTP 路由来执行持久删除,并添加了一个调用它的客户端头部操作。
⚠️ 不可逆。已删除的会话无法恢复。删除会话前,请停止该会话上正在运行的任何 agent(该路由也会尽力取消 agent)。适用于 Web 配置文件和桌面客户端。
展开完整文档(README 剩余 1 节)
dsh-plugin-session-delete
一个 DeepSeek Harness 插件,为 Web UI 中的会话(聊天)添加真正的、永久性的删除功能——在对话头部添加一个“删除会话”按钮,并附带确认对话框。确认后,它会删除该会话在磁盘上的对话日志和附件,并将该行从侧边栏中隐藏,无需刷新页面。
目前,原生 UI 只能归档会话(将其隐藏;日志会永久保留在磁盘上)。核心没有 deleteSession RPC,因此该插件添加了一个小型的宿主端 HTTP 路由来执行持久删除,并添加了一个调用它的客户端头部操作。
⚠️ 不可逆。已删除的会话无法恢复。删除会话前,请停止该会话上正在运行的任何 agent(该路由也会尽力取消 agent)。适用于 Web 配置文件和桌面客户端。
安装
安装到 dsh web 配置文件中(dsh plugin 命令会转发到配置文件目录中的 pnpm),然后添加 Loader 条目行并重启配置文件:
从 npm 安装
dsh plugin --profile web add dsh-plugin-session-delete
或直接从 GitHub 安装(lib/ 已提交,因此无需构建)
dsh plugin --profile web add github:Geralt4/dsh-plugin-session-delete
然后将该插件的 Loader 条目追加到配置文件的 cordis.patch.yml($DSH_HOME/profiles/web/cordis.patch.yml)中,并重启 dsh web:
- insert:
- id: session-delete
name: dsh-plugin-session-delete
刷新页面后,对话头部会出现一个删除会话按钮。
工作原理
┌──────────────── browser ────────────────┐ ┌──────── host (Node) ────────┐
│ conversation.session.header.actions slot│ │ webServer.register(exact) │
│ DeleteSessionHeaderAction (button) │──> │ POST /api/session-delete │
│ DeleteSessionDialog (confirm modal) │ │ { sessionId } │
│ │ confirm() │ │ │ │
│ │ fetch POST /api/session-delete │ │ ▼ │
│ ▼ │ │ cancel agent (best-effort) │
│ on ok: ctx.workspaces.archiveSession() │ │ sessionPersistence.inspect │
│ (row disappears from sidebar now) │ │ → absolute log path │
└─────────────────────────────────────────┘ │ fs.rm(dir, recursive) │
│ (log + attachments) │
│ SQLite FTS rows auto-drop on │
│ next persistence observation │
└─────────────────────────────┘
为什么是插件而不是核心 PR
DeepSeek Harness 核心没有 session.delete / workspace.deleteSession RPC(只有 workspace.archiveSession,用于隐藏;以及 session.cancel,用于停止)。dsh-host-apiproxy 中的静态 UNARY_ROUTES 表无法由插件扩展,因此插件无法添加路由 RPC。但它可以,通过 webServer 服务(dsh-host-webserver)注册自己的 HTTP 路由,并通过公开的 sessionPersistence.inspect(id).path 访问相同的磁盘结果。这个插件正是这样做的。
这是对真正应属于核心的功能(持久化协调器负责实时会话退役和精确路径编码)的尽力近似。如果维护者将来添加了一等的 deleteSession,这个插件可以缩减为围绕它的薄 UI 包装。
项目布局
dsh-plugin-session-delete/
package.json # dsh.client manifest + peerDeps + tsdown scripts
tsdown.config.ts # two-entry build (host + client)
tsconfig.json
src/
index.ts # host half: webServer route + fs.rm
client.ts # browser half: header action + confirm dialog
lib/ # build output (index.js + client.js)
构建
pnpm install
pnpm bundle # tsdown -> lib/index.js, lib/client.js (+ .d.ts)
客户端 bundle 格式说明
浏览器通过 window.__ModuleLoader__.load({ id, factory }) 加载客户端部分(参见 @deepseek-ai/dsh-client-modules)。在 DSH monorepo 中,一个共享的 tsdown 插件将客户端入口包装成该形式;宿主入口是纯 ESM,构建时保持不变。
- 在仓库内(首次开发推荐):将此包放到 packages/ 下(例如 packages/plugin/session-delete),并复制 packages/session-query/session-log-export/tsdown.config.ts,以便客户端输出被包装。将该包添加到 web profile 的 bundle 列表中。
- 在仓库外:要么复制该仓库内的 tsdown 配置,要么直接以 factory 形式编写 src/client.ts,以便普通的外部化构建可以加载(参见下面的 Out-of-tree build)。tsdown.config.ts 中的 peer deps 必须保持外部化,以便加载器的 require 在运行时解析它们。
安装到 profile
仓库外插件通过 dsh plugin 命令添加到 profile,该命令会转发到 profile 目录中的 pnpm:
from a checkout of this plugin, or an npm tarball
dsh plugin --profile web add
dsh plugin --profile web install
然后重新构建 profile 的前端产物并刷新正在运行的 URL(shell 不是独立应用;dsh web 会注入 window.__DSH_BOOT__)。
要针对运行在 http://127.0.0.1:3080 的 GUI 进行开发:客户端部分无需刷新即可重新加载,仅当同时从同一 checkout 运行 pnpm run dev:web 以重新构建客户端 bundle 时。宿主部分和 shell 需要重新构建 + 刷新。
运行 / 验证
1. 启动 web profile:dsh web(或从源代码 checkout 运行 pnpm dsh web)。
2. 打开一个会话。对话标题栏中会出现一个“Delete session”按钮。
3. 点击它 → 确认对话框 → “Delete permanently”。
4. 该会话在持久化根目录下的磁盘目录被删除,该行从侧边栏中消失。
磁盘上的会话日志位于
///session.jsonl[.zstd]
(+ 同目录下的附件)。此插件从不重新计算该路径:它从
sessionPersistence.inspect(id) 读取绝对路径,并删除该
产物的目录。
树外构建(客户端工厂形式)
如果你无法使用仓库内的 tsdown 客户端插件,请将 src/client.ts 替换为工厂形式的等价实现,以便一个普通的外部化 ESM 构建可被加载。
其形态如下(与已发布的 @deepseek-ai/dsh-session-log-export/lib/client.js 一致):
window.__ModuleLoader__.load({
id: "dsh-plugin-session-delete",
factory: (require) => {
const { jsx, jsxs, Fragment } = require("react/jsx-runtime");
const { createSnapshotStore } = require("@deepseek-ai/dsh-client-runtime/client");
const { Modal, Button, IconTrashOutline16 } = require("@deepseek-ai/dsh-client-ui-primitives");
// …the controller, dialog, header action, and apply/inject from src/client.ts…
return { apply, inject };
},
});
在 tsdown.config.ts 中保持 react、react/jsx-runtime 和 @deepseek-ai/* 为外部依赖,以便这些 require(...) 调用在物化时由加载器解析,而不是被打包。
限制
- 活动会话:如果某个 agent 在你删除时正在积极写入,持久化协调器可能会在此插件删除日志后重新创建它。
该路由会尽力先取消该 agent;对话框会警告用户。
- 后代:此 v1 仅删除一个会话的目录。子 agent 子项不会被级联删除。(如果你想要级联的后续功能,请查看 session.export 的 includeDescendants 模式。)
- 工作区记账:该行通过 workspace.archiveSession 被隐藏,这会将该 id 保留在其工作区的 sessionIds 槽位中。过期的记账会在下一次持久化观察时由核心协调。从记账中真正移除应属于核心的职责。
- SQLite FTS 索引:一旦日志文件消失,会由核心的协调自动删除;此插件不会直接触碰该索引。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Geralt4/dsh-plugin-session-delete
从网页界面永久删除会话日志与附件
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,362已汉化DSH
71.4
终端编码代理esengine/DeepSeek-Reasonix
· 指南 · ACP · 扩展开发 · 规格 · 官方网站 · Discord · QQ
★ 36,076已汉化DSH
71.2
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,814已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。