Evolution GO - Changelog
July 3, 2026 ยท View on GitHub
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
PairPasskeyRequestis 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 theweb.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, targets
evolution-foundation/*, and now ships thepasskey-helperextension 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).
v0.7.1
Docker: evoapicloud/evolution-go:0.7.1
๐ New Features
- Test-send modal in Manager โ new modal in the embedded manager UI to test message sending directly from the panel, covering text, media and interactive message types. Useful for validating an instance right after pairing without leaving the manager.
๐ง Improvements / CI
- whatsmeow-lib SHA now pinned in the public sync โ the
sync-releasesworkflow previously re-cloned whatsmeowmainon every run, so the SHA listed in the CHANGELOG could drift from what the public repos actually built against. The workflow now captures the SHA from the dev submodule and checks out that exact commit in the target, restoring release reproducibility. - Repository cleanup โ dropped tracked binaries (
evolution-go,build/server), IDE config (.idea/) and scratch files (DIFF-COMPLETO.txt,API-INTERACTIVE-DOCS.txt,carousel-sender.html). Expanded.gitignoreto prevent reincidence.
๐ Docs
- Postman collection โ added
Set Proxyrequest and multipart hints on/send/media; collection file renamed fromEvolution GO.postman_collection (2).jsontoEvolution GO.postman_collection.json. - Interactive messages docs โ additional examples and corrections.
v0.7.0
Docker: evoapicloud/evolution-go:0.7.0
๐ New Features
- Multi-platform interactive messages โ Buttons, lists and carousel working on Android, iOS and WhatsApp Web/Desktop
- SendButton: removed
ViewOnceMessagewrapper that blocked rendering on iOS and WhatsApp Web;FooterandHeaderare now conditional - SendList: migrated from
InteractiveMessage/NativeFlowMessageto legacyListMessage(native protobuf) for broad compatibility - SendCarousel: new endpoint
POST /send/carouselwith cards (image, text, footer, buttons) and automatic JPEG thumbnail generation for instant image loading whatsmeow-lib: addedbiznode forInteractiveMessageand pinnedproduct_listtype on thebiznode forListMessage
- SendButton: removed
- Base64 media support on
/send/mediaโ Theurlfield onPOST /send/medianow also accepts base64-encoded media. When the value does not start withhttp://orhttps://, it is treated as base64 and decoded; reuses the existingSendMediaFileflow - WhatsApp status endpoints โ new
POST /send/status/textandPOST /send/status/mediapublish text/image/video status tostatus@broadcast. Media endpoint supports both JSON (with URL) and multipart/form-data (file upload). Thanks @Eduardo-gato (#15) - Webhook routing for GROUP / NEWSLETTER โ when the primary
MESSAGE/SEND_MESSAGE/READ_RECEIPTsubscription is absent, events from@g.uschats are forwarded toGROUPsubscribers and events from@newsletterchats toNEWSLETTERsubscribers. Thanks @oismaelash (#18)
๐ง Improvements
- Proxy protocol โ new optional
protocolfield (andPROXY_PROTOCOLenv) supportinghttp,https,socks5. Replaces the hardcoded SOCKS5 dialer withclient.SetProxyAddress, fixing HTTP-proxy QR pairing (#12). Thanks @TBDevMaster (#13) - WhatsApp Web version cache โ
fetchWhatsAppWebVersionnow caches the result for 1 hour with a mutex instead of issuing one request per instance startup. Thanks @VitorS0uza (#24) - Manager flicker fix โ instance page no longer replaces the list with skeleton cards on every 5s polling cycle (
hasLoadedflag). Thanks @TBDevMaster (#14), closes #11 WEBHOOKFILESโWEBHOOK_FILESโ.env.example, docker-compose and docs aligned with the env var the runtime actually reads. Thanks @VitorS0uza (#22)- Dependency cleanup โ removed unused
github.com/evolution-foundation/evo-gatefromgo.mod - whatsmeow-lib bumped to
0923702fb - Telemetry removed โ dropped legacy
pkg/telemetry
๐ Bug Fixes
/message/editโ was silently ignored because the edit payload usedConversationwhile the original message was sent asExtendedTextMessage. WhatsApp requires matching types; now the edit usesExtendedTextMessageand the response returns the actual server timestamp instead of the zero value. Closes #16- Sticker upload to S3/MinIO โ when
webp.Decodeorpng.Encodefailed, the whole media pipeline aborted and the sticker was lost from the webhook. Now we log a warning and keep the raw.webpbytes so the sticker still reaches the bucket. Closes #5 - Multipart
/send/mediaโ the binary-upload branch silently droppedmentionAll,mentionedJidandquoted. These fields now parse from the form (withmentionedJidaccepting repeated or comma-separated values) and reach the send service. Closes #2
โ ๏ธ Breaking changes
- Proxy โ previously all proxies were forced through SOCKS5. If you run SOCKS5 on a non-standard port (anything outside 1080/2080/42000-43000), set
PROXY_PROTOCOL=socks5in the env or pass"protocol": "socks5"in the proxy body explicitly โ otherwise the new protocol inference will fall back to HTTP.
๐ Docs
- README โ updated WhatsApp support number and issue templates
- Interactive messages guide โ new
docs/wiki/guias-api/api-interactive.md - Proxy docs โ environment variables, configuration guide and API reference updated with the new
protocolfield
v0.6.1
๐ New Features
- Group invite info endpoint โ
GET /group/invite-infoto get group details from invite link - Enhanced media sending โ GIF playback, video stickers, and transparent sticker support
๐ Bug Fixes
- Admin revoke โ Allow deleting messages from others in groups (admin revoke)
๐ง Improvements
- Version management โ Reads version from
VERSIONfile with ldflags fallback - CORS global middleware โ Applied before all routes
- Makefile compatibility โ Fixed
$(shell)syntax for GNU Make 3.81 (macOS default) - CI/CD cleanup โ Removed
developbranch trigger andhomologtag from Docker workflow - README updated โ New links, documentation, and hosting info
v0.6.0
๐ New Features
- Version from VERSION file โ Reads version from
VERSIONfile at startup instead of hardcoded value
๐ง Improvements
- Makefile compatibility โ Fixed
$(shell)syntax for GNU Make 3.81 (macOS default)
v0.5.4
๐ง Improvements
- Update whatsmeow lib
v0.5.3
Docker: evoapicloud/evolution-go:0.5.3
๐ง Improvements
- Update context handling in service methods
- Refactored multiple service methods across various packages to include
context.Background()as the first argument in client calls. This change ensures that all client interactions are properly context-aware, allowing for better cancellation and timeout management. - Updated methods in
call_service.go,community_service.go,group_service.go,message_service.go,newsletter_service.go,send_service.go,user_service.go, andwhatsmeow.goto enhance consistency and reliability in handling requests. - This adjustment improves the overall robustness of the API by ensuring that all client calls can leverage context for better control over execution flow and resource management.
- Refactored multiple service methods across various packages to include
v0.5.2
Docker: evoapicloud/evolution-go:0.5.2
๐ New Features
- SetProxy Endpoint: New endpoint
POST /instance/proxy/{instanceId}to configure proxy for instances- Support for proxy with/without authentication
- Validation of required fields (host, port)
- Automatic cache update via reconnection
- Integrated Swagger documentation
๐ง Improvements
- CheckUser Fallback Logic: Implemented intelligent fallback logic
- If
formatJid=truereturnsIsInWhatsapp=false, automatically retries withformatJid=false - Significant improvement in valid user detection
- Added
RemoteJIDfield to use WhatsApp-validated JID
- If
- LID/WhatsApp JID Swap: Automatic handling of special cases
- When
Sendercomes as@lidandSenderAltcomes as@s.whatsapp.net - Automatic inversion:
SenderandChatreceive@s.whatsapp.net,SenderAltreceives@lid - Detailed logs for tracking swaps
- When
๐ Bug Fixes
- SendMessage: Standardization of WhatsApp-validated
remoteJIDusage - User Validation: Improvement in phone number validation and formatting
v0.5.1
Docker: evoapicloud/evolution-go:0.5.1
๐ง Improvements
- Instance Deletion: Enhance instance deletion and media storage path resolution
- Media Storage: Improvements in media storage and path resolution
v0.5.0
Docker: evoapicloud/evolution-go:0.5.0
๐ง Improvements
- Media Storage: Enhance media storage and logging in Whatsmeow event handling
- Retry Logic: Implement retry logic for client connection and message sending
- Media Handling: Enhance media handling in event processing
v0.4.9
Docker: evoapicloud/evolution-go:0.4.9
๐ง Improvements
- Connection Handling: Add instance update test scenarios and improve connection handling
- FormatJid Field: Update FormatJid field to pointer type for better handling in message structures
- Dependencies: Update dependencies and fix presence handling in Whatsmeow integration
v0.4.8
Docker: evoapicloud/evolution-go:0.4.8
๐ง Improvements
- Audio Duration: Improve audio duration parsing in convertAudioToOpusWithDuration function
v0.4.7
Docker: evoapicloud/evolution-go:0.4.7
๐ง Improvements
- Phone Number Formatting: Improve phone number formatting and validation in user service
- Brazilian/Portuguese Numbers: Update Brazilian and Portuguese number formatting in utils
๐ New Features
- Media Handling: Enhance media handling in event processing
v0.4.6
Docker: evoapicloud/evolution-go:0.4.6
๐ New Features
- User Existence Check: Add user existence check configuration and JID validation middleware
v0.4.5
Docker: evoapicloud/evolution-go:0.4.5
๐ง Improvements
- Dependencies: Update dependencies and enhance audio conversion functionality
v0.4.4
Docker: evoapicloud/evolution-go:0.4.4
๐ New Features
- CLAUDE.md: Add CLAUDE.md for project documentation and enhance RabbitMQ connection handling
v0.4.3
Docker: evoapicloud/evolution-go:0.4.3
๐ง Improvements
- PostgreSQL Connection: Fix in PostgreSQL connection configuration for session auth
- Controlled configuration of pool, idle, etc.
- Adjustment on top of whatsmeow lib
- User Endpoints: Fix in 'User Info' and 'Check User' endpoints
- Now return with contact's LID information
v0.3.0
๐ New Features
- Own Message Reactions: Additional 'fromMe' parameter using Chat id
- CreatedAt Field: CreatedAt field added to instances table
v0.2.0
๐ New Features
- Advanced Settings: Advanced configurations in instance creation
alwaysOnline(still to be implemented)rejectCall- Automatically reject callsmsgRejectCall- Call rejection messagereadMessages- Automatically mark messages as readignoreGroups- Ignore group messagesignoreStatus- Ignore status messages
- Advanced Settings Routes: New routes for get and update of advanced settings
- QR Code Control:
QRCODE_MAX_COUNTvariable to control how many QR codes to generate before timeout - AMQP Events:
AMQP_SPECIFIC_EVENTSvariable to individually select which events to receive in RabbitMQ
๐ง Improvements
- Reconnect Endpoint: Fix in reconnect endpoint
- Sender Info:
SenderandSenderAltno longer come with session id, only the id
๐ Bug Fixes
- QR Code Generation: Fix to not generate QR code automatically after disconnection or logout
v0.1.0
๐ Initial Features
- Base implementation of Evolution API in Go
- WhatsApp integration via whatsmeow
- Instance system
- Basic message sending endpoints
- Webhook support
- RabbitMQ and NATS integration
- Authentication system
- Swagger documentation
๐ Migration Notes
v0.5.2
- The new
SetProxyendpoint requires admin permissions (AuthAdmin) - The
CheckUserfallback logic is automatic and transparent - LID/WhatsApp JID handling is automatic
v0.4.3
- Check PostgreSQL connection settings if using postgres auth
v0.2.0
- Review advanced settings configurations if necessary
- Configure
QRCODE_MAX_COUNTif you want to limit QR codes - Configure
AMQP_SPECIFIC_EVENTSfor specific RabbitMQ events
๐ Useful Links
- Docker Hub:
evoapicloud/evolution-go - Documentation: Swagger available at
/swagger/ - GitHub: Evolution API Go
๐ค Contributing
To contribute to the project:
- Fork the repository
- Create a branch for your feature
- Commit your changes
- Open a Pull Request
Last updated: October 2025