haoranwang0921/dsh-session-cleaner

DeepSeek Harness dynamic Cordis plugin: manage and delete conversation records (whole sessions or individual messages) from the web GUI.

项目介绍Project Overview

dsh-session-cleaner 是 DeepSeek Harness Web GUI 的会话管理插件,在「设置→会话管理」中删除整个会话或单条对话记录:整会话会物理删除 JSONL 日志目录并清理反馈数据;单条消息按用户消息分组,删除会级联移除其助手与工具消息。适用于清理历史对话、精简上下文。注意:运行中或当前会话受 Host 校验保护不可删;单条删除仅从模型上下文移除,原始事件仍保留在日志中,且删除不可逆。

dsh-session-cleaner is a DeepSeek Harness Web GUI plugin for managing chat history under Settings → Session Management. It can delete an entire session, physically removing its JSONL log directory and feedback data, or delete individual messages grouped by user message, cascading to related assistant and tool messages. Use it to clean up history or trim context. Caveats: running or current sessions are protected by host validation; single-message deletion only removes messages from model context while raw events remain in logs, and deletions are irreversible.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile web add github:haoranwang0921/dsh-session-cleaner

haoranwang0921/dsh-session-cleaner 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-session-cleaner

DeepSeek Harness Web GUI 插件:在设置页中管理并删除对话记录。

English

功能

  • 删除整个会话:归档会话并物理删除其持久化日志(JSONL 目录),同时清理该会话的消息反馈数据。
  • 删除单条对话记录:按用户消息分组展示对话内容;删除一条用户消息会级联删除它引发的所有助手回复与工具消息。
  • 分组查看:设置页「会话管理」中,点击一条用户消息可展开其引发的助手/工具消息,子消息可单独删除。
  • 安全边界:运行中的会话与当前会话不可删除,也不可删除其中的单条消息(Host 端校验)。

运行环境

安装(正式插件,随 DSH 启动自动加载)

本仓库是一个 dual-face 插件包:node half 运行在宿主进程(/api/session-cleaner 路由),browser half 通过 dsh.client 声明加载进 Web GUI。

# 1. 安装到 profile(本地开发用 link 路径;或发布 npm 后用包名)
dsh plugin --profile web add link:C:\path\to\dsh-session-cleaner

# 2. 重启 dsh web
dsh web

安装后插件随 DSH 启动自动加载,无需每次重新安装。使用入口:设置 → 会话管理

更新代码后无需重新构建(本仓库为纯 JS),重启 dsh web 即可。

工作原理

  • cordis.patch.ymldsh.bundle.patch)向 profile 组合插入一行 session-cleaner 插件。
  • package.jsondsh.client 声明让浏览器半从 /plugins/<id>/client.js 加载;exports["./client"] 指向 bundle。
  • node half 通过 webServer 注册 /api/session-cleaner/* 路由(仅回环访问),浏览器半通过 fetch 调用。

卸载 / 更新

dsh plugin --profile web remove @haoranwang0921/dsh-session-cleaner

或直接编辑 $DSH_HOME/cordis.patch.yml / profile 的 cordis.patch.yml,把 session-cleaner 行禁用或删除。

删除语义(重要)

DSH 会话日志是 append-only 的:

  • 删除整个会话:物理删除该会话的日志目录,记录彻底移除(内容寻址的共享附件除外)。
  • 删除单条消息:通过 surface replace 机制把目标消息从模型上下文移除(与 /compact 压缩同款语义),但原始事件仍保留在日志与人类转录中;本插件列表中该消息会消失。

文件结构

  • lib/index.js — node half(Host 端):/api/session-cleaner/* 路由与删除逻辑。
  • lib/client.js — browser half:设置页「会话管理」分组视图。
  • cordis.patch.yml — bundle patch(向 profile 插入插件行)。
  • dynamic/ — 旧版动态 Cordis 插件格式(cordis_define / cordis_run 加载,DSH 重启后需重新加载),保留作参考。
  • LICENSE — Apache-2.0。

免责声明

删除操作不可逆。请在操作前确认目标会话/消息;作者不对数据丢失负责。

上一个 Prev dsh-conversation-map 下一个 Next dsh-yolo