Skip to content

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 17 May 06:45
· 32 commits to main since this release
v0.9.2
330a2f6

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)