{"version":"2.1.237","anchor":"poll-tool-drains-queued-harness-events-and-reports-who-sent-","canonical_anchor":"poll-tool-drains-queued-harness-events-and-reports-who-sent-","heading":"Poll tool drains queued harness events and reports who sent them","tier":"soon","area":"Sessions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.237\/e\/poll-tool-drains-queued-harness-events-and-reports-who-sent-","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.237","markdown":"### Poll tool drains queued harness events and reports who sent them\n\nClaude can pull in queued messages from other sessions, stamped with who sent them, but only behind an env var.\n\n**What**\n\nA new Poll tool lets the model pull in events that the surrounding harness has queued for the session, returning the rendered messages along with how many events arrived and how many wake signals are still outstanding. Each queued event can now carry provenance saying who it came from, so a notice relayed from another Claude session arrives stamped as coming from a peer agent with that session's ID and text. None of this is reachable in a normal local run: the tool and the fields appear only when the `CLAUDE_CODE_POLL_EVENTS` environment variable is true and the session is in remote mode, meaning `CLAUDE_CODE_REMOTE` set to true with `CLAUDE_CODE_ENVIRONMENT_KIND` unset. Without that combination the tool is absent entirely and the session behaves as in previous builds, where it did not exist at all.\n\n**Details**\n\n- Poll is registered both in the main tool list and in the reduced list used for simple mode, is read-only, is safe to run concurrently with other tools, and refuses to run inside a subagent with the message `Poll is available on the main thread only`.\n- The `poll_event` request that feeds the queue accepts optional `authority`, `sender_id` and `sender_text` alongside its existing fields, validated as `poll_event: kind and event must be strings; wake, when present, a boolean; authority, when present, one of human-principal|human-other|peer-agent|world-event; sender_id and sender_text, when present, strings`.\n- Sender text is capped at 49152 bytes and sender ID at 1024.\n- Accepted provenance travels from the event queue through the turn options into the Poll tool's output schema as an optional `provenance` array, and onto the poll-event attachment, so the model sees the origin of each event it drains.\n- A relayed cross-session notice is tagged `authority: \"peer-agent\"` carrying the originating session's identifier and text.\n\n**Evidence**\n\n`poll_event: kind and event must be strings; wake, when present, a boolean; authority, when present, one of human-principal|human-other|peer-agent|world-event; sender_id and sender_text, when present, strings`, `authority: \"peer-agent\"`, `Poll is available on the main thread only`\n\n- Area: Sessions\n- Names: `CLAUDE_CODE_POLL_EVENTS`, `CLAUDE_CODE_REMOTE`, `CLAUDE_CODE_ENVIRONMENT_KIND`\n- Tier: Nothing to try yet\n- Useful: 2\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}