🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

消息删除 viplocco/dsh-delete-message

DeepSeek Harnessv0.2.2
viplocco56 天前有提交已提供中文文档扫描:未发现敏感能力

按条删除误发消息,清理模型上下文污染

31.1/100
综合分
3
GitHub 星标
88
npm 周下载
—/5
用户评分

数据截至 2026/9/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-delete-message
npm 源 · dsh-delete-message 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/24·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 56 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-delete-message @ 0.2.2
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 04:19:23

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    src/client.js:370
    const response = await fetch(url, { headers: { accept: "application/json" } });
  • 发起网络请求
    src/client.js:378
    const response = await fetch(DELETE_PATH, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 按条删除消息
  • 清理上下文污染

DeepSeek Harness 消息级删除插件,用于避免用户误发或错误的助手消息污染会话上下文。

README

由 DeepSeek 最新模型翻译生成
dsh-delete-message DeepSeek Harness 消息级删除插件,用于避免用户误发或错误的消息污染模型上下文。在每条消息的操作区提供删除按钮:确认后,该消息经由宿主官方 surface-replace 契约从模型上下文移除(助手回复连同其思考、工具调用与注入上下文一并删除),并从可见转录中隐藏。原始日志字节不做任何改写,随时可恢复。 功能 - 全消息类型 — 助手回复挂载于官方 conversation.chat.assistant-actions 槽位;用户输入、机器注入的上下文行、工具调用卡片、思考(Think)卡片、模型重试提示与回合错误横幅经 DOM 增强(宿主无对应侧操作条扩展点)。chrome 行(非用户/助手操作条)的删除按钮默认隐藏、悬停该消息时显示并允许点击。 - 原生视觉一致 — 复用宿主图标与按钮几何、primitives Tooltip 及 Modal+Button 确认弹窗,明暗主题自动适配。 - 上下文级删除 — 确认后追加 surfaceOp: { op: 'replace' } 占位节点(与宿主 /compact 同一机制),被遮蔽的消息不再进入 deriveMessages()。
展开完整文档(README 剩余 1 节)
dsh-delete-message

DeepSeek Harness 消息级删除插件,用于避免用户误发或错误的消息污染模型上下文。在每条消息的操作区提供删除按钮:确认后,该消息经由宿主官方 surface-replace 契约从模型上下文移除(助手回复连同其思考、工具调用与注入上下文一并删除),并从可见转录中隐藏。原始日志字节不做任何改写,随时可恢复。

功能

- 全消息类型 — 助手回复挂载于官方 conversation.chat.assistant-actions 槽位;用户输入、机器注入的上下文行、工具调用卡片、思考(Think)卡片、模型重试提示与回合错误横幅经 DOM 增强(宿主无对应侧操作条扩展点)。chrome 行(非用户/助手操作条)的删除按钮默认隐藏、悬停该消息时显示并允许点击。
- 原生视觉一致 — 复用宿主图标与按钮几何、primitives Tooltip 及 Modal+Button 确认弹窗,明暗主题自动适配。
- 上下文级删除 — 确认后追加 surfaceOp: { op: 'replace' } 占位节点(与宿主 /compact 同一机制),被遮蔽的消息不再进入 deriveMessages()。
- 转录级隐藏 — 宿主可见转录按设计只增不减,因此插件在浏览器端维护每会话已删 seq 台账(localStorage 持久化),解析行包装器的 React fiber 身份隐藏命中行;加载时经 /status 预检治愈本浏览器未知的历史已删行。
- 失败回合可清理 — 请求失败或中断的回合(如模型 502 重试耗尽)往往没有助手消息,删除按钮无处安放、注入上下文永久滞留;点击任一“上下文注入”行、工具调用卡片或重试提示行的垃圾桶,即按用户输入窗口整单元替换(注入行、回复、工具调用、重试记录一并清除,真实用户输入永不受影响)。
- 步骤级删除 — 多步回合中,点击 Think 卡或工具调用卡的垃圾桶只删除该步骤的回复与工具调用(assistant/message + 配对的 tool/result),同窗口内其他步骤原样保留;弹窗标题与 tooltip 明确标注范围("删除这一步" vs "删除整个回复尝试")。
- 角色化确认弹窗 — 确认文案由挂载点的静态消息角色自动选定,无需用户判断:用户消息陈述单条删除范围;助手回复明确连同思考、工具调用与注入上下文一并移除;注入行陈述整单元清理范围。
- 删除前预检与置灰 — 悬停/点击时经 TTL 缓存的 /status 预检:不可删的目标图标置灰并直接给出本地化原因,不做注定失败的请求;已被删除的行静默治愈隐藏;预检不可达时保持中性可点击(服务端始终权威)。
- 删除过渡反馈 — 确认后弹窗进入"删除中…"pending 态(spinner、抑制重复点击与取消),失败原因内联显示并可原地重试;成功后受影响行以高度塌缩级联动画优雅退场(遵循系统 reduced-motion 设置)。
- 中英双语界面 — 全部 UI 文案(确认弹窗、失败原因、无障碍标签等)内置 zh/en 双语,跟随系统设置中的语言选择即时切换;未设置时按浏览器语言自动判定。

行为变化

点击不同位置的垃圾桶,删除范围、弹窗标题和 Tooltip 提示各不相同:

| 点击目标 | 删除范围 | 弹窗标题 | Tooltip |
| Think 卡 🗑️ | 仅该步骤 | 删除这一步? | 删除这一步 |
| 工具调用卡 🗑️ | 仅该步骤(所属 assistant/msg + tool/results) | 删除这一步? | 删除这一步 |
| 注入上下文行 🗑️ | 整窗口 | 删除整个回复尝试? | 删除整个回复尝试 |
| 重试行 / 错误横幅 🗑️ | 整窗口 | 删除整个回复尝试? | 删除整个回复尝试 |
| 用户消息 🗑️ | 仅该消息本身 | 删除这条消息? | 删除 |
| 助手槽位(复制按钮右侧)🗑️ | 整窗口(回复 + 思考 + 工具调用 + 注入上下文) | 删除这条消息? | 删除 |

步骤级删除适用于多步回合:只移除目标步骤的 assistant/message 及配对的 tool/result,同窗口内其他步骤原样保留。整窗口清理适用于失败/中断回合的一次性清扫。

界面截图

消息操作区的删除按钮

删除确认弹窗

删除后消息从会话中消失

截图文件存放于 docs/screenshots/,各图内容与拍摄要求见该目录说明。

安全边界

- 服务端删除前重跑完整校验:仅接受已闭合回合中的 user/message 与 assistant/message 表面节点(真实用户输入只做单节点替换;助手消息、机器注入行与非表面 chrome 锚点如 tool/call、llm/retry 按用户输入窗口整单元计划);携带工具调用的消息不可单独删除、已被遮蔽的消息与进行中的回合一律拒绝,并返回机器原因码(UI 本地化展示)。
- HTTP 写路径双条件屏障:仅接受回环地址且 Host 为本机。
- 插件零配置、零运行时依赖;不删除文件、不改写日志。

安装(web profile)

dsh plugin --profile web add github:viplocco/dsh-delete-message#v0.2.3

安装后需完全重启 DSH Web 进程(宿主侧插件树仅在启动时读取);客户端 bundle 由宿主按请求动态 serve,更新后硬刷新即生效。

安装(desktop profile)

DSH Desktop 外壳渲染的是同一套 web 前端(@deepseek-ai/dsh-web-app 组合 + 同一 WebServer 源),因此本插件天然兼容桌面端——唯一要求是把它装进桌面所属的 profile 并重启 DSH Desktop:

桌面端使用独立的 desktop profile,需单独安装
dsh plugin --profile desktop add github:viplocco/dsh-delete-message#v0.2.3
或从本地工作区:dsh plugin --profile desktop add link:E:/project/DSH/Delete-message 安装后完全重启 DSH Desktop,并在浏览器/渲染器硬刷新。核实是否生效:

dsh --profile desktop --dump-config # 应出现 "# == dsh-delete-message" 段落
渲染器打开开发者工具,控制台应出现 "[delete-message] bundle script executing"

为何之前“web 能用、桌面不能用”:插件 host 半边曾读 session.events,被当前 harness(dsh-session ≥ 0.1.2-rc.1,DSH Desktop 打包)改名成 session.snapshotEvents(),导致桌面端 /status 抛 Cannot read properties of undefined (reading 'find')。v0.2.2 已改经 eventsOf() 兼容两代会话形状(优先 snapshotEvents()、容忍旧 .events、其余返回 not-found 而非崩溃)。

开发

pnpm test # node --test

升级验证(DSH 核心升级后必跑)

插件依赖三处宿主私有耦合——React fiber 内省(__reactFiber$)、CSS-modules 哈希类名(_actions 令牌)、以及 data-chat-flow-key/data-context-source 等 data- DOM 钩子。这些耦合在宿主升级后静默断裂(图标/按钮不挂载,不报错),所以每次升级 DSH 核心后须跑一键回归:

前置:已完成核心升级并重启 dsh web(见 docs/DESIGN.md § 升级流程)
node scripts/run-upgrade-check.mjs # 全量:健康检查 + smoke + 三个深探针
node scripts/run-upgrade-check.mjs --only-smoke # 仅 Node 冒烟(不启动浏览器)
node scripts/run-upgrade-check.mjs --probe preflight # 单跑某个探针

脚本为每个探针启动一次性无头 Edge(独立 CDP 端口 + 独立临时 profile),结束后自动回收,遇已知的无头 Edge 导航崩溃会自动重试一次。环境变量覆盖:DSH_EDGE(Edge 可执行路径)、DSH_PROBE_GUI(默认 http://127.0.0.1:3080/)、DSH_PROBE_PROJECT / DSH_PROBE_SESSION(测试会话定位)、DSH_KEEP_EDGE=1(保留 Edge 便于调试)。

探针清单(tmp-probe/):

| 探针 | 作用 |
| verify-upgrade.mjs | P1 脆弱耦合健康检查:fiber 解析、_actions 哈希类名、data-* 锚点、助手槽位挂载(只读非破坏) |
| verify-preflight.mjs | 预检判定缓存 + 图标置灰(fetch 垫片,零真实 POST) |
| verify-transition.mjs | pending 态、弹窗退场、行退场动画、内联失败重试 |
| verify-dedup.mjs | 台账清扫每快照去重门 |
| scripts/smoke-render.mjs | Node 冒烟:bundle 加载、槽位注册、seq 解析、判定缓存/过渡契约 |

架构、宿主契约与设计取舍详见 docs/DESIGN.md。联系方式:viplocco@qq.com

License

MIT
预览分享卡片长什么样 ↓viplocco/dsh-delete-message
分享 · DeepSeek Harness Hub
viplocco/dsh-delete-message

按条删除误发消息,清理模型上下文污染

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部