v0.7.2
Docker: evoapicloud/evolution-go:0.7.2
🆕 New Features
- Passkey (WebAuthn) pairing — support for linking accounts that the WhatsApp
server locks behind a passkey (the Shortcake / CRSC flow). When the
server demands a passkey, whatsmeow'sPairPasskeyRequestis surfaced through a
new ceremony flow: the backend mints a short-lived ceremony token, and a bundled
browser extension (passkey-helper) runs the WebAuthn assertion on the
web.whatsapp.comorigin and posts it back. Three public endpoints drive it:
GET /passkey-ceremony/{token},POST .../response,POST .../confirm. The
manager detects the passkey stage and shows an "Abrir WhatsApp Web" button.
Confirmation is always manual (never auto-confirm onSkipHandoffUX).
Configure the public API base viaPASSKEY_PUBLIC_URL. Full guide:
docs/wiki/guias-api/passkey-pairing.md. Note: there is no headless bypass —
the ceremony requires the account owner's real authenticator; the extension is
web-only. - Headless license auto-activation — set
EVOLUTION_OPERATOR_EMAILto the
email used in your first manual license registration; on startup the service
silently calls/v1/register/autoand skips the browser flow (falls back to the
manual flow if the email isn't registered yet). - Button message media support — additional media handling for interactive
button messages.
🔧 Improvements / CI
- Dropped the whatsmeow fork — now uses official
go.mau.fi/whatsmeow. The
project previously vendored a fork (whatsmeow-libsubmodule) to carry a
PostgreSQL pool patch; upstream rejected that patch in favor ofNewWithDB
(app-side config). Removing the fork also pulled in upstream's native passkey
support. Pinned to the commit that adds passkeys
(v0.0.0-20260630180629-b572e5bcb92b). Thesync-releasesworkflow no longer
re-adds the submodule. - QR pairing consumes
events.QRdirectly instead ofGetQRChannel. The QR
channel auto-confirms passkey onSkipHandoffUXand disconnects the socket when
codes run out — both break an in-flight passkey ceremony. Connecting without it
keeps the socket alive for as long as pairing (QR or passkey) needs. QR rotation
now pauses while a passkey ceremony is active. - Public sync fixes — the release workflow drops the obsolete whatsmeow-lib
step, targetsevolution-foundation/*, and now ships thepasskey-helper
extension to the public repo.
🐛 Bug Fixes
POST /instance/pairreturned an emptyPairingCode— the handler
swallowedPairPhoneerrors and returned HTTP 200 withPairingCode: "", and
the client wasn't connected/awaiting-auth beforePairPhone. Now starts the
instance, waits for the websocket, and surfaces real errors (#21).GET /instance/statusreturned 400 after a manual disconnect — now returns
200 with the disconnected status instead of erroring until a container restart
(#20).
🏷️ Org rename
- Repository references updated from EvolutionAPI to evolution-foundation
(module path, imports, GitHub URLs, submodule URLs).