DeepSeek Harness Hub
← 返回列表

Yicijiuhaobala/dsh-session-delete

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

一个 DeepSeek Harness DSH 插件:给会话行菜单增加「删除会话」项与

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/24 · 已提供中文文档

在 DSH 会话行上下文菜单中添加“删除会话”项(位于重命名/复刻/归档旁边)——从磁盘永久删除会话日志,并带有活动会话保护。

综合分
27.3
GitHub 分
27.3
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Yicijiuhaobala/dsh-session-delete
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-delete

一个 DeepSeek Harness (DSH) 插件:给会话行菜单增加「删除会话」项(与
重命名 / 分叉会话 / 归档会话 并列),永久删除所选会话的全部磁盘记录
(~/.dsh/sessions/...//)。

上游 DSH 对会话只有「重命名 / 分叉 / 归档」——归档只是隐藏,数据永远留在
磁盘上。这个插件补上真正的删除。

入口

会话行菜单:鼠标悬停任意会话行 → 点 ⋯ → 「删除会话」(红色危险样式,
与工作区菜单的删除按钮同款)。确认弹窗两步操作。

v0.3.0 起移除了侧边栏底部的删除面板,只保留菜单入口。已归档的会话不再
出现在侧边栏,如需删除归档会话,可从
~/.dsh/storages/workspace.json 的 archivedSessionIds 里移出使其重新
显示,或直接删 ~/.dsh/sessions/// 目录。

技术要点(菜单注入)

上游会话菜单项硬编码在 dsh-client-ui-workspace 里、没有扩展插槽;所有共享
UI 原语(primitives)种子模块被 Object.freeze 冻结,组件级猴子补丁赋值会
静默失败。因此 v0.2.1 改为 DOM 级注入:

- 捕获阶段 document click 监听:点会话行的 ⋯ 按钮时,沿 React fiber
上溯到 SessionNodeItem 的 node prop 捕获会话 id(失败时退回
aria-label 标题匹配);
- MutationObserver 监听 body:当挂载的 div[role=menu] 恰好是
「重命名/分叉会话/归档会话」三项时,克隆最后一项的 DOM 结构,替换图标与
文案为「删除会话」并染成危险红,追加进菜单;
- 点击该项:派发 Escape 关闭上游菜单,再用独立的 createRoot 渲染确认
弹窗(不依赖任何冻结模块);
- 卸载/热更新时移除监听、观察器与注入的 DOM 节点。

安全设计

- 运行中或当前打开的会话禁止删除(前端禁用 + Host 侧二次校验)
- 只删除 sessionPersistence.locate() 定位到的会话日志目录,并校验目录名
必须严格等于会话 ID(杜绝路径逃逸)
- HTTP 路由仅接受同源 POST 请求
- 两步确认(删除 → 红色确认按钮)后才执行
- 删除后自动归档,侧边栏即时隐藏该行

安装

从 GitHub 仓库安装
dsh plugin --profile web add github:/dsh-session-delete

或从 Release 预构建 tarball 安装(免构建授权)
dsh plugin --profile web add

或本地开发
dsh plugin --profile web add file:$HOME/Documents/dsh-session-delete

装完把 "dsh-session-delete" 加进 ~/.dsh/profiles/web/package.json 的
dsh.profile.bundles 数组,重启 dsh web。

本地开发注意:pnpm 对 file: 依赖是复制/硬链接部署——改完源码后需要把
client/client.js、lib/index.js 等文件同步到
~/.dsh/profiles/web/node_modules/dsh-session-delete/(或重跑 pnpm install),
HMR 会在下一次轮询时热更新浏览器端插件。

结构

- lib/index.js — Host 半:注册 /session-delete/delete POST 路由,执行删除
- client/client.js — 浏览器半:会话行菜单注入 + 确认弹窗(React,无 JSX)
- cordis.patch.yml — bundle 补丁,把插件行插入 profile 合成树

MIT License.

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群