dsh-session-cleaner

DSH PLUGIN会话与消息

仓库 new-256/dsh-session-cleaner · npm @luchenglong/dsh-session-cleaner

会话与消息 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件
安装这个插件

为 DeepSeek Harness 网页端补上会话删除能力:侧边栏原生「移入回收站」、可恢复回收站管理页与 HTTP API,支持重名防误删、对话预览与定期自动清空。

一句话选型结论

按资料字段整理

dsh-session-cleaner 是会话与消息类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 1
最近更新 2026-10-06 创建于 2026-08-28
README 9.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @luchenglong/dsh-session-cleaner
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名@luchenglong/dsh-session-cleaner可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-session-cleaner:为 DeepSeek Harness 补上可恢复的会话回收站

  • 两级可恢复回收站
  • 重名防误删与对话预览
  • 定期自动清空过期会话
  • 主题与 DSH 主体一致

上游标签

deepseek-harnessdsh-pluginsession-cleanertrash

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-session-cleaner当前 未做沙盒验证 未标注 0 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方new-256仓库 dsh-session-cleaner · 默认分支 main
分类会话与消息session
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-28 · 2026-10-06最后推送 2026-10-06
本站收录2026-09-09首次进入本站目录的时间

README 全文

9.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-session-cleaner

> DSH (DeepSeek Harness) 会话回收站与清理管理器 · Trash bin & session cleaner for DeepSeek Harness

给 DSH Web GUI 补上原生缺失的会话删除能力——以侧边栏原生交互呈现,采用两级可恢复删除设计,
内置重名防误删、对话内容预览/同名分辨、定期自动清空能力,界面主题与 DSH 主体完全一致。

Adds native, reversible session deletion to the DSH Web GUI — a two-level recoverable trash bin with a
name-collision guard, conversation preview, scheduled auto-purge, and DSH-native theming.

会话行「⋯」菜单:  重命名 / 分叉会话 / 归档会话 / 移入回收站 ← 本插件注入
侧边栏底部:        …工作区列表… / 🗑️ 回收站 / ⚙️ 设置        ← 本插件注入
管理页与确认弹窗:  💬 查看对话 · 定期清空设置 · 同名对照      ← v1.2.0 增强

> 说明 / Note:npm 上另有同名裸包 dsh-session-cleaner(fountunt 发布,专注 live store detach)。
> 本包是功能完整的回收站方案(移入/恢复/彻底清除/定期清空/防误删/预览),两者互不冲突;
> 为避免混淆,本包以 scoped 名 @luchenglong/dsh-session-cleaner 发布。


功能特性 / Features

  • 🗑️ 可逆回收站 Reversible trash:移入回收站(物理目录移至 dsh-home/.session-cleaner-trash\\,
    清理 workspace.json / session_projcache),可随时恢复或彻底清除。
  • ⚠️ 重名防误删 Name-collision guard:从 React Fiber 精确提取 sessionId,永不按标题猜 id;
    二次确认弹窗展示同名会话摘要与首条指令对照。
  • 💬 对话内容预览 Conversation preview:多帧 zstd 解压 + JSONL 提取(标题/轮次/用户与助手消息/
    首条指令高亮),自动过滤系统注入消息,首条用户指令 100% 为真人提示词。
  • 🧹 定期自动清空 Scheduled auto-purge:会话移入回收站 N 天后自动彻底删除(可开关、可调天数与
    检查间隔),回收站内展示剩余天数/过期状态。
  • 🎨 主题与 DSH 主体一致 DSH-native theming:内嵌官方 design-platform 设计令牌(light/dark),
    全部组件使用 --dsw-alias-* 语义变量;主界面注入的弹窗同步跟随。
  • 🛡️ 安全加固:Session ID 路径穿越校验;残留条目清理;活跃会话(projcache openStep/pendingCalls
    非空)拒绝删除。

安装 / Install

要求:DSH Desktop ≥ 0.3.15(@deepseek-ai/dsh >= 0.1.1-rc.2),Node ≥ 20。

方式一:npm 安装(推荐) / Install from npm (recommended)

dsh plugin --profile web add @luchenglong/dsh-session-cleaner

安装后 bundle 补丁层自动注册插件(dsh.bundle.patch → cordis.patch.yml,id: session-cleaner)。

方式二:本地包安装 / Install from a local package

dsh plugin --profile web add <本包路径>

方式三:手动放置 / Manual install

把 lib/index.mjs 放到 dsh-home 根目录(如 session-cleaner.plugin.mjs),并在用户层补丁
dsh-home/cordis.patch.yml 增加:

- insert:
- id: session-cleaner
name: file:///C:/.../dsh-home/session-cleaner.plugin.mjs
config:
verbose: false

保存后 DSH 自动热加载(或重启),刷新一次页面(F5) 后侧边栏出现「回收站」入口与菜单项。
机器特定配置写在用户层补丁的同 id 行即可整体覆盖 bundle 层默认值。

验证:GET /api/session-cleaner/sessions 返回 200 即已生效。

使用 / Usage

日常操作(GUI)

  1. 鼠标悬停侧边栏任一会话 → 点「⋯」→ 移入回收站
  2. 确认弹窗核对信息(完整 sessionId、首条用户指令;同名会话有黄色警示区列出各自指令对比)→ 确认
  3. 查看对话:管理页 /session-cleaner 点「💬 查看对话」行内展开卡片
  4. 后悔了:侧边栏「🗑️ 回收站」(或 /session-cleaner#trash)→ 找到该项 → 恢复
    - 回收站视图只展示回收站与设置,不显示工作区会话;页头「💬 会话列表」按钮可切换回完整管理页
  5. 确定不要了:回收站里彻底清除;或交给定期自动清空到期自动处理

定期清空设置 / Auto-purge settings

管理页「回收站」区块设置卡片:开关「定期自动清空」+ 保留天数(1–3650)+ 检查间隔(15–1440 分钟)。
持久化到 dsh-home/session-cleaner-settings.json(独立文件,不会被清空)。
默认:开启、保留 30 天、每 60 分钟检查一次;另有「🧹 立即清理已过期」按钮。

回收站显示规则 / Trash list semantics

条目状态 是否显示
已在回收站且不在当前列表 ✅ 显示
已归档会话(含删除时归档、workspace.json 仍标记归档) ✅ 显示(「已归档」标记)
会话仍在「当前列表」(sessions 目录中未归档可见会话) ❌ 隐藏(视为陈旧/重复备份)

HTTP API

方法 路径 说明
GET /api/session-cleaner/sessions 会话列表(含 archived/subagent/visible/live 标记;isLive 只看 projcache 的 openStep/pendingCalls)
GET /api/session-cleaner/trash 回收站列表(服务端过滤 + 过期/剩余天数计算)
GET/POST /api/session-cleaner/settings 读取 / 保存定期清空设置
POST /api/session-cleaner/purge-expired 立即清理已过期条目
GET /api/session-cleaner/preview?sessionId= 对话内容预览(zstd 解压 + JSONL 提取)
POST /api/session-cleaner/delete { sessionId, confirm: "DELETE" } 移入回收站
POST /api/session-cleaner/restore { sessionId } 恢复
POST /api/session-cleaner/purge { sessionId, confirm: "PURGE" } 或 confirm: "PURGE-ALL"
GET /session-cleaner 管理页(支持 #trash 锚点与对话展开)

示例($base 为 DSH GUI 实际运行地址,端口每次重启可能变化):

$base = 'http://127.0.0.1:58644'   # 以实际 GUI 地址为准

# 列出会话(观察 isLive / titleCollision 字段)
Invoke-RestMethod "$base/api/session-cleaner/sessions"

# 获取指定会话的对话预览(同名分辨核心)
Invoke-RestMethod "$base/api/session-cleaner/preview?sessionId=session-xxxxxxxx"

# 移入回收站
Invoke-RestMethod "$base/api/session-cleaner/delete" -Method Post -ContentType 'application/json' `
-Body '{"sessionId":"session-xxxxxxxx","confirm":"DELETE"}'

数据布局 / On-disk layout

dsh-home/
├── .session-cleaner-trash/
│   └── /
│       ├── .trash-info.json      # { deletedAt, title, originalWorkspacePath, originalSessionDir, targetWsId, projRecord, isSubagent, isArchived }
│       └── session-data/         # 原会话物理目录
├── session-cleaner-settings.json # 定期清空设置(保留天数/开关/检查间隔)
└── sessions/…                    # 未受影响

已知边界 / Known boundaries

  • 恢复的会话需重启 DSH 后才会重新出现在侧边栏列表(宿主 workspace registry 无外部收养 API)
  • 有未闭合 step 的会话会被拒绝删除(防数据截断);状态落定后自然可删
  • isLive 判定不能用 SessionStore 的内存加载状态——DSH 后端会把打开过的会话常驻内存,那样所有空闲会话都会被误判为活跃而全部拒删。本插件只认 projcache 的 openStep/pendingCalls 硬信号
  • 前端选择器使用 [class*="..."] 包含匹配(如 _menuOpen),对 CSS Module 前缀变化免疫;DSH 大版本改版 DOM 结构时需重新适配
  • 自动清空是不可逆操作:开启后到期条目会被后台任务直接删除;如不希望自动删除请关闭开关

开发 / Development

布局

  • lib/index.mjs:单文件宿主插件(export const name = 'session-cleaner' + apply(ctx, config));
    无 client 半边(注入脚本由 webserver/index-inject 事件服务端下发)
  • cordis.patch.yml:bundle 补丁层(package.json 的 dsh.bundle.patch 声明)
  • smoke-test.mjs:逻辑冒烟测试(25 项断言,临时 dshHome 副本上运行,不触碰真实数据)

热更新(改代码不用重启 DSH)

DSH 的 ESM 模块缓存不会因文件内容变化而失效。手动放置部署时,修改源码后把 cordis.patch.yml
条目 name 的 query 版本号 +1(如 ?v=7 → ?v=8)保存即可触发热加载。

测试

node smoke-test.mjs     # 25 项断言:设置读写/安全校验/归档标记/回收站过滤/过期清理/移入/恢复/归档还原/彻底清除
node --check lib/index.mjs

兼容性 / Compatibility

项 值
@deepseek-ai/dsh >= 0.1.1-rc.2(测试于 0.1.2-alpha.5)
DSH Desktop >= 0.3.15
Node.js >= 20

版本 / Version

见 CHANGELOG.md。当前:v1.2.0。

License

MIT © 2026 new-256

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-session-cleaner 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add @luchenglong/dsh-session-cleaner` 即可。对应的 npm 包名是 `@luchenglong/dsh-session-cleaner`。

dsh-session-cleaner 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-session-cleaner 安全吗?

未标注。

dsh-session-cleaner 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-session-cleaner 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-session-cleaner 有哪些功能?

两级可恢复回收站、重名防误删与对话预览、定期自动清空过期会话、主题与 DSH 主体一致。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

8 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。