hg1048596-pixel/dsh-recall-unread

hg1048596-pixel★ 33JavaScript最后同步: 2026-08-19

在 GitHub 打开

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.

README 摘要

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。插件启用后「未读消息」条带即生效;可在插件市场(ds…

在 GitHub 查看完整 README →
工具/开发dsh-plugindsh-plugin-marketdsh-pluginsagent

分类