feat: add message revoke and forward commands#259
Conversation
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Codex review: needs maintainer review before merge. Latest ClawSweeper review: 2026-05-22 13:55 UTC / May 22, 2026, 9:55 AM ET. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: Do we have a high-confidence way to reproduce the issue? Partly: the DeviceSent sync gap is source-reproducible because current main lacks DeviceSent unwrapping, while the new commands are feature work now supported by redacted live terminal proof for text forward/revoke. PR rating Rank-up moves:
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. Real behavior proof Risk before merge
Maintainer options:
Next step before merge Security Review detailsBest possible solution: Land the lifecycle commands and DeviceSent import fix after maintainer review accepts the live-message delivery risk, with an extra media-forwarding proof requested only if maintainers want that path demonstrated separately. Do we have a high-confidence way to reproduce the issue? Do we have a high-confidence way to reproduce the issue? Partly: the DeviceSent sync gap is source-reproducible because current main lacks DeviceSent unwrapping, while the new commands are feature work now supported by redacted live terminal proof for text forward/revoke. Is this the best way to solve the issue? Is this the best way to solve the issue? Yes from source review: the patch follows the existing writable-store, send, parser, store, docs, and test patterns; the main remaining question is maintainer comfort with the media-forwarding proof depth. Label changes:
Label justifications:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 9388460fd1e4. |
|
ClawSweeper PR egg ✨ Hatched: 🌱 uncommon Moonlit Patch Peep Hatch commandComment Hatchability rules:
Rarity: 🌱 uncommon. What is this egg doing here?
|
…ycle # Conflicts: # CHANGELOG.md
|
Pushed maintainer updates in 4b09c8c. What changed:
Local proof:
Live proof status: blocked locally. The only local store at @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
…ycle # Conflicts: # CHANGELOG.md
…ycle # Conflicts: # CHANGELOG.md
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
…to feature/message-lifecycle # Conflicts: # CHANGELOG.md
|
Maintainer update pushed after merging current Proof:
|
Summary
messages revokecommand for deleting sent messages for everyone.messages forwardcommand for forwarding stored text and media/document messages to another recipient.messages revoketo target an explicit--chat+--ideven when the target is not present in the local message store.DeviceSentMessagewrappers are now parsed and stored in the actual destination chat withfrom_me=true, instead of being missed or associated with the wrong/self chat.Why
This PR covers two connected message-lifecycle gaps:
DeviceSentMessage; without unwrapping that metadata,waclican miss the real destination chat and fail later workflows that depend on finding the outgoing message locally.By fixing the outgoing-message import path and adding explicit lifecycle commands,
waclican now sync, find, forward, and revoke those messages more reliably.Testing
pnpm format:checkpnpm lintpnpm -s test:gopnpm -s test:ftspnpm -s test:windows-lockpnpm -s test:cgo-requiredpnpm buildgit diff --checkLive behavior proof (redacted)
Run on 2026-05-22 against an authenticated local WhatsApp store. The recipient/source chat was the account's own WhatsApp JID so no third-party chat was targeted. Phone number, chat name, and message IDs are redacted.
Validation after merge with current
origin/main: