fix(imessage): respect actions.reply=false in outbound delivery#92170
fix(imessage): respect actions.reply=false in outbound delivery#92170fsdwen wants to merge 3 commits into
Conversation
|
@vincentkoc would you mind reviewing this? Thanks! |
|
Codex review: needs real behavior proof before merge. Reviewed June 12, 2026, 7:39 PM ET / 23:39 UTC. Summary PR surface: Source +3, Tests +29. Total +32 across 2 files. Reproducibility: unclear. The review failed before ClawSweeper could establish a reproduction path. Review metrics: none identified. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Review detailsBest possible solution: Retry the Codex review after fixing the execution failure. Do we have a high-confidence way to reproduce the issue? Unclear. The review failed before ClawSweeper could establish a reproduction path. Is this the best way to solve the issue? Unclear. Retry the review first so ClawSweeper can evaluate the actual issue and fix direction. AGENTS.md: unclear because the file could not be read completely. Codex review notes: model internal, reasoning high; reviewed against 4809ac70fa5a. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +3, Tests +29. Total +32 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
When channels.imessage.actions.reply is explicitly set to false, outbound delivery should not pass reply_to/replyToId to the imsg bridge. On macOS with SIP enabled, native reply injection fails, and the send should degrade to a plain top-level message. Previously, the replyToId was always resolved regardless of the actions.reply setting, causing SIP-enabled systems to fail with: "System Integrity Protection (SIP) is enabled. Refusing to inject into Messages.app." Fixes openclaw#92142 Co-Authored-By: Claude Fable 5 <[email protected]>
771668e to
2f5dbec
Compare
… suppression Verify that replyToId is undefined in the receipt and not passed to the client RPC when channels.imessage.actions.reply is false. Issue openclaw#92142 Co-Authored-By: Claude Fable 5 <[email protected]>
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@vincentkoc would you mind reviewing this? Thanks! |
|
@clawsweeper re-review |
Co-Authored-By: Claude Fable 5 <[email protected]>
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Thanks for sending this fix. I’m closing this as superseded by maintainer PR #93137. That PR carries the same #92142 fix at the iMessage sender boundary, keeps the maintainer-owned branch authoritative, and includes regression coverage that checks the actual outbound |
Summary
When
channels.imessage.actions.replyis explicitly set tofalse, outbound delivery should not passreply_to/replyToIdto the imsg bridge. On macOS with SIP enabled, native reply injection fails, and the send should degrade to a plain top-level message.Fix
In
extensions/imessage/src/send.ts, theresolvedReplyToIdnow checksaccount.config.actions?.reply !== falsebefore resolving the replyToId:When
actions.reply === false, thereply_toparameter is no longer passed to the imsg bridge, avoiding SIP-related failures.Files changed
extensions/imessage/src/send.ts: +2/-1 linesextensions/imessage/src/send.test.ts: +29 lines (regression test foractions.reply=false)Related
Fixes #92142
Real behavior proof
reply_toeven whenchannels.imessage.actions.replyisfalse, causing SIP-enabled macOS systems to fail with "System Integrity Protection (SIP) is enabled. Refusing to inject into Messages.app."actions.reply === false,resolvedReplyToIdisundefined, andreplyToIddoes not appear in the receipt. The client RPC does not receive areply_toparameter. Whenactions.replyis unset ortrue, behavior is unchanged. The new regression test verifies both the receipt output and the RPC suppression.imsgCLI bridge binary. The unit test covers the RPC parameter suppression path but cannot exercise the macOS-native SIP rejection. macOS validation from a contributor with the appropriate hardware is requested.🤖 Generated with Claude Code