[FEATURE] Mods: send a cross-session message with user-gesture provenance

Status Open
Maintainer reply None cached
Activity 1 comment · opened Oct 5, 2026

Problem

A mod can message another session with $.session.send, but the message always arrives framed as a peer session's message. That is correct when the model sends it. But when the person types into a mod's UI and presses Send, the receiving session still cannot tell it came from them. So a dashboard mod that watches several chats can never be used to answer or approve anything: the person has to switch to each chat and type there.

Proposal

A send variant that is valid only inside a genuine user gesture (a ui.press or ui.input submit dispatch on a surface the person is using). The engine would stamp it as the person's input in the receiving session, for example origin: { kind: 'user', via: '<plugin>' }.

  • The engine checks the gesture itself; a plugin cannot claim it.
  • It is refused from timers, model-driven tool calls and subagent loops, so a prompt-injected session still cannot speak as the user.
  • Optionally, the receiving session shows "sent by you from <plugin>".

Why we want it

We run several Claude Code chats in parallel (multi-agent pipelines across different repos) and built a dashboard mod showing every chat's lanes, live subagents, context use and status. The missing piece is acting from it: replying "approved, continue" or "use option B" to a chat that is waiting on us without switching to it. Today that message is correctly refused as peer input, so the dashboard can show that a chat is blocked but cannot unblock it.

Related: #91870 (Mods), #24537 (agent dashboard).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗