Repository navigation
Releases
v5.5.4
v5.5.4
Version-label release: the root endpoint and the Prometheus environment metric now report 5.5.4, matching the code that has been running since the v5.5.3-labelled deploys of the pairing fix and the connection-stability bundle.
Changes since v5.5.3
- Version bump (PR #56) —
package.json+ bothpackage-lock.jsonroot entries: 5.5.3 → 5.5.4. No logic changes. - Connection stability bundle (PR #55, issue #54) — vendored Baileys patch (pin stays
7.0.0-rc14): exponential backoff with full jitter and immediate retry on 515, previous-socket teardown beforemakeWASocket, 60s send timeout (EVOLUTION_SEND_TIMEOUT_MS), the 515→401 guard (a 515 followed by 401 within 30s is not treated as a logout),remove.instancealways emitted, monotonic WhatsApp version with a persisted cache. Registered-credentials 408s reconnect instead of logging out. - WhatsApp pairing fix (PR #53, issue #52) — vendored patch for the
companion_reg_refreshadv-secret failure that made QR pairing never complete on Baileys 7.0.0-rc14 (upstream evolution-foundation PR evolution-foundation#2727: evolution-foundation#2765 + evolution-foundation#2602 + one evolution-foundation#2749 line).
Image
ghcr.io/neup123/evolution-api:v5.5.4 — digest sha256:944d969d8d08771ffa7d5963277615237b45c44bf3ef6eae32765d9db8f67c3f
Verified before publish: npm ci clean on host and in a container rig (vendored patch applies), db:generate, tsc --noEmit, production build, and the connection-recovery / disconnection-fields / socket-watchdog suites all pass. No GitHub Actions CI exists for this repo (disabled); verification was run locally on the build machine.
v5.5.3
Evolution API v5.5.2
Queue delivery-state correctness\n\n- Queued acceptance now explicitly reports messageWasSent=false, deliveryStatus=PENDING, and final=false.\n- Every actual delivery attempt resolves the current settings template and rechecks all safety rules.\n- Temporary policy blocks are requeued only inside the configured queue horizon.\n- Long waits and permanent policy changes mark the queue item FAILED with diagnostics instead of implying delivery.\n- OpenAPI and lifecycle documentation are updated.\n\nCloses #37.
Evolution API v5.5.1
Outbound queue fixes\n\n- Enforces combined sent + queued capacity for instance and recipient minute/day limits.\n- Enforces the unique new/dormant outreach daily limit.\n- Rejects a new queue item when its calculated send time is more than the configured distance after the current queue tail.\n- Adds OUTBOUND_QUEUE_MAX_TAIL_GAP_SECONDS, defaulting to 120 seconds.\n- Returns detailed 429 responses with capacity totals or queue-horizon timing.\n- Adds worker delivery, reschedule, and failure logging.\n\nThe v5.5.0 worker was confirmed to run correctly: it delivered one due message and rescheduled the others because only one outreach quota slot was available. This release prevents that queue over-admission and exposes the reason clearly.\n\nCloses #35.
Evolution API v5.5.0
Durable outbound text queue
- Existing sendText requests now queue transient Automation Safety cooldowns instead of returning 429.
- PostgreSQL/MySQL-backed queue survives restart and WhatsApp reconnect.
- Current policy is re-evaluated before every delivery.
- Exact rolling-window expiry determines the earliest send time.
- New GET /message/outboundQueue/{instanceName} reports counts, schedules, and estimated empty time.
- New DELETE /message/outboundQueue/{instanceName} clears unsent work.
- Permanent suppression, allowlist, quiet-hour, duplicate, and invalid-recipient decisions still fail safely.
- Queue admission fails only when recent sends plus queued work reach the configured instance or recipient daily capacity.
Includes database migrations, detailed Swagger responses, tests, and English documentation. See #34 and #33.
Evolution API v5.4.3
Delete Message automatic maximum scope
- Keeps one backward-compatible Delete Message endpoint.
- Automatically deletes for everyone when the connected account has permission.
- Falls back to delete for this account for incoming direct messages, non-admin group messages, missing group participant data, or unconfirmed revoke attempts.
- Returns explicit deletion scope and confirmation state.
- Adds guided Swagger form fields while retaining raw JSON input.
- Updates request, webhook-mapping, response, and fallback documentation.
Evolution API v5.4.2 - Confirmed automatic message deletion
Corrective delete release
- automatically resolves whether the original message belongs to the connected account or another group participant
- uses the authoritative archived message key and group-admin revoke mode when applicable
- rejects impossible incoming direct-message revokes and missing group permissions with explicit errors
- waits for WhatsApp acknowledgement across direct and group Baileys event channels before updating local state or emitting MESSAGES_DELETE
- stops returning Baileys PENDING as deletion success
- documents requests, permissions, response fields, errors, and n8n mappings
Release integrity
- runtime package version is 5.4.2
- the root endpoint exposes the image source revision
- GHCR images carry OCI version and revision labels
- tag builds now fail when the tag and package version differ
Validation
PR #31 passed the full TypeScript build, ESLint, runtime OpenAPI and chat-contract audits, CodeQL, and the repository quality workflow. No unapproved destructive WhatsApp message was used for acceptance testing; issue #22 remains the place to report the first designated live group test.
Evolution API v5.4.1 - Group LID delete fix
Group LID delete fix
Fixes group chat.deleteMessage calls that returned 200/PENDING but did not remove the WhatsApp message when n8n supplied a group JID, message ID, and an @lid participant without the complete original key.
Fix
- resolve the authoritative stored message key by current instance, original message ID, and matching chat/group JID
- hydrate
participantAlt,addressingMode,remoteJidAlt, and the originalfromMevalue before sending the Baileys delete stanza - retain the requested message ID so hydration cannot redirect deletion
- add regression coverage for the partial n8n group/LID request
Validation
- Quality/full build passed
- CodeQL workflow and GitHub Advanced Security gate passed
- message-key regression tests, ESLint, TypeScript, and diff checks passed before the PR
No destructive live deletion was run. Live acceptance still needs an explicitly designated disposable group message after deployment.
Rollback
The exact pre-fix main state is tagged rollback/pre-group-delete-lid, commit feae32cfeaead06d3826d8a402aa9c7c0c5ef769.
git fetch origin --tags
git switch -c instinct/group-delete-lid-rollback rollback/pre-group-delete-lid
git push -u origin instinct/group-delete-lid-rollbackThe release merge commit is e23fe130673318e5dc2796db5d981405fff009cc.
Evolution API v5.4.0 - Mistakes Generator
Mistakes Generator
Adds optional natural adjacent-key mistakes to outbound text and media captions.
Settings
enabled: on/offminLetters/maxLetters: eligible letters to changeprobability: 0-100% chance per eligible send- Available in instance settings and Settings Templates
- Embedded Evolution Manager controls are included for both
Protection and language behavior
- Preserves HTTP(S)/www URLs and bare domains such as
wikipedia.com - Preserves email addresses, mentions, and phone-like identifiers
- Leaves quoted keys, mention metadata, previews, and other message metadata unchanged
- Uses adjacent keyboard-row substitutions for Latin/QWERTY, Hebrew, Cyrillic, and Arabic, preserving case
Validation
Passed: Mistakes Generator tests (including protected identifiers, multilingual changes, case, and bounds); Settings Template hierarchy; review surfaces for docs and Manager UI; runtime OpenAPI audit (202 operations); Baileys/webhook/archive/chat documentation audits; message archive; outbound safety; message-key; log-redaction; ESLint; and tsc --noEmit.
The dual CJS+ESM tsup build was retried after Prisma generation. TypeScript completed, but bundling did not finish within the 110-second worker limit. CI remains the final full-build proof.
Rollback
The exact pre-feature source is tagged rollback/pre-mistakes-generator, commit 1cba37f6d49dd3c087e24275e848f0a12be0f5f1.
git fetch origin --tags
git switch -c instinct/mistakes-generator-rollback rollback/pre-mistakes-generator
git push -u origin instinct/mistakes-generator-rollbackThis release is merged to main through PR #27 with merge commit feae32cfeaead06d3826d8a402aa9c7c0c5ef769.
Mistakes Generator v5.3.0 RC1
Mistakes Generator
Adds optional natural adjacent-key mistakes to outbound text and media captions.
Settings
enabled: on/offminLetters/maxLetters: eligible letters to changeprobability: 0-100% chance per eligible send- Available in instance settings and Settings Templates
- Embedded Evolution Manager controls are included for both
Protection and language behavior
- Preserves HTTP(S)/www URLs and bare domains such as
wikipedia.com - Preserves email addresses, mentions, and phone-like identifiers
- Leaves quoted keys, mention metadata, previews, and other message metadata unchanged
- Uses adjacent keyboard-row substitutions for Latin/QWERTY, Hebrew, Cyrillic, and Arabic, preserving case
Validation
Passed: Mistakes Generator tests (including protected identifiers, multilingual changes, case, and bounds); Settings Template hierarchy; review surfaces for docs and Manager UI; runtime OpenAPI audit (202 operations); Baileys/webhook/archive/chat documentation audits; message archive; outbound safety; message-key; log-redaction; ESLint; and tsc --noEmit.
The dual CJS+ESM tsup build was retried after Prisma generation. TypeScript completed, but bundling did not finish within the 110-second worker limit. CI remains the final full-build proof.
Rollback
The exact pre-feature source is tagged rollback/pre-mistakes-generator, commit 1cba37f6d49dd3c087e24275e848f0a12be0f5f1.
git fetch origin --tags
git switch -c instinct/mistakes-generator-rollback rollback/pre-mistakes-generator
git push -u origin instinct/mistakes-generator-rollbackThis prerelease does not merge or modify main.