Repository navigation
feat: mention people from send.rich and send.multipart - #365
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: blocked before merge. What this changesThis PR adds UTF-16 mention ranges to RPC rich sends and multipart text parts. Example: Send “hi Ann” with mentions [{"start":3,"length":3,"handle":"+15555550123"}].
Review scores
ProductKind: Feature · Worth it: Needs a maintainer decision · Fix scope: Complete Merge readiness⛔ Blocked before merge - 1 item remains This PR provides a distinct capability absent from main, with no actionable correctness findings; an owner decision remains on the RPC extension. Priority: P2 Decision needed
Before merge
FindingsNone. Agent review detailsHow this fits togetherJSON-RPC handlers validate text and mention ranges, probe the injected Messages helper, and pass attributed message bodies to the existing IMCore send path. flowchart LR
A[RPC client] --> B[Parameter validation]
B --> C[Helper capability probe]
C --> D[Attributed body builder]
D --> E[IMCore send]
E --> F[Recipient Messages]
Technical reviewBest possible solution: Approve the optional RPC mention contract and retain the existing send owners, strict validation, and older-helper rejection. Do we have a high-confidence way to reproduce the issue? Current-main parameter allowlists deterministically reject mentions, establishing the missing RPC capability without running target code. Is this the best way to solve the issue? The implementation fits the existing RPC and native-body owners, preserves ordinary sends, and avoids exposing arbitrary archived attributed bodies. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against 41de9c8b58ff. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Likely related people:
Review metrics
LabelsLabel changes:
Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (1 earlier review cycle)
Reviewed October 24, 2026, 11:42 PM ET / October 25, 2026, 03:42 UTC (Revision 2). |
|
@clawsweeper re-review |
|
🦞👀 Re-review progress:
|
A build of 0.19.1 with openclaw#365 and openclaw#366, and the fix that reports pre-dispatch sticker and attachment refusals as not started. Its own version makes imsg launch replace a running fork.1 helper.
Validate UTF-16 mention ranges, preserve formatting and part boundaries, and require explicit helper capability before dispatch. Reject malformed direct helper requests rather than applying unintended ranges. Proof uses synthetic RPC and Objective-C fixtures only; no live messages were sent. Co-authored-by: Kilian Ciuffolo <kilian.ciuffolo@gmail.com>
aea1377 to
8895ac3
Compare
Prepare imsg 0.21.0 for mentions, sticker placement, explicit Name & Photo setters, and the accumulated fixes. Preserve existing changelog entries and contributor credit, synchronize generated version metadata, and document that #365, #366, and #377 have fixture proof only with no live sends or identity changes. Validation: all 316 existing changelog bullets preserved; version metadata agrees; docs tests pass; independent review has no actionable P0–P2 findings; macOS/Linux CI and CodeQL passed at 8fa910a.

send.richand text parts insend.multipartnow acceptmentionsarrays containing UTF-16start,length, and participanthandlevalues. The bridge preserves formatting and part boundaries while applying Messages' mention attribute.Both RPC and helper validation reject invalid ranges, overlaps, malformed numbers, and unknown mention fields. Nonempty mentions require
selectors.sendMentions, so an older helper cannot silently send ordinary text instead. File and URL sends retain their existing restrictions.Validation: focused RPC mention fixtures, Objective-C message construction fixtures,
make lint, and documentation tests. The helper regression first reproduced eight failed assertions for malformed direct requests, then passed after the fix. Independent P0–P2 review passed. Full macOS and Linux checks run in this PR's GitHub Actions.No live run happened during this maintainer pass. No messages were sent; all proof used synthetic fixtures and no-send construction. Recipient notification behavior was not re-tested live.
Thanks @kilianc for the implementation and fixtures.