fountunt/dsh-session-cleaner 预览 preview

fountunt/dsh-session-cleaner

Plugin插件 Native原生 ⭐ 6 MIT Sessions & Context会话与上下文

Delete DeepSeek Harness sessions from a running web runtime — files, live store, and workspace records — without restarting dsh web.

catalog descriptioncatalog 简介 / catalog description:为 DeepSeek Harness 提供会话删除能力,支持侧边栏 ⋮ 菜单入口

Project Overview项目介绍

dsh-session-cleaner is a native plugin built exclusively for the DeepSeek Harness (DSH) web runtime. It addresses a missing feature in DSH’s official API, which only lets users archive and hide sessions, not permanently delete them without a full restart of the dsh web process. To install the plugin, users can run one of three commands via the DSH CLI: installing from npm, pulling directly from the GitHub repository, or adding a local checked-out copy of the code. After installation, a restart of dsh web is required, because running DSH instances do not support hot-loading of new plugin bundles.

Once installed and activated, the plugin adds a new “Delete session” option to the overflow menu of each session row in the DSH web sidebar. This option only appears if the session title is unambiguous, so it will not show up for duplicate session titles to prevent accidental deletion. The delete button is automatically disabled and greyed out for active running sessions, and the currently active conversation can never be deleted through this tool. This plugin is useful for any DSH user that regularly cleans up old or unwanted sessions to free up disk space and keep their sidebar organized.

This project is released under the permissive MIT open source license, and it depends on the official @deepseek-ai/cordis package from DeepSeek as a peer dependency. Developers who want to contribute or modify the plugin can install dependencies with pnpm and run the included unit tests with a simple node --test test/ command. Deletion via this plugin is irreversible, and it removes all artifacts from disk, detaches the session from workspaces, and removes it from DSH’s in-memory store so it disappears immediately without a restart. A stale entry may remain in the session projection cache until the next restart, but this is harmless and does not take up extra space.

这是专为DeepSeek Harness(DSH)Web运行时设计的原生插件,用于填补官方API的功能缺口:官方仅提供归档隐藏会话的接口,不支持不重启dsh web直接永久删除会话。用户可以通过DSH的插件管理器,直接从npm、GitHub仓库或者本地路径安装该插件,安装完成后需要重启dsh web进程,因为正在运行的实例不支持热加载新的插件包。

安装完成后,DSH网页端的侧边栏会话行更多菜单会新增一个「删除会话」选项,当前正在运行的对话无法删除,运行中的会话会置灰该选项,空闲会话会先停止再删除,避免出现异常。当存在重名会话时,该选项不会显示,避免误删。这个插件适合需要定期清理无用会话、释放存储空间的DSH日常用户和开发者。

该插件基于MIT许可证开源,开发依赖为@deepseek-ai/cordis,使用pnpm即可安装依赖并运行单元测试。删除操作不可逆,会同时移除会话的内存条目、工作区记录和磁盘上的产物文件,删除后只有会话投影缓存可能残留无效条目,重启后会自动清除。它还开放了API接口,支持开发者通过同源HTTP调用删除指定会话。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 6 stars - very few users, little community feedback星标只有 6,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

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

CLI Install命令行安装

dsh plugin --profile web add dsh-session-cleaner

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

READMEREADME

dsh-session-cleaner

English | 中文

Delete DeepSeek Harness sessions from a running web runtime — files, live store, and workspace records — without restarting dsh web.

The official web API only offers workspace.archiveSession (hide); there is no session.delete. This bundle closes that gap.

Install

dsh plugin --profile web add dsh-session-cleaner            # from npm
dsh plugin --profile web add github:fountunt/dsh-session-cleaner   # from git

# or from a local checkout
dsh plugin --profile web add file:/path/to/dsh-session-cleaner

Then restart dsh web (a running instance does not hot-load new bundles).

Usage

Web UI (v1.0.0)

The client half adds a 🗑 "Delete session" item at the bottom of the sidebar session row ⋮ menu — the item is skipped when the row title is ambiguous (duplicate titles).

Click, confirm, and the session is deleted and the sidebar refreshes. The item is disabled (greyed) while the session is running; sessions opened in the UI (idle agents) are stopped first, then deleted. The current running conversation can never be deleted.

API

The plugin registers one route on the web server:

POST /api-ext/session.delete
Content-Type: application/json

{ "sessionId": "session-1bb8d361-ea6b-4b92-bab2-c858c92e8822" }

Same-origin calls work from the browser console of the harness page:

await fetch("/api-ext/session.delete", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ sessionId: "session-1bb8d361-ea6b-4b92-bab2-c858c92e8822" }),
}).then(r => r.json());

Response envelope (mirrors the host's RPC style):

{ "ok": true, "value": { "detached": true, "workspaces": 1, "files": 1 } }
{ "ok": false, "error": { "code": "refused", "message": "..." } }
  • detached — the session was removed from the in-memory live store (this is what makes it disappear from the sidebar immediately, without a restart).
  • workspaces — how many workspace records the session was detached from.
  • files — how many on-disk artifact directories were removed.

Safety

  • Sessions with an attached agent (running or idle) are refused — the current conversation can never be deleted through this endpoint.
  • Deletion is irreversible: artifacts, workspace membership, and the live entry are all removed. The session-projection cache may keep a harmless stale row until the next restart.

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-desktop 下一个 Next dsh-factor-investing →