{"version":"2.1.280","anchor":"send-message-tool-now-threads-hookcaller-through-to-relay-se","canonical_anchor":"send-message-tool-now-threads-hookcaller-through-to-relay-se","heading":"Cross-session messages now record whether a plugin hook sent them","tier":"internal","area":"Messaging","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280\/e\/send-message-tool-now-threads-hookcaller-through-to-relay-se","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280","markdown":"### Cross-session messages now record whether a plugin hook sent them\n\nMessages sent between Claude Code sessions now note when a plugin hook, rather than a user, originated the send\n\n**Unclear.** It's unclear exactly what scenarios trigger the new retry\/approval-carry machinery or what user-visible effect it has.\n\n**What**\n\nThe tool that sends messages between sessions (send_message \/ notify) now passes `fromPlugin: r.hookCaller` through when delivering a direct message, both over the UDS relay (`sendToUdsSocket`) and via `postInterClaudeMessage`. This lets the storage layer know whether a send was initiated by a plugin hook. The tool's send call was also wrapped with new retry\/approval-carrying machinery (`carryApproval`, `adoptReask`).\n\n**Why**\n\nTracking whether a cross-session message originated from a plugin hook helps distinguish automated, hook-driven messages from user-initiated ones, which matters for auditing, permissions, and correctly handling retries\/approvals for plugin-originated sends.\n\n- Area: Messaging\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}