Back to home

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.

  • 菜单顺序变为:重命名 / 分叉会话 / 归档会话 / 删除会话(红色危险项,带垃圾桶图标)。
  • 点击「删除会话」会弹出确认框,确认后:
    1. 从工作区记账中摘除该会话;
    2. 删除磁盘上的会话日志文件(session.jsonl.zstd);
    3. 归档隐藏,使列表立即不再显示它。

⚠️ 「删除」是不可恢复的,区别于「归档」(归档只从列表隐藏、数据保留)。

适用版本

目标版本
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/ 里的补丁版本。

安装后必须执行

  1. 重启 dsh 主机进程(后端新增的 workspace.deleteSession 接口要重启后才加载)。
  2. 刷新浏览器页面 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.jsWorkspaceManager / 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)的非官方补丁。上游升级后本补丁会失效,需针对新版本重新制作。使用前请自行备份。