在侧栏菜单里一键永久删除指定会话记录
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jingkun05/dsh-session-delete-native该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · jingkun05
- · dsh-session-delete-native
- · tarball)
扫描于 2026/11/4(0 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 侧栏菜单删除会话
- 永久删除指定会话
- 纯UI无智能体工具
DeepSeek Harness 侧边栏会话删除——会话「…」菜单里原生「删除会话」一行。纯 UI,不注册任何智能体工具。
README
由 DeepSeek 最新模型翻译生成dsh-session-delete-native
给 DeepSeek Harness 侧栏补上会话删除——每个会话的 … 菜单里多一行原生 Delete session,确认后永久删除该会话的本地记录。不注册任何智能体工具。
给 DSH(DeepSeek Harness)侧栏补上官方缺失的会话删除:在每个会话行的 … 菜单里用官方 Slot 原生多出一行「删除会话」,确认后从磁盘永久删除该会话的全部本地记录。
本包不注册任何 agent 工具:删除只能由界面点击触发。
与「克隆 DOM 注入菜单」做法的区别
本包占用官方 Slot sidebar.workspaces.session.menu.item(list / root scope / replaceRisk: none),由 ui-workspace 自己把这一行渲染进菜单:
- 菜单的键盘走查、复制、焦点归还由菜单本身负责,不依赖 DOM 结构猜测;
- DSH 升级侧栏结构时不会静默失效(Slot 消失会明确报错,而不是悄悄不注入);
- 菜单行复用宿主组件 MenuItemButton;确认框用宿主 Modal(红色确认按钮 + 必须先勾选的不可恢复确认),外观/深浅色/焦点行为与内置的 pin/rename/fork/archive 一致。
展开完整文档(README 剩余 1 节)
dsh-session-delete-native
给 DeepSeek Harness 侧栏补上会话删除——每个会话的 … 菜单里多一行原生 Delete session,确认后永久删除该会话的本地记录。不注册任何智能体工具。
给 DSH(DeepSeek Harness)侧栏补上官方缺失的会话删除:在每个会话行的 … 菜单里用官方 Slot 原生多出一行「删除会话」,确认后从磁盘永久删除该会话的全部本地记录。
本包不注册任何 agent 工具:删除只能由界面点击触发。
与「克隆 DOM 注入菜单」做法的区别
本包占用官方 Slot sidebar.workspaces.session.menu.item(list / root scope / replaceRisk: none),由 ui-workspace 自己把这一行渲染进菜单:
- 菜单的键盘走查、复制、焦点归还由菜单本身负责,不依赖 DOM 结构猜测;
- DSH 升级侧栏结构时不会静默失效(Slot 消失会明确报错,而不是悄悄不注入);
- 菜单行复用宿主组件 MenuItemButton;确认框用宿主 Modal(红色确认按钮 + 必须先勾选的不可恢复确认),外观/深浅色/焦点行为与内置的 pin/rename/fork/archive 一致。
若你已安装 npm 上的 dsh-session-delete(DOM 注入版),两者只能启用一个:它不依赖 Slot,会与本包在同一个 … 菜单里出现两个「删除会话」。
功能
| 入口 | 菜单项 | 行为 |
| 会话行 … 菜单 | 删除会话 | 永久删除该会话的日志目录 ~/.dsh/sessions/<项目目录>/<会话 id>/,不可恢复 |
位置:order: 500,排在 archive(400) 之后,并带一条分组细线(separatorBefore)。
安全设计
准入判定以「是否有在跑的工作」为准,而不是「是否已载入内存(live)」—— 把会话打开看一眼会让它 live,但不会让它有在跑的回合,这种情况应当可以删除。
- 危险确认框:宿主 Modal + 警告图标 + 不可恢复说明 + 必须先勾选确认才能点主按钮;主按钮红色;Escape/取消/关闭都安全退出。
- 有在跑的工作就拒绝:删除前先取写租赁,再用归档准入用的同一个 workspace/session-activity waterfall 判定 turn / job / subagent / schedule 四族;非空返回 409 busy。这与「归档会话」用的是同一套「什么算在跑」标准。
- 写租赁是主闸门:ctx.sessionPersistence.open(id,'write') 只在没有其它写入者时成功 —— 有活 Agent 的会话因其自身持有写句柄而在此被拒(409 locked),其它进程的实例也由 Windows 文件锁/租赁挡住。
- 已打开但空闲的会话可以删:它不持有写句柄、也没有在跑的工作,因此正常通过上述两道闸门。
- 定位失败不猜测:无法唯一定位会话目录时返回 409 ambiguous 并不改动任何文件。
- 先文件、后簿记:删除成功后才做归档簿记;任何失败都返回结构化 code,不会留下「已隐藏但没删掉」的半状态。
- 同源且无 CORS:路由只在 Host 的 webServer 上注册精确路径,不设 CORS 头;跨源 JSON POST 需要预检,浏览器会在预检阶段拒绝。
删除后为什么侧栏立刻消失
Host 半删掉日志目录后,sessionController.list() → ctx.sessionQuery.listSessions() → SQLite _reconcile() 会用 sessionPersistence.list() 重扫,把消失的会话从索引里删掉;客户端再调 ctx.sessions.refresh()(remote.session.list)重新取基线,行就消失了。不需要手工清索引。
安装
把仓库 clone 到任意位置,然后把 clone 后的目录交给 dsh plugin add:
git clone https://github.com/jingkun05/dsh-session-delete-native.git
dsh plugin --profile <你的 profile 名> add ./dsh-session-delete-native
<你的 profile 名> 例如 web、desktop。安装会把本包加入该 profile 的 dsh.profile.bundles 层(包内 cordis.patch.yml 随该层生效,不要手动去改 profile 的 cordis.patch.yml),随后重启 DSH。
add 的参数必须是本机存在的路径(安装时会建立 link: 引用)。直接把仓库 URL 交给 add 不适用。
手动兜底(不使用 dsh plugin 时):把本目录 pnpm add 进 profile,然后在 profile 的 cordis.patch.yml 加入:
- insert:
- id: dsh-session-delete-native
name: dsh-session-delete-native
它对你的机器做了什么
删除是带外操作——DSH 官方没有会话删除 API(@deepseek-ai/dsh-session-persistence 明确写着 “No deletion or retention API”),所以本插件自己动文件系统。装之前请清楚这一点:
- 删除时递归移除 $DSH_HOME/sessions/<项目目录>/<会话 id>/ 整个目录(含全部世代日志文件)。这是唯一会被删除的东西。
- 不会删除:附件对象($DSH_HOME/attachments,内容寻址、可能与 fork 共享)、投影缓存($DSH_HOME/storages),以及工作区注册表里的顺序记录。搜索索引由 DSH 自己在下一次 reconcile 时收敛。
- 在 Host 上注册 3 条同源精确路由(/dsh-session-delete-native/{probe,delete,delete-many}),不设 CORS 头。仅由本插件的 Client 半调用。
- 不注册任何智能体工具:删除只能由界面点击触发。
兼容性
- 实测环境:DSH 0.2.0-rc.2 + Web 组合(@deepseek-ai/dsh-base + @deepseek-ai/dsh-web-app)。
- 依赖的 Host 服务:webServer、sessionPersistence、sessions、agents、workspaceRegistry。缺少任何一个该插件不会激活(在 inject 里声明)。
- 依赖的客户端能力:官方 Slot sidebar.workspaces.session.menu.item、shell.overlay,以及 Module Loader 的 baseline external @deepseek-ai/dsh-client-ui-primitives(Modal / Button / MenuItemButton 及图标)。
- 未声明 peerDependencies,因此不会因版本范围不匹配而被 DSH 拒绝加载;但也意味着 DSH 大版本升级后需要自行验证上述 Slot 与服务是否仍在。
配置
| 字段 | 默认 | 说明 |
| root | $DSH_HOME/sessions | 会话日志根目录。仅当你的组合把 dsh-session-persistence-jsonl 的 root 配到了非默认位置时才需要设置。 |
已知限制
- 有在跑的工作的会话不能删:正在跑回合、等待审批/回答、有在跑的子代理/后台任务/定时提醒的会话会被拒绝(409 busy 或 409 locked)。先停止它再删。已打开但空闲的会话可以删。
- 不清理派生数据:附件对象(内容寻址、可能与 fork 共享)与投影缓存(~/.dsh/storages/...)保持原样;后者的孤儿条目无害,会在将来重写时消失。
- 不提供回收站:删除不可恢复。
- 未做视觉自动化验证(无浏览器控制能力),请在页面上实测一次外观。
给 DSH 侧边栏补上缺失的会话删除功能:通过官方 sidebar.workspaces.session.menu.item slot,在每个会话的 … 菜单里放一行 Delete session,确认后从磁盘上永久删除该会话的本地记录。
本包不注册任何智能体工具:删除只能从界面触发。
为什么不用 DOM 注入
本包占用官方 slot,所以 ui-workspace 自己渲染这一行:菜单保留自己的键盘走查、复制与焦点返回,将来 DSH 版本重构侧边栏时会直接报错,而不是悄悄丢掉这个入口。这一行复用宿主提供的 MenuItemButton;对话框复用宿主提供的 Modal,带红色确认按钮和必勾的确认复选框。
如果你已经在用 npm 上的 dsh-session-delete(DOM 注入)包,两个只启用一个。
行为
- 入口:会话行 … 菜单 → Delete session(order: 500,排在 archive 之后,带 separatorBefore 分组细线)。
- 递归删除 ~/.dsh/sessions/<project>/<session-id>/。不可恢复。
安全
准入判断依据是有没有在跑的工作,而不是会话有没有加载进内存:打开会话看一眼会让它变成 live,但不会给它跑回合,这样的会话可以删。
两道闸门:宿主先取进程内单写者租约(sessionPersistence.open(id,'write'))——会话若已有活跃 Agent,会在这里被拒,因为那个 Agent 已经持有写句柄(409 locked),而 Windows 文件锁是跨进程的守卫——然后它去问 workspace/session-activity 瀑布流,和归档路径用的是同一个,只要有 turn / job / 子代理 / schedule 在跑,就以 409 busy 拒绝。会话目录无法解析时直接中止,不碰任何文件。先删文件,再跑记账,所以失败绝不会留下删了一半的状态。路由是精确匹配、同源,且不发任何 CORS 头。
安装
把仓库克隆到任意位置,然后把克隆出来的目录交给 dsh plugin add:
git clone https://github.com/jingkun05/dsh-session-delete-native.git
dsh plugin --profile <your-profile> add ./dsh-session-delete-native
这会把包加到该配置档的 dsh.profile.bundles 层(它的 cordis.patch.yml 随后作为该层生效——不要手动编辑配置档补丁)。之后重启 DSH。add 的参数必须是你机器上真实存在的路径;把仓库 URL 传给 add 不管用。
它对你的机器做了什么
删除是带外的:DSH 没有提供会话删除 API(@deepseek-ai/dsh-session-persistence 写着「No deletion or retention API」),所以这个插件自己动手碰文件系统。
- 它递归删除 $DSH_HOME/sessions/<project>/<session-id>/(所有格式世代)。这是它唯一删除的东西。
- 它不删除附件对象($DSH_HOME/attachments,内容寻址,可能和 fork 共享)、投影缓存($DSH_HOME/storages),也不动工作区注册表的排序。搜索索引会在 DSH 下次 reconcile 时收敛。
- 它在 Host 上注册三条同源精确路由(/dsh-session-delete-native/{probe,delete,delete-many}),不带 CORS 头,只由本包的客户端半边调用。
- 它不注册任何智能体工具:删除只能从 UI 触发。
兼容性
- 已在 DSH 0.2.0-rc.2 上验证,使用 Web 组合(@deepseek-ai/dsh-base + @deepseek-ai/dsh-web-app)。
- 需要的 Host 服务:webServer、sessionPersistence、sessions、agents、workspaceRegistry(在 inject 中声明;缺了它们插件保持不激活)。
- 需要的客户端能力:官方 sidebar.workspaces.session.menu.item 和 shell.overlay 插槽,以及 Module Loader 基线外部依赖 @deepseek-ai/dsh-client-ui-primitives(Modal / Button / MenuItemButton 和图标)。
- 没有声明 peerDependencies,所以版本不匹配时 DSH 不会拒绝加载它——这也意味着 DSH 大版本升级后需要手动检查上述插槽和服务是否还在。
不是官方包
这是社区插件,不属于 DeepSeek Harness。配置字段和已知限制见中文部分。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
jingkun05/dsh-session-delete-native
在侧栏菜单里一键永久删除指定会话记录
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目