◒ DeepSeek Agent
插件市场›其他插件›dsh-recall-unread
DEEPSEEK HARNESS PLUGIN

dsh-recall-unread

DeepSeek Harness (DSH) 插件:在模型读取前撤回已发送的文字消息,支持单条与全部撤回。A DeepSeek Harness plugin that recalls sent-but-unread text messages before the model reads them — one-by-one or all at once.

插件介绍

DeepSeek Harness (DSH) 插件:在模型读取前撤回已发送的文字消息,支持单条与全部撤回。A DeepSeek Harness plugin that recalls sent-but-unread text messages before the model reads them — one-by-one or all at once.

dsh-plugindsh-plugin-marketdsh-plugins

项目详情摘要

dsh-recall-unread DeepSeek Harness (DSH) 插件:撤回「已发送但尚未被模型读取」的文字消息。 在模型运行中发送文字(插话发送)时,消息会以“待处理”气泡的形式出现在对话尾部——在模型认领(读取)之前,你可以一键撤回,避免把还没想好的话发给模型。 截图占位:可将实际效果截图保存为 `docs/screenshot.png`,并取消上方 `![screenshot]` 的注释。 ✨ 功能特性 **启用即生效**:在插件市场(dsh-market)或插件管理页启用本插件后,「未读消息」条带立即生效;停用即整体不加载。不依赖任何启动器菜单。 **未读消息条带**:在输入框上方(`conversation.input.dock` 插槽)列出所有已发送但模型尚未读取的插话消息(0.2.x 取 `inbox['next-step']` 的用户插话,0.1.x 取 `placement === 'steering'`)。 **单条撤回**:每条消息显示预览文本 + 「撤回」按钮,点击后消息从对话中移除,并提示“已撤回一条消息”。 **全部撤回**:存在多条未读消息时提供「全部撤回」一键操作。 **只读语义**:消息一旦被模型认领(开始读取)会自动离开条带,此时无法撤回——严格符合“仅未读取可撤回”。 **优雅降级**:撤回失败(消息已开始发送)时给出明确提示,不会破坏会话。 🔍 工作原理 DSH 中“已发送但未读取”的消息 = 仍停留在 Agent **inbox**(待处理队列)中的消息:0.2.x 是 `inbox['next-turn']` / `inbox['next-step']` 里的 pending 项,0.1.x 是会话快照 `ConversationSnapshot.queue`。它有两种 placement: placement | 含义 | 官方界面现状 | --- | --- | --- | `queued` | 运行中排队等待下一轮 | 官方队列坞已有「删除」按钮 | `steering` | 运行中插话发送,显示为对话尾部待处理气泡 | **没有任何撤回入口** ← 本插件补上 | 撤回实现分两个版本: **静态版(推荐)**:Client 直接调用官方会话 RPC `session.updateQueue(itemId, { kind: 'remove' })`(与官方队列坞的「删除」同一实现)。 **动态版**:通过包内私有 RPC 完成: 🧩 运行时兼容(DSH 0.1.x / 0.2.x) 运行时 | 「未读插话」数据源 | 撤回调用 | --- | --- | --- | **0.2.x**(含 desktop profile) | `useProjection('inbox')['next-step']` 中 `source.kind === 'user'` 的行 | `sessions.binding(sessionId).session.updateQueue(id, { kind: 'remove' })`(失败码带命名空间:`session/queue-item-not-found`) | **0.1.x** | 会话快照 `session.queue` 中 `placement === 'steering'` 的行 | 同上(失败码 `queue-item-not-found`) | 0.2.x 的 `SessionSnapshot` 已移除 `queue` 字段,本地回显改到 `pendingSubmissions`;插话被接纳后进入 `inbox['next-step']`,在模型下一步读取前仍可撤回。 官方队列坞只覆盖 `next-turn`(排队消息,已有删除按钮),`next-step`(插话)这一格由本插件补齐。 Host 端逻辑与官方 `session.updateQueue` 中 `kind: 'remove'` 的内部实现一致(`agent.inbox.remove`)。 📁 目录结构 🚀 安装与激活 方式一:静态安装(推荐,随 DSH 加载,重启不丢失) 把 `plugin/` 目录安装为 DSH web profile 的静态插件: 1. 将

摘自项目公开 README,可能随上游仓库更新。

安装方法

建议先在测试 Profile 中安装,并检查权限、安装脚本和依赖。

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hg1048596-pixel/dsh-recall-unread

使用前检查

  • 确认项目符合 DSH bundle 规范,而不只是相关仓库。
  • 阅读许可证和安装脚本,检查网络、文件及执行权限。
  • 备份配置,并确保插件能够安全卸载或回滚。