4151599e81
Follow-up to #88664. The remote @mention delivery path had three gaps that made cross-machine DMs half-work: 1. No reply relay: deliverRemoteRosterMentions submitted the prompt and toasted, but never polled — the handoff note promised a relay that never came. Now a bounded poll (same shape as a group member turn: new assistant message after the baseline, 180s cap) relays the recipient's reply as a notification, or says it's still pending. 2. No sender attribution: the raw user text was submitted, so the recipient's messaging protocol never recognized an agent-to-agent message. Deliveries now carry the standard "Message from 🤖 <sender> (@handle):" prefix. 3. Duplicate Bot Chats: every mention minted a fresh "Bot Chat" session. ensureRemoteCanonicalChat now resolves the recipient's pinned canonical chat from its profile ui_meta, falls back to resume-by-title, and only creates when neither exists — mirroring ensureGroupChatSession. Tests: remote-dm-delivery.test.mjs (pin-resume without create, attribution prefix + reply relay via vm-run behavior tests, source contract for the bounded poll). Plugin suite 187/187.