mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 03:45:46 -06:00
a0f4d5462a
The Signal and iMessage channel plugins inferred approval prompts by regex-sniffing rendered message text (header matching like 'Exec approval required', /approve command parsing), violating the transport-only channel doctrine: approval actions must stay typed until channel encoding. The typed envelope already existed (channelData.execApproval with approvalId/approvalKind/allowedDecisions) and every payload-level delivery path consumed it; the regex paths were redundant re-derivation at the raw send seam plus restart recovery for in-memory iMessage poll state. - Signal: delete send-level prompt sniffing entirely; all approval sends already flow through typed structured-payload or native-handler paths. - iMessage: sendMessageIMessage takes a typed approvalPrompt binding (id/kind/decisions) from the native approval handler instead of an approvalKind flag plus text re-parsing. - iMessage poller: persist pending poll targets in the plugin keyed store so restart recovery no longer regex-scans chat history; typed recent-chat discovery for handle-only DM targets stays. Split poll-target ownership into approval-reaction-poll-targets.ts (max-lines). - Plugin SDK: remove extractApprovalReactionPromptBinding — beta-only surface, never in a stable release, so no deprecation window applies; AGENTS.md now records that rule. Accepted tradeoff: approval prompts delivered by a pre-upgrade process are not rediscovered from chat text after restart (<=24h transient state; persisted reaction bindings and event-driven tapbacks still work).
@openclaw/imessage
Official iMessage channel plugin for OpenClaw, using imsg on a signed-in Mac.
The plugin supports iMessage and SMS DMs and groups, media, replies, tapbacks,
effects, polls, and group management when the imsg private API bridge is
available.
Install
openclaw plugins install @openclaw/imessage
Restart the Gateway after installing or updating the plugin.
Configure
Follow the iMessage guide for installing imsg, granting macOS permissions,
enabling private API actions, and configuring local or remote-Mac operation:
Package
- Plugin id:
imessage - Channel id:
imessage - Package:
@openclaw/imessage - Minimum OpenClaw host:
2026.7.2