Back to directory

dsh-recall-unread

Curated pickMaintenance: Active

hg1048596-pixel/dsh-recall-unread

DSH 客户端 UI 插件:在输入框上方显示已发送但模型尚未读取(steering placement)的消息条带,支持单条/全部撤回,基于官方 session.updateQueue RPC 移除 inbox 消息,零配置启用即生效

View on GitHub
$ dsh plugin add dsh-recall-unread

84

stars

0

forks

JavaScript

Language

MIT

License

2026-08-17

Created

2026-08-19

Last push

A native DSH client UI plugin that recalls sent-but-unread interjected text messages (one-by-one or all at once) via the official session.updateQueue RPC, with zero configuration.

DSH integration

Native runtime

Author-claimed

Safety audit

Unaudited

Last verified

2026-08-29

License

MIT

01What can it help you accomplish?

  • Recall text you sent mid-run (an interjected 'steering' message) before the model reads it

    The targeted message is removed from the conversation (inbox / queue) with a '已撤回一条消息' confirm prompt — one message at a time or all at once

    DeepSeek Harness users who send interjected text during a run and want to cancel half-formed messages before the model claims them

  • See every sent-but-unread interjection in one place during a run

    An unread-message band above the input box listing all 'steering' placement messages not yet read by the model, with per-message preview text

    DSH operators who want a clear view of pending interjections they can still pull back

02How to install into DeepSeek Harness

Installation steps

  1. 01

    Enable the plugin in the DSH plugin marketplace (dsh-market) or the plugin management page — the unread-message band takes effect immediately and no launcher menu is involved.

Verify the integration

Not specified by the author

03DSH integration and capability boundaries

DSH integrationNative runtime

Native DSH client UI plugin — mounts an unread-message band in the `conversation.input.dock` slot and recalls messages via the official `session.updateQueue` RPC.

  • Unread-message band

    all sent-but-unread 'steering' placement messages in the active sessiona band above the input box listing each pending interjection with preview text

  • Recall a single message

    one unread 'steering' messagethe message is removed from the conversation and a '已撤回一条消息' prompt is shown

    removes the message from the Agent inbox / session queue snapshot
  • Recall all unread messages

    multiple unread 'steering' messagesall pending interjections removed at once via a single action

04Who is it for? When not to use it?

Good for

  • DeepSeek Harness users who send interjected text during a run and want to cancel half-formed messages before the model claims them
  • DSH operators who want a clear view of pending interjections they can still pull back

Not for

  • Only messages the model has not yet claimed (read) can be recalled. Once the model starts reading a message it automatically leaves the band and can no longer be recalled — strictly 'unread-only'.

05Compatibility, maintenance and safety notes

  • Only messages the model has not yet claimed (read) can be recalled. Once the model starts reading a message it automatically leaves the band and can no longer be recalled — strictly 'unread-only'.
  • Recall fails if the message has already started sending. The plugin shows a clear prompt on failure and degrades gracefully without breaking the session.
2026-08-172026-08-19Not specified by the author

MIT · no tagged release (latest_release: null); last push 2026-08-19

06Frequently asked questions

How do I install dsh-recall-unread?

Enable it in the DSH plugin marketplace (dsh-market) or the plugin management page. The unread-message band takes effect immediately and there is no launcher menu to configure.

Which messages can I recall?

Only messages the model has not yet read — the 'steering' placement interjections still sitting in the Agent inbox. Once the model claims (starts reading) a message it leaves the band and can no longer be recalled.

How does recall work internally?

The recommended static version calls the official session RPC `session.updateQueue(itemId, { kind: 'remove' })`, the same call the official queue dock uses for its delete button. A dynamic version uses an in-package private RPC that calls `agent.inbox.remove`.

What if a recall fails?

If the message has already started sending, recall fails; the plugin shows a clear prompt and degrades gracefully without breaking the session.

Does it need any configuration?

No. After enabling it in the plugin marketplace the band is active immediately; disabling unloads it entirely. It depends on no launcher menu.

08Data and sources

  • Author-claimedgithub.come9a22bad1f24…

    **未读消息条带**:在输入框上方(`conversation.input.dock` 插槽)列出所有已发送但模型尚未读取的插话消息(`placement: 'steering'`)。

  • Author-claimedgithub.come9a22bad1f24…

    **静态版(推荐)**:Client 直接调用官方会话 RPC `session.updateQueue(itemId, { kind: 'remove' })`(与官方队列坞的「删除」同一实现)。

This page is generated from the project’s public documentation, repository metadata and a structured parse of DSH Plugins; last verified on 2026-08-29. Found an error? Submit a correction.

🏆

Best DeepSeek Harness Plugins

Twelve plugins worth installing first — picked from the whole catalog, across every category.

DSH Plugins is an independent community directory of DeepSeek Harness plugins. Not affiliated with or endorsed by DeepSeek. Third-party plugins are not security-audited — review the source before installing.

New DeepSeek Harness plugins, weekly. No spam.