github WhiskeySockets/Baileys v7.0.0-rc10

latest releases: v6.7.23, v7.0.0-rc13, v7.0.0-rc12...
one month ago

Since September, I've been working really hard on version 7. This is a really important version for Baileys. We introduced ESM, modernized the syntax and DX a lot compared to previous versions and been shipping stability fix after another. We faced a lot of challenges: LIDs, restrictions, WAM, warnings, bans, random logouts, decryption & encryption errors to name a few.

It is now, that I'm proud to announce, our biggest release yet:

VERSION 7.0.0-rc10 THE FINAL RELEASE CANDIDATE.

This is the largest release since we started the WhiskeySockets fork. Baileys hasn't been released since November 21, 2025, for a period of over 5 months.

Key changes include since rc9:

  • Stability fixes for resending messages. @YonkoSam
  • Proper phone requests for missing messages @jlucaso1
  • improved media upload handling @jlucaso1
  • Mutex redesign @Santosl2
  • memory leaks fixes (down a lot, tested on prod and refined since then, we have decreased spikes immediately as of rc10 with shorter mem growth graphs, aiming to resolve entirely by v7). Multiple PRs of work by @YonkoSam @purpshell @jlucaso1
  • improved offline node batching @Santosl2
  • improvements to the app state logic @vinikjkkj @purpshell @jlucaso1 across multiple PRs
  • Member labels support @Santosl2
  • Reporting tokens support @jlucaso1
  • wire consistencies @gusquadri @vinikjkkj
  • FB and interop JID support for incoming Interoperability EU APIs @vinikjkkj
  • Encryption failures handling @vinikjkkj
  • Long data type handling in new WAProto structure (no need for silly hydrate function anymore) by @jlucaso1
  • Sending of TC (Trusted Contact) Tokens upon outgoing message, profile update, presence subscribe and more. @Santosl2 @jlucaso1
  • Message type function revamp @purpshell
  • critical mem leak discovery @YonkoSam
  • Fix connection deadlocks @purpshell
  • Fix race condition (detected by Bartender!) @jlucaso1
  • LID<->PN Mappings from contactAction, historySync, and more @jlucaso1
  • Caching the children of getBinaryNodeChildren calls to ACHIEVE A 30X return on speed during binary children lookups. All optimized with WeakMap so the garbage collector knows when to clean it. @purpshell
  • Changed shouldSyncHistoryMessage behavior and enriched Contact data types across all that produces them, so they are consistent across the library and lack no data @purpshell
  • Fix for ghost sessions!! Discovered partly with bartender @jlucaso1
  • Unified session telemetry @Santosl2
  • Rust App state sync @jlucaso1
  • Caching and batching overhaul @jlucaso1
  • Fixing Meta Ads messages by requesting the message from the main device!! @jlucaso1 (This fix was present in earlier versions of Baileys but got nuked due to a small change in rc3)
  • mention @all in groups @purpshell
  • Proper ack handling @jlucaso and call acks @purpshell
  • fixed small waveform bug @AshishKumarD
  • Album message sending @vinikjkkj
  • Optimizing sync memory and CPU usage @vinikjkkj @jlucaso1 @purpshell
  • Resilient app state thanks to @jlucaso1's hard work
  • Full TC Token issuance, revocation, expiration, pruning lifecycle @jlucaso1
  • Username and Usync support @gusquadri
  • Abprops handling @jlucaso1 and small error fix @vinikjkkj
  • LID mappings from other sources (mex notifications) @purpshell @kaikybrofc
  • v2 newsletter join/leave endpoints.
  • Companion registration utils (NEW QR CODE FORMAT! Decrease your error correction to get reasonably sized codes lol) @purpshell @jlucaso1 thanks for the implementation from my whatsmeow PR!
  • Reachout Timelock (Your account is restricted - the 463 error) and New Chat limits functions @purpshell
  • Server dispatch for aforementioned timelock and new chat limit @jlucaso1
  • Fixed over 40 vulnerabilities reported by NPM and GitHub (dependabot). @purpshell
  • Past participants in history sync
  • 463 handlers and safety-paths @Kunboruto20
  • BARTENDER E2E TESTING ON EACH PR AND NEW master + develop PUSH! @jlucaso1 @purpshell

Bartender popped up multiple times inside that change log.. What could it be?

Introducing Bartender

Bartender is a complete 1-1 implementation of the WhatsApp Web protocol SERVER. @jlucaso and I have been developing this technology really closely since December (https://discord.com/channels/725839806084546610/1333555494920388790/1448180611188654165), working hard to create a fully capable test environment.

I've had dreams of this tool since the days of the WA-Multi-Device Discord server, which was the server in 2021 that created the multi-device libraries of today.

Bartender will be made open-source really soon under Titan's DevCenter community effort soon. Titan relies on Bartender for a lot of its features, and so it will keep its maintenance fully sponsored.

Bartender's advantages include us being able to fully simulate chat flows on all layers of the protocol: Noise protocol, protobuf, Signal encryption, media uploads, Groups/Stories (SKDMs), specific settings, app state sync changes, and many more (literally the whole whatsapp protocol) on EVERY COMMIT ON EVERY PR and EVERY COMMIT ON develop and master.

Wait.... Whats's develop ???

Introducing the develop branch. All new Pull requests wishing to merge code onto Baileys, now need to do so into develop. This branch will be rigorusly tested and deployed in "dev" environments with strategic partners, to ensure reliability. Each new master push will be a guaranteed stable, working push.

I've been writing internal proceedures for WhiskeySockets and taking this seriously now that we have this much of a following (shout out openclaw lol), to ensure continued security and stability. As such I have also created a SECURITY.MD file for advisories and stuff (as I mentioned above, I've already fixed most supply-chain vectors from ~60 to ~20).

I've also been concerned with the level of AI slop being posted to both Issues and Pull Requests on Baileys. As such, I've created proper AGENTS.MD files to ensure those who use AI-assisted generation, follow the guidelines of contribution.

I've also outlined our AI policy in the code of conduct: We will allow AI-assisted code, but not purely AI-generated code. Baileys is not your random Next.JS dashboard. AI-generated code can get things really wrong, and cause more harm than good. Baileys is a surface based on a protocol, which is documented with hours and hours of human work. AI can't help except for certain rewrite and restructuring tasks.

What's next?

Version 7 is a really ambitious goal set by me, to modernize the library into 21st century TypeScript ecosystem standards.

Next up in the roster:

  • Integration of the whatsapp-rust-bridge directly into the Baileys repo (turning Baileys into a monorepo structure for ease of contribution)
  • Mintlify fully generated and AI-friendly documentation + reference (working with Mintlify to secure an Open Source plan!)
  • Full abprops handling on all the surfaces of the library (now possible with Bartender's surveillance checks)
  • Performant Baileys entering the chat with over 1300 messages per second on Bartender's benchmark mode. This is what I teased here: https://discord.com/channels/725839806084546610/1333555494920388790/1469426845287186654. That's over 3x the speed of whatsmeow (400-500 on average) and 1.16x the speed of whatsapp-rust. We achieved this using Bun and rust libsignal. Stay tuned.
  • Overall performance and memory safety. Once we are efficient enough, and the breaking changes introduced in this round of RCs are subsidized, I will feel ready to release.
  • More fun features to Baileys (richResponseMessage, interactiveMessages, yes you saw that right).
  • Calls (Audio + Video + Groups), soon to be made open-source as well.

When version 7 lands, we will follow this release schedule:

  • One patch per week (x.x.^)
  • One minor release every 2 weeks (x.^.x)
  • Hotfixes go to master, all else goes to develop.

I'm really excited for this quarter, many of my dreams are finally seeing light.

Thank you all for putting your faith in my work. RC10 was scheduled for April 28th, but life has been really busy. I didn't speak about it, but the war in my country really took a lot of my sanity and productivity.

Don't miss a new Baileys release

NewReleases is sending notifications on new releases.