插件介绍
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-recall-unread DeepSeek Harness (DSH) 插件:撤回「已发送但尚未被模型读取」的文字消息。 在模型运行中发送文字(插话发送)时,消息会以“待处理”气泡的形式出现在对话尾部——在模型认领(读取)之前,你可以一键撤回,避免把还没想好的话发给模型。 截图占位:可将实际效果截图保存为 `docs/screenshot.png`,并取消上方 `![screenshot]` 的注释。 ✨ 功能特性 **启用即生效**:在插件市场(dsh-market)或插件管理页启用本插件后,「未读消息」条带立即生效;停用即整体不加载。不依赖任何启动器菜单。 **未读消息条带**:在输入框上方(`conversation.input.dock` 插槽)列出所有已发送但模型尚未读取的插话消息(`placement: 'steering'`)。 **单条撤回**:每条消息显示预览文本 + 「撤回」按钮,点击后消息从对话中移除,并提示“已撤回一条消息”。 **全部撤回**:存在多条未读消息时提供「全部撤回」一键操作。 **只读语义**:消息一旦被模型认领(开始读取)会自动离开条带,此时无法撤回——严格符合“仅未读取可撤回”。 **优雅降级**:撤回失败(消息已开始发送)时给出明确提示,不会破坏会话。 🔍 工作原理 DSH 中“已发送但未读取”的消息 = 仍停留在 Agent **inbox**(待处理队列)中的消息,即 `ConversationSnapshot.queue` 快照里的 pending 项。它有两种 placement: placement | 含义 | 官方界面现状 | --- | --- | --- | `queued` | 运行中排队等待下一轮 | 官方队列坞已有「删除」按钮 | `steering` | 运行中插话发送,显示为对话尾部待处理气泡 | **没有任何撤回入口** ← 本插件补上 | 撤回实现分两个版本: **静态版(推荐)**:Client 直接调用官方会话 RPC `session.updateQueue(itemId, { kind: 'remove' })`(与官方队列坞的「删除」同一实现)。 **动态版**:通过包内私有 RPC 完成: Host 端逻辑与官方 `session.updateQueue` 中 `kind: 'remove'` 的内部实现一致(`agent.inbox.remove`)。 📁 目录结构 🚀 安装与激活 方式一:静态安装(推荐,随 DSH 加载,重启不丢失) 把 `plugin/` 目录安装为 DSH web profile 的静态插件: 1. 将 `plugin/` 整个目录复制到 web profile 的 node_modules 下: 2. 在 `~/.dsh/profiles/web/cordis.patch.yml` 末尾追加加载行: 3. 重启 DSH。插件启用后「未读消息」条带即生效;可在插件市场(dsh-market)或插件管理页随时停用/启用。 说明:静态版在 Client 端直接调用官方会话 RPC `session.updateQueue(itemId, { kind: 'remove' })`(与官方队列坞的「删除」同一实现),无需动态 RPC,与官方界面行为完全一致。插件不依赖 Amadeus。 方式二:动态插件(临时体验,重启后失效) 本项目也可作为 **DSH 动态 Cordis 插件**(进程级定义)临时体验: 1. 打开 DSH,在会话中进入 **Cordis 插件开发** 流程(`cordis_define`)。 2. 新建插件: `idPrefix`:`recall` `code.host`:粘贴 `src/host.js` 的完整内容 `code.client`:粘贴 `src/client.js` 的完整内容 `name`:`Recall Sent Unread Messages` `purpose`:一句话说明用途 3. 用返回的 `pluginId` / `packageId` 调用 `cordis_run` 激活,并在界面批准运行。 4. 激活后在模型运行中发送一条插话消息,即可在输入框上方看到「未读消息」条
摘自项目公开 README,可能随上游仓库更新。安装方法
建议先在测试 Profile 中安装,并检查权限、安装脚本和依赖。
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hg1048596-pixel/dsh-recall-unread
使用前检查
- 确认项目符合 DSH bundle 规范,而不只是相关仓库。
- 阅读许可证和安装脚本,检查网络、文件及执行权限。
- 备份配置,并确保插件能够安全卸载或回滚。