dsh-delete-message
DeepSeek Harness 消息级删除:每条消息复制按钮旁增加垃圾桶图标,经官方 surface-replace 契约将消息从模型上下文与可见转录中移除
viplocco
@viplocco
⬇ 2
★ 2
main
安装
dsh plugin --profile web add github:viplocco/dsh-delete-message
需要可复现安装时,可在仓库后追加 #commit 固定提交。
DeepSeek Harness 消息级删除:每条消息复制按钮旁增加垃圾桶图标,经官方 surface-replace 契约将消息从模型上下文与可见转录中移除
该插件未提供要点说明,请参考仓库 README。
dsh-plugindsh-plugin-desktopdsh-plugin-marketdsh-pluginsdeepseek-harnessdsh
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/viplocco/dsh-delete-message |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 2 |
| GitHub 星标 | 2 |
| 最近推送 | 2026-08-25 |
| 收录日期 | 2026-09-19 |
| 分类 | 会话与消息 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-delete-message
简体中文 | [English](./README.en.md)
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/](docs/screenshots/),各图内容与拍摄要求见该目录说明。
## 安全边界
- 服务端删除前重跑完整校验:仅接受已闭合回合中的 `user/message` 与 `assistant/message` 表面节点(真实用户输入只做单节点替换;助手消息、机器注入行与非表面 chrome 锚点如 tool/call、llm/retry 按用户输入窗口整单元计划);携带工具调用的消息不可单独删除、已被遮蔽的消息与进行中的回合一律拒绝,并返回机器原因码(UI 本地化展示)。
- HTTP 写路径双条件屏障:仅接受回环地址且 Host 为本机。
- 插件零配置、零运行时依赖;不删除文件、不改写日志。
## 安装(web profile)
```sh
dsh plugin --profile web add github:viplocco/dsh-delete-message#v0.2.1
```
安装后需**完全重启 DSH Web 进程**(宿主侧插件树仅在启动时读取);客户端 bundle 由宿主按请求动态 serve,更新后硬刷新即生效。
## 开发
```sh
pnpm test # node --test
```
架构、宿主契约与设计取舍详见 [docs/DESIGN.md](docs/DESIGN.md)。联系方式:viplocco@qq.com
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。