wujiahaocoder
dsh-delete-session-plugin
Adds a Delete-session action to the DeepSeek Harness sidebar three-dot menu (dsh 0.1.0-rc.6)
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-delete-session-plugin
给 DeepSeek Harness(@deepseek-ai/dsh,Web 版)侧边栏里每个会话的「三个点」菜单新增一个 删除会话 按钮,用于永久删除对话。
Adds a Delete session item to the sidebar three-dot menu of every conversation in DeepSeek Harness (
dsh), permanently deleting that conversation.
- 菜单顺序变为:重命名 / 分叉会话 / 归档会话 / 删除会话(红色危险项,带垃圾桶图标)。
- 点击「删除会话」会弹出确认框,确认后:
- 从工作区记账中摘除该会话;
- 删除磁盘上的会话日志文件(
session.jsonl.zstd); - 归档隐藏,使列表立即不再显示它。
⚠️ 「删除」是不可恢复的,区别于「归档」(归档只从列表隐藏、数据保留)。
适用版本
| 目标 | 版本 |
|---|---|
DeepSeek Harness (@deepseek-ai/dsh) | 0.1.0-rc.6 |
本插件通过直接替换 5 个编译后的 bundle 文件实现,因此严格绑定 0.1.0-rc.6。其它版本请勿直接套用(内部结构可能不同)。
安装
要求:Node.js(任意较新版本即可)。
# 自动定位本机 npx 缓存里的 @deepseek-ai/dsh 安装并打补丁
node install.js
# 或显式指定 @deepseek-ai 目录
node install.js --root "C:\Users\<you>\AppData\Local\npm-cache\_npx\<hash>\node_modules\@deepseek-ai"
安装器会先把 5 个原始文件备份到 <@deepseek-ai>/.dsh-delete-session-backup/,再覆盖为 patched/ 里的补丁版本。
安装后必须执行
- 重启
dsh主机进程(后端新增的workspace.deleteSession接口要重启后才加载)。 - 刷新浏览器页面
http://127.0.0.1:3080(前端 bundle 由/plugins/<id>/client.js按 no-cache 提供,刷新即生效)。
注意:后端未重启前,刷新只能看到按钮,点击会报错;请先重启后端、再刷新前端。
验证
node install.js --check
5 个文件都应显示 patched。
回退 / 卸载
node install.js --revert
从备份恢复 5 个原始文件,随后同样重启 dsh 并刷新页面。
改了哪些文件
文件(相对 @deepseek-ai/) | 改动 |
|---|---|
dsh-workspace/lib/index.js | 新增 WorkspaceRegistry.deleteSession() 与 deletePersistedArtifact() |
dsh-host-apiproxy/lib/index.js | 新增 workspace.deleteSession API 路由(请求/响应 schema + 处理器 + fetch 客户端) |
dsh-client-connection/lib/client.js | 新增 workspace.deleteSession RPC(值 schema + 方法 + fixture + 分派) |
dsh-client-runtime/lib/client.js | WorkspaceManager / WorkspaceRuntime 新增 deleteSession |
dsh-client-ui-workspace/lib/client.js | 三点菜单新增「删除会话」项、确认弹窗、onDelete 全链路接线、中英文文案 |
完整的数据流:
侧边栏三点菜单「删除会话」
→ WorkspaceBrowser 确认弹窗
→ ctx.workspaces.deleteSession(sessionId) (dsh-client-runtime)
→ api.workspace.deleteSession({ sessionId }) (dsh-client-connection)
→ workspace.deleteSession RPC (dsh-host-apiproxy)
→ ctx.workspaceRegistry.deleteSession(sessionId) (dsh-workspace)
├─ detach 工作区记账
├─ rm 会话日志文件
└─ 归档隐藏
语义说明
- 删除:永久删除——移除会话日志文件,不可恢复。
- 归档(原版自带):软删除——数据保留、可从列表隐藏恢复。
对当前正在运行的活跃会话点删除,会将其归档隐藏并摘除记账;活跃会话的持久化文件可能在其后续产生事件时被重新写入,因此建议主要用它删除历史(已结束/冷)会话。
目录结构
dsh-delete-session-plugin/
├── install.js # 安装 / 校验 / 回退 脚本
├── package.json
├── LICENSE # MIT
├── README.md
└── patched/ # 打好补丁的 5 个目标文件
└── @deepseek-ai/
├── dsh-workspace/lib/index.js
├── dsh-host-apiproxy/lib/index.js
├── dsh-client-connection/lib/client.js
├── dsh-client-runtime/lib/client.js
└── dsh-client-ui-workspace/lib/client.js
免责声明
本插件通过替换上游编译产物实现,属于对第三方软件(DeepSeek Harness)的非官方补丁。上游升级后本补丁会失效,需针对新版本重新制作。使用前请自行备份。