dsh-plugin-session-delete

DSH PLUGIN会话与消息

仓库 hitzhangjie/dsh-plugin-session-delete

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-plugin-session-delete 是 hitzhangjie 维护的 会话与消息 类 DSH 可安装插件, 仓库为 hitzhangjie/dsh-plugin-session-delete,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-plugin-session-delete 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-16 创建于 2026-10-16
README 7.3 KB 正文体量,越大说明说明书写得越细

安装

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

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

  2. 2
    执行安装命令

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

  3. 3
    确认已挂载

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

  4. 4
    试跑并检查权限

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

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

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

存储

上游标签

cordisdeepseek-harnessdshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

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

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-plugin-session-delete当前 L5 · 运行验证通过 低风险 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 未标注 无

仓库档案

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

README 全文

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

@hitzhangjie/dsh-plugin-session-delete

DeepSeek Harness 只提供「归档」:归档的会话永远留在磁盘上。这个插件补上缺失的那一步——真正彻底删除一个会话,入口在侧栏会话行的 ... 菜单里。

一个 DSH bundle(声明了 dsh.bundle.patch),所以 dsh plugin --profile add 安装后会被自动选入 profile 层,不需要手写 cordis.patch.yml 行。


功能

  • 侧栏会话菜单项:sidebar.workspaces.session.menu.item 槽位里的红色「删除会话…」,和内置的 置顶 / 重命名 / Fork / 归档 用同一套 MenuItemButton 呈现。
  • 两步确认:第一次点击把标签变成「确认永久删除「<标题>」?」,5 秒不确认自动复位;第二次点击才真正删除。悬停的提示文字也说明了后果。
  • 先停活:删除前通过归档的 stopActivity 瀑布停止运行中的工作(durable archive 集合会挡住这些停止所引发的任何唤醒),再等会话落盘安静后继续。
  • 拒绝仍有 fork 子会话的会话:子会话的 header 里记着父 id,删掉父会话会让这条血缘悬空,所以直接拒绝并把子会话 id 返回给界面。
  • 本地零残留,按顺序清理:
    1. 事件日志目录 ///(先按 header 的 cwd 精确算路径,再扫描 session root 兜底)
    2. 投影缓存 /storages/session_projcache/sessions/.json
    3. 会话的 spill 目录 /dsh-spill-*/session-/
    4. 工作区记账 Workspace.detachSession(id)
    5. 归档 / 置顶集合中的该 id
    6. 活的 store 条目(如果 store 暴露了 detach)
  • 立即从侧栏消失:删除成功后宿主发出 api-session/removed,同时浏览器半区调用客户端 sessions.refresh() 重新拉取权威列表——冷会话(本次进程没打开过)不会发出任何 disposal 帧,只有重新拉取才能让它的行消失。
  • 写者占用时不留半成品:文件仍被活的写句柄占住时,id 会记入 /plugins/session-delete.pending.json,下次启动(此时所有会话都是冷的)自动补删。

安装

# 1) 检出
git clone https://github.com/hitzhangjie/dsh-plugin-session-delete.git

# 2) 装进你使用的 profile(桌面版 Harness 固定使用保留 profile desktop)
dsh plugin --profile desktop add &quot;file:&lt;仓库所在路径&gt;/dsh-plugin-session-delete&quot;

dsh plugin 用的是桌面安装自带的那套运行时,它有权管理 desktop profile;npm 全局安装的 CLI 会拒绝针对 desktop 的启动与管理请求。

然后完全退出并重启 Harness。Bundle 的 patch 会把行插进 profile 树:

- insert:
- id: hitzhangjie-session-delete
name: &#x27;@hitzhangjie/dsh-plugin-session-delete&#x27;

> 行名必须是裸包名:dsh-client-modules 只把包的浏览器半区挂到「模块说明符正好是裸包名」的 Loader 行上,而 profile 解析层负责把裸包名解析到 profile 自己的 node_modules。写成相对路径(./lib/index.js)只会加载宿主半区,菜单项不会出现。

架构

半边 文件 作用
Host lib/index.js 注册 loopback 精确路由 POST /api/hitzhangjie/session-delete,校验请求来源后执行整套删除。profile 插件没有 harness.handle / host.call 通道,所以浏览器半区用同源 fetch 调这个路由。
Client lib/client.js 通过 window.__ModuleLoader__.load({ id, factory }) 注册工厂(bundle id 必须等于包名),往 sidebar.workspaces.session.menu.item 注册菜单项,渲染两步确认,调用宿主路由并刷新会话列表。

请求防护:精确路由在 webServer.match() 里优先于应用自己的 /api 前缀路由,因此这个 handler 自带守门——Sec-Fetch-Site 为 cross-site / same-site 一律拒绝;带 Origin 时必须是 loopback 主机且端口等于本进程 webServer.port;没有 Origin 与 Sec-Fetch-Site 的本机进程被接受(web server 只监听 loopback)。会话 id 另有一层严格字符白名单。

删除失败而非静默:not-found(会话不存在)、has-children(有子会话)、list-failed(读不到会话列表,失败关闭而不是假定没有子会话)、invalid-id、forbidden 都会以 409/403 返回结构化原因,界面直接显示。

开发

# 宿主半区冒烟测试:stub ctx + 临时 DSH_HOME,不碰真实会话
node test/host-smoke.mjs
  • 宿主半区改动需要重启 Harness;浏览器半区改动 dsh-client-modules 按文件修订号重新服务,刷新页面即可。
  • 浏览器半区是纯 JavaScript(无 JSX),只能 require 平台基线模块:react、@deepseek-ai/dsh-client-ui-primitives(Module Loader 包的隐式 external)。

已知边界

  • 已经上报的遥测无法撤回,本插件只清理本地状态。
  • 别的会话正文里提到该会话的文字属于别的会话,不动。
  • 删掉父会话被拒绝,所以子会话 header 里的 parentSession 不会悬空;反过来,子会话被删掉后,父会话的分支记录仍保留。
  • 正好处于「活的写句柄仍占文件」的极端时序下会走 deferred 路径:文件在下次启动时补删。
  • 投影缓存路径假定默认 storage 根(/storages);profile 把 storage 根搬到别处时,这一个缓存文件会留下(会话已经没了,没有读者)。

@hitzhangjie/dsh-plugin-session-delete (English)

DeepSeek Harness ships archive only: an archived session stays on disk forever. This plugin adds the missing operation — a real, irreversible session delete — behind one entry in the sidebar session-row ... menu.

It is a DSH bundle (it declares dsh.bundle.patch), so installing it with dsh plugin --profile add selects it as a profile layer automatically; no hand-written cordis.patch.yml row is needed.

Features. A red Delete session… row registered into sidebar.workspaces.session.menu.item with the same MenuItemButton presentation the built-in actions use; a two-step inline confirmation that disarms itself after five seconds; running work stopped first through the archive stopActivity waterfall; sessions with forked children refused (their child headers name the parent); and local state removed with no residue — event-log directory, projection-cache entry, spill directories, workspace accounting, archive/pin membership, and the live store entry when the store exposes one. A file still held by a live writer is journaled to /plugins/session-delete.pending.json and reaped on the next start.

Install, restart, done. The row name must be the bare package name: dsh-client-modules attaches a package's browser half only to the Loader row whose specifier is exactly the bare package name, and profile resolution maps that name into the profile's own node_modules.

Guards. The exact route wins over the app's /api prefix route, so it guards itself: cross-site / same-site Sec-Fetch-Site is refused, a present Origin must be loopback on this process's webServer.port, and session ids must match a strict character whitelist. Refusals come back as structured JSON (not-found, has-children, list-failed, invalid-id, forbidden) and are shown in the menu.

Verify without a harness: node test/host-smoke.mjs runs the host half against a stub context and a temporary DSH_HOME.

License

MIT

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add github:hitzhangjie/dsh-plugin-session-delete#v0.1.0` 即可。

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

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-plugin-session-delete 安全吗?

低风险。

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

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

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

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

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 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 星

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