v0.9.2
microsoft/playwrightv0.9.2May 17, 2026by github-actions[bot]
AI Summary
Introduces status broadcast support and security hardening, including blocking link previews for private networks and validating webhook URLs.
Key Highlights
- New `wacli send status` command for text and media statuses.
- Security: Block automatic link previews from private/local networks.
- Security: Validate webhook URLs and disable private targets by default.
- Fixed history sync to show edited message text instead of placeholders.
New Features
- Send WhatsApp status broadcasts with captions and styling.
- Persist status messages separately in the database.
- Block automatic link previews for private/non-public addresses.
- Validate webhook URLs and redact errors.
- Add `--webhook-allow-private` flag for trusted endpoints.
- Unwrap edited WhatsApp messages during history sync.
Full Release Notes
## Changelog ### Added - Send: add `wacli send status` for WhatsApp status broadcasts, including text statuses with optional background/font and media statuses with captions. (#247 - thanks @dovocoder) - Store: persist synced and locally sent status broadcasts separately in `status_messages` instead of mixing them into normal chat messages. ### Security - CI: pin GitHub Actions and Docker base images to immutable refs and pin GoReleaser to an exact version. - Send: block automatic link previews from fetching localhost, private, link-local, multicast, and other non-public addresses. - Sync: validate webhook URLs, redact webhook errors, disable private-network webhook targets by default, and add `--webhook-allow-private` for trusted local endpoints. ### Fixed - Accounts: serialize account config mutations with a config lock and save through unique temporary files. - CLI: strip terminal control characters from human/table/error output. - CLI: open the local store through SQLite read-only mode for `--read-only` commands instead of initializing writer state. - Media: enforce regular-file and size limits for sends, stickers, voice notes, profile pictures, contacts imports, thumbnails, and unknown-length downloads. - Messages: make `--delete-media --for-me` remove the stored local media file when present. - Store: count all chats and groups in `store stats` instead of the first 50 entries. - Sync: warn when bootstrap contact/group/channel refresh fails instead of silently ignoring it. - Sync: bound each webhook delivery request so shutdown is not stuck behind a slow endpoint. - History: unwrap edited WhatsApp messages during history sync and backfill so stored/searchable text shows the edited body instead of `(message)`. (#246 - thanks @hiasinho) - Polls: use WhatsApp's single-select poll creation field for outbound single-select polls and preserve unmatched poll vote hashes in `poll show --json`. (#248 - thanks @dovocoder) - Sync: canonicalize `@lid` chat JIDs before enqueuing media downloads so `sync --follow --download-media` finds the correct DB row for live one-to-one messages. (#244 - thanks @Daniel1of1)