Repository navigation
feat: place attached stickers on their bubble - #366
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 changesAdds optional position, scale, and rotation controls for stickers attached to message bubbles through the CLI and RPC. Example: Send arrow.png attached to a message with x=1, y=1, scale=0.4, and rotation=90.
Review scores
ProductKind: Feature · Worth it: Needs a maintainer decision · Fix scope: Complete Merge readiness⛔ Blocked before merge - 1 item remains Keep open: this PR adds a working sticker-placement capability absent from current main, with no concrete correctness defect found; its new public controls need an owner’s product decision. Priority: P3 Decision needed
Before merge
FindingsNone. Agent review detailsHow this fits togetherCLI flags and RPC parameters pass through shared placement validation into the injected Messages helper, which writes geometry into the existing sticker transfer before IMCore sends it. flowchart LR
A[CLI flags] --> C[Placement validation]
B[RPC parameters] --> C
C --> D[Helper capability check]
D --> E[Messages helper]
E --> F[Sticker transfer geometry]
F --> G[Recipient Messages bubble]
Technical reviewBest possible solution: If the sticker owners approve the public controls and bounds, retain this focused extension of the existing sticker pipeline. Do we have a high-confidence way to reproduce the issue? Current-main source establishes the limitation directly through fixed sticker geometry and absent placement parameters; no target code was executed during this read-only review. Is this the best way to solve the issue? The implementation uses the existing CLI, RPC, helper, and transfer owners, shares placement validation, and checks older helpers before staging rather than silently losing the requested geometry. 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 Reviewed October 25, 2026, 6:52 PM ET / 22:52 UTC. |
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.
f6b754d to
ba672a3
Compare
ba672a3 to
c8c0e9e
Compare
Expose bounded position, scale, and rotation through CLI and RPC, preserve the existing defaults, and require placement capability before staging. Validate helper geometry before dispatch. Proof uses synthetic fixtures only; no live stickers or messages were sent. Co-authored-by: Kilian Ciuffolo <kilian.ciuffolo@gmail.com>
e8cf5af to
286b5d5
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.
Attached stickers can now specify their position, scale, and clockwise rotation through
send.stickerandimsg send-sticker. Positions use the target bubble's dimensions; CLI/RPC rotation uses degrees and is converted to the radians stored by Messages. Omitted values preserve the existing centered defaults.Placement requires an attachment target, finite values within documented bounds, and a helper advertising
selectors.stickerPlacement. CLI and RPC reject unsupported helpers before preparing the sticker. The helper validates the complete geometry again before reading the file or dispatching.Validation: synthetic Objective-C geometry/refusal fixtures, focused Swift sticker CLI/RPC and asset tests,
make lint, and documentation tests; independent P0–P2 review. Full macOS and Linux checks run in this PR's GitHub Actions.No live run happened during this maintainer pass. No messages or stickers were sent; all proof used fixtures and no-send validation. Recipient rendering was not re-tested live.
Thanks @kilianc for the implementation and fixtures.