- Início
- Plugins
- Sessões e mensagens
- dsh-delete-message
dsh-delete-message
viplocco/dsh-delete-message
Exclusão por mensagem para DeepSeek Harness — um ícone de lixeira ao lado do botão de copiar em cada mensagem do chat que remove essa mensagem do contexto do modelo derivado (e da transcrição visível) via contrato oficial surface-replace.
Instalar
dsh plugin --profile web add github:viplocco/dsh-delete-messageREADME
dsh-delete-message
简体中文 | English
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.1
安装后需完全重启 DSH Web 进程(宿主侧插件树仅在启动时读取);客户端 bundle 由宿主按请求动态 serve,更新后硬刷新即生效。
开发
pnpm test # node --test
架构、宿主契约与设计取舍详见 docs/DESIGN.md。联系方式:viplocco@qq.com
License
MIT
Plugins relacionados
dsh-web-ui (dsh-chat-recovery)
zhu1090093659/dsh-web-ui
dsh-synapse
liangmianya/dsh-synapse
billion-context
ranxianglei/billion-context
dsh-chat-import
nwflower/dsh-chat-import