DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Remove Session — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
R

dsh-remove-session

Remove Session

在每个会话的“...”菜单中添加红色的“删除会话”操作,并提供确认对话框和实际从磁盘删除功能。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:NN-0101/dsh-remove-session#d9504e4f85b3870b8769c9572f231526f7fb6b15
README兼容性版本

兼容性与来源证明

Remove Session 以 dsh-remove-session 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/19

版本

0.1.1stable
2026/10/19

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/19
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 memory-context 分类下经过校验的插件。

Memory Plugin@openviking/dsh-memory-plugin适用于 DeepSeek Harness 的 OpenViking 记忆与上下文套件Contextdsh-context用于上下文洞察和管理的 DeepSeek Harness 插件,提供上下文仪表板和上下文命令,帮助了解上下文的构成及其演变过程。Ab Memorydsh-ab-memory--- description: "dsh-ab-memory 包:一种跨会话、基于文件的智能体记忆,提供五个工具(remember / recall / forget / load_skill / distill)以及始终启用的轻量注入。" kind: "package-reference" ---Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。

README

dsh-remove-session

给 DeepSeek Harness(DSH)的会话「…」菜单加一项红色“删除会话”:二次确认后,会话从侧栏和磁盘上真正消失。

能力分类:会话与消息 · 许可证:MIT · 无外部服务 · 不收集遥测


一句话价值

安装后,你可以像删除聊天记录一样删除不再需要的 DSH 会话:不用再让无用的会话日志一直堆在 $DSH_HOME/sessions 里,也不用为了“眼不见”而先归档再翻筛选器。


安装

方式一:源码安装(当前推荐)

dsh plugin --profile web add github:NN-0101/dsh-remove-session
  • --profile web 是插件市场模板里的示例 profile 名,请换成你实际使用的 profile(例如本机是 desktop)。
  • 安装完成后刷新一次 DSH Web 页面,侧栏会话的「…」菜单末尾就会出现红色“删除会话”。
  • 本插件没有构建步骤,GitHub 上的源码可以直接安装。

方式二:在 DSH 里安装

打开 设置 → 插件,选择安装本地 bundle,指向本仓库目录(或已解压的目录)即可;加载器会读取 cordis.patch.yml 并挂载插件。

方式三:npm(尚未发布)

包名 dsh-remove-session 目前没有发布到 npm,所以它暂时不会出现在 DSH 内置的「插件中心」里(插件中心只展示可用 dsh plugin --profile web add <包名> 一键安装的 npm 包)。发布后安装命令将是:

dsh plugin --profile web add dsh-remove-session

在此之前,请使用上面的 GitHub 源码安装命令;按插件市场的规则,源码安装的插件仍会被正常收录。


使用

  1. 在侧栏把鼠标移到任意会话行,点击右侧的「…」。
  2. 菜单最后一项是红色的 删除会话(在“复制 Session ID”之后)。
  3. 点击后弹出确认框,标题是“删除这个会话?”,正文会显示会话标题,并说明聊天记录会从磁盘移除、无法恢复。
  4. 点 删除:会话从侧栏消失,磁盘上的会话目录、Workspace 归属、置顶/归档记录一并清理。
  5. 点 取消、按 Esc 或点击遮罩:不做任何修改。

菜单和弹窗均支持中文与英文界面。


效果演示

菜单(新增项在最后,红色显示):

┌─────────────────────────────┐
│ 置顶会话                     │
│ 重命名                       │
│ 分叉会话                     │
│ 归档会话                     │
│ 复制 Session ID              │
│ ──────────────────────────  │
│ 🗑 删除会话                  │  ← 红色
└─────────────────────────────┘

确认框:

删除这个会话?
“帮我优化一下聊天”将被永久删除,聊天记录会从磁盘移除,且无法恢复。
                                          [取消]  [删除]

仓库暂未附带界面截图。上面的菜单/弹窗文字来自实际实现;下面的“验证”一节给出了真实的接口输出。欢迎通过 PR 补充截图。


功能

  • 红色删除入口:注册在 sidebar.workspaces.session.menu.item 槽位,order: 500,排在官方“复制 Session ID”(450)之后,默认是菜单最后一行。
  • 二次确认:自定义弹窗,红色危险按钮;确认前不会执行任何删除。
  • 真正的删除:删除该会话独占的 JSONL 日志目录($DSH_HOME/sessions/--<项目>--/<会话ID>/),并从 Workspace registry 中移除它的归属、置顶和归档记录。
  • 即时反馈:删除成功后客户端会话列表立刻移除该行;侧栏不会残留“幽灵会话”。
  • 打开会话时先切走:如果删除的是主视图正在显示的会话,客户端先切到一个新会话,再执行删除,避免停留在已删除的对话上。
  • 安全拒绝:正在运行的回合、进行中的子智能体/后台任务/定时提醒、尚未落盘的空白新会话,都会被拒绝并给出提示。
  • 中英双语:locale/zh.json、locale/en.json 以及客户端内嵌字典。
  • 图标可替换:插件卡片使用 icon.svg;菜单行的删除图标取自同一份图标(以 data URL 内嵌在 client.js,按行内文字颜色着色),替换后运行 npm run sync-icon 即可同步。

安全与权限

项目说明
读取/写入范围$DSH_HOME/sessions 下该会话自己的目录;Workspace registry 中该会话的归属、置顶、归档记录
网络不访问任何外部服务;只注册两个同源本地 HTTP 接口
遥测无
删除范围仅该会话目录;不会删除附件、其他会话、Workspace 目录本身
请求校验Origin 与 Host 对比的同源校验;删除只接受 POST + JSON
运行中保护Agent 回合仍在运行、或 workspace/session-activity 报告有工作时,返回错误且不写盘
不可恢复删除是永久的,没有回收站;需要保留请使用“归档会话”

本插件会执行不可恢复的删除,请只用它清理确定不需要的会话。


兼容性

项目要求
DSH已在 0.2.1-rc.2 上实测;依赖 webServer、sessionPersistence、sessions、agents、workspaceRegistry,同代 0.2.x 预期可用
Profile带 Web UI 的 profile(web / desktop),需要 workspace 与 ui-workspace 已挂载
平台实测 Windows;实现只使用 Node 文件 API 与同源 HTTP,macOS / Linux 设计上同样适用
Node`^22.15.0
安装形态源码安装(GitHub)或本地目录;无构建步骤

工作原理

半边职责
Host(index.js、host/session-files.js)注册同源接口 POST /plugin/dsh-remove-session/delete;校验会话状态与进行中的工作;flush 待写事件;删除 JSONL 会话目录;从 Workspace registry 摘除归属/置顶/归档;发出 api-session/removed
Client(client.js)在 sidebar.workspaces.session.menu.item 注册红色菜单行,在 shell.overlay 注册确认弹窗;确认后调用 Host 接口,并从客户端会话列表移除该行

删除动作必须由 Host 完成:DSH 的 JSONL 持久化后端没有删除 API,会话日志以目录形式存放在 $DSH_HOME/sessions 下,因此插件直接删除该会话独占的目录,不触碰共享存储。

目录定位

$DSH_HOME/sessions/
  --<规范化后的项目路径>--/
    <转义后的会话 ID>/          # 该会话独占,整个目录被删除
      session.v4.jsonl.zstd

插件使用与后端相同的 id 路径转义(单射),在每个项目目录下探测该目录,因此不依赖会话启动时的工作目录是否仍然存在。


诊断接口

只读、同源:

GET /plugin/dsh-remove-session/inspect?sessionId=<会话ID>

返回该会话是否 live、磁盘目录、是否置顶/归档、归属的 Workspace。用于排查“为什么删不掉”。


验证

Host 接口的真实输出(路径与 ID 已脱敏):

{
  "ok": true,
  "version": "0.1.1",
  "root": "C:\\Users\\<user>\\.dsh\\sessions",
  "liveSessionIds": ["session-<id>"],
  "session": {
    "id": "session-<id>",
    "live": true,
    "directories": ["C:\\Users\\<user>\\.dsh\\sessions\\--C-0101-developer-project-DSH--\\session-<id>"],
    "archived": false,
    "pinned": false,
    "workspaces": ["<workspace-id>"]
  }
}

已实测:

  • 不存在的会话 → { "ok": true }(幂等,便于重试);
  • 正在运行的会话 → { "ok": false, "error": { "code": "session-running" } },且会话目录保持完好;
  • 跨源请求 → 403;非 POST → 405;
  • 临时目录单测:只删除目标会话目录,兄弟会话目录保留。

已知限制

  • 不级联删除子会话:subagent 会话仍保留在磁盘上(它们默认不出现在侧栏)。
  • 投影缓存可能残留:$DSH_HOME/storages 中该会话的检查点文档不会被清理;它按会话 id 读取,删除后不会被展示,也不会让会话“复活”。
  • 替换图标需要同步:icon.svg 是插件卡片图标;菜单行使用由它生成的 client.js 内嵌副本,修改图标后需运行 npm run sync-icon,否则菜单行仍是旧图标。
  • 空白新会话不能删:尚未落盘、仅存在于内存的“新会话”没有文件可删,插件会拒绝而不是假装成功。
  • 极端情况下的重影:如果会话仍被后台标签页持有,删除后本页刷新前它可能仍出现在内存中的列表里;重新加载页面即彻底消失。
  • 删除不可恢复:没有回收站。

卸载

在 DSH 的插件管理里停用或移除本 bundle 即可。卸载只移除入口,不会恢复已删除的会话。


开发

# 语法与模块检查
node --check index.js
node --check client.js
node --check host/session-files.js
node --input-type=module -e "const m = await import('./index.js'); console.log(typeof m.apply)"

# 替换 icon.svg 后,把图标同步到客户端菜单行
npm run sync-icon

# 本地安装(把路径换成你的仓库目录)
dsh plugin --profile web add C:/path/to/dsh-remove-session

目录:

index.js                 Host 半边:HTTP 接口、删除编排、Workspace 清理
host/session-files.js    会话目录定位、ID 转义、递归删除
client.js                Client 半边:菜单行、确认弹窗、列表更新
scripts/sync-icon.mjs    把 icon.svg 同步成 client.js 里的内嵌图标
cordis.patch.yml         bundle 配置层
locale/{zh,en}.json      Plugin Manager 元数据与文案
icon.svg                 插件图标

需要 Node 22.15+ 或 24+;无第三方运行时依赖。


收录徽章

插件被 dsh-plugin.org 收录后,可把下面的徽章放到 README 顶部(若详情页 slug 不同,替换链接中的 NN-0101/dsh-remove-session):

[![Listed on dsh-plugin.org](https://dsh-plugin.org/badges/listed.svg)](https://dsh-plugin.org/plugins/NN-0101/dsh-remove-session)

License

MIT © 2026 0101


English

dsh-remove-session adds a red Delete session action to every Session's “...” menu in the DeepSeek Harness Web UI. After a second confirmation, it permanently removes the Session's JSONL log directory under $DSH_HOME/sessions, plus its Workspace membership, pin and archive entries; the sidebar row disappears immediately.

Install (source):

dsh plugin --profile web add github:NN-0101/dsh-remove-session

Replace web with your profile name (for example desktop), then refresh the page. The package is not published to npm yet, so it will not appear in the in-app Plugin Center until it is.

Safety: running sessions, sessions with active subagents/jobs/reminders, and unsaved blank sessions are refused. Only the session's own directory is removed; attachments and other sessions are untouched. Deletion is permanent — use Archive if you may need the conversation later.

Requires DSH 0.2.x (tested on 0.2.1-rc.2) with the Web UI; Node ^22.15.0 || >=24.0.0. MIT licensed.