github evolution-foundation/evolution-go 0.7.2
v0.7.2

4 hours ago

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's PairPasskeyRequest is 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.com origin 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 on SkipHandoffUX).
    Configure the public API base via PASSKEY_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_EMAIL to the
    email used in your first manual license registration; on startup the service
    silently calls /v1/register/auto and 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-lib submodule) to carry a
    PostgreSQL pool patch; upstream rejected that patch in favor of NewWithDB
    (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). The sync-releases workflow no longer
    re-adds the submodule.
  • QR pairing consumes events.QR directly instead of GetQRChannel. The QR
    channel auto-confirms passkey on SkipHandoffUX and 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, targets evolution-foundation/*, and now ships the passkey-helper
    extension to the public repo.

🐛 Bug Fixes

  • POST /instance/pair returned an empty PairingCode — the handler
    swallowed PairPhone errors and returned HTTP 200 with PairingCode: "", and
    the client wasn't connected/awaiting-auth before PairPhone. Now starts the
    instance, waits for the websocket, and surfaces real errors (#21).
  • GET /instance/status returned 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).

Don't miss a new evolution-go release

NewReleases is sending notifications on new releases.