|
1 | 1 | # zaileys |
2 | 2 |
|
| 3 | +## 4.8.6 |
| 4 | + |
| 5 | +### Patch Changes |
| 6 | + |
| 7 | +- dd9edb4: Upgrade baileys to 7.0.0-rc14 (pulls patched `ws` 8.21.0, newer WhatsApp Web version, and a profile-picture tc-token fix), bump `jimp` to `^1.6.1` to satisfy the new peer range, update `valibot` to `^1.4.2`, and pin `protobufjs` to `^7.6.5` via a pnpm override. |
| 8 | +- b3a552f: Add group status support. `client.send(groupJid).groupStatus(text, { backgroundColor, font })` posts a group status, and `groupStatus(message)` reposts an existing text message as one. Groups only: a non-`@g.us` recipient rejects with `INVALID_RECIPIENT`. |
| 9 | + |
| 10 | + Verified against a live WhatsApp session: plain text, hex background, raw ARGB-integer background, a named font, reposting a text message, and overriding its text all render in an ordinary `@g.us` group, and a non-group recipient is rejected. `backgroundColor` accepts both a hex string and a raw ARGB integer — baileys' own `assertColor` silently returns `undefined` for numeric input, so zaileys parses colours itself. One caveat: `.mentions()` attaches `mentionedJid` but WhatsApp does not render a visible mention on a group status. |
| 11 | + |
| 12 | + **Text only.** Reposting an image, video, or voice note rejects with `INVALID_OPTIONS`. Eight variants were relayed against a live session and none rendered, while that same session posted a media `status@broadcast` that did render — so the limitation is the group-status envelope, not the media pipeline, and text in the same envelope works. A status that silently vanishes is worse than a clear error, so it is blocked. |
| 13 | + |
| 14 | + Two pre-existing bugs are fixed alongside it. |
| 15 | + |
| 16 | + **Behaviour change — inbound group statuses now fire events.** `groupStatusMessage` and `groupStatusMessageV2` were missing from the decoder's wrapper list, so every inbound group status was silently dropped: no `message`, no `text`, no `image`. They now decode to their inner content, so `chatType` reflects what the status contains rather than the envelope. Handlers that route commands off `message`/`text` will start seeing group status posts. Use the new `ctx.isGroupStatus` flag to skip them: |
| 17 | + |
| 18 | + ```typescript |
| 19 | + client.on('message', (ctx) => { |
| 20 | + if (ctx.isGroupStatus) return; |
| 21 | + }); |
| 22 | + ``` |
| 23 | + |
| 24 | + `ctx.isGroupStatus` is distinct from the existing `ctx.isGroupStatusMention`, which means someone mentioned this group in _their_ status. This decode path is covered by unit fixtures; it has not been exercised against a real WhatsApp-generated group status, because the WhatsApp client used for testing offers no way to post one. |
| 25 | + |
| 26 | + **Relay path now applies message modifiers.** `.mentions()`, `.mentionAll()`, and `.disappearing()` were silently dropped for every relay-based content type — `buttons`, `list`, `carousel`, `template`, `groupInvite`, and AIRich. They are now applied to the message, and relayed messages carry a `messageSecret` for parity with the normal send path. |
| 27 | + |
| 28 | +- f10106d: Add customizable sticker pack and author metadata via `ClientOptions.sticker` and per-message `.sticker(src, { pack, author })`, plus improved quoted-message context resolution in direct chats. |
| 29 | + |
3 | 30 | ## 4.8.5 |
4 | 31 |
|
5 | 32 | ### Patch Changes |
|
0 commit comments