Releases
v2.86.0
Compare
Sorry, something went wrong.
No results found
2.86.0 (2026-10-22)
Features
make the failed-job retention, token log and thread collapse limits settings (6d297cf )
per-account outbox endpoints and account and state filters on GET /v1/outbox (9536c3d )
REST endpoints for failed webhook deliveries (3dfd5cf )
REST endpoints for the admin UI actions that had none (7a0bc67 )
webhooksDeliveryAttempts and webhooksRetryDelay settings for the webhook retry policy (4e54e99 )
Bug Fixes
accept a duration for EENGINE_GMAIL_FALLBACK_POLL_INTERVAL (431be3a )
announce that the pre-2.79 token endpoints and legacy SMTP options go after 2027-01-01 (1a81df4 )
announce the removal of the leftover deprecated request fields and the bull-board redirects (531c411 )
answer every API 404 with code NotFound (ff9c5c9 )
bump bullmq to 6.4.0 (e687a87 )
clean failed queue jobs by EENGINE_QUEUE_KEEP_FAILED_AGE instead of a fixed week (3a404a5 )
clean failed queue jobs by the failed-job retention setting (95fc040 )
close the IMAP command connection within the IDLE restart interval (a659c26 )
count each queue's failed jobs in the same read and the three queues at once for /metrics (7c47e8d )
cut per-account and per-message Redis round trips on the sync paths (7e2cefe )
declare Node 20.19.0 in engines and warn at startup on an older 20.x (95b8d53 )
decode outbound text parts with libmime and leave a part it can not decode untouched (efa6406 )
derive account credential keys off the event loop when loading account data (a530179 )
encode custom headers on the raw send path and use nodemailer's own delivery details (d59b382 )
end an IMAP sync pass when ImapFlow finds no mailbox selected, and use its public client API (8521aeb )
extend the export job lock per message, not per batch of 100 (f22b1d1 )
filter a queue listing by account or route on the job data alone (08300f9 )
give the Docker image a health check and keep its application tree read-only (0c0b70d )
index a full sync's changed messages a chunk at a time and drop deleted ones in the same round trip (8b49c09 )
keep retrying account assignment after the quick retries at startup (de1c8d6 )
learn the IDLE restart interval of a server that drops idle sessions (19c3844 )
let EENGINE_REDIS_PREFIX and the other lib/consts.js variables be read from a file (de9ba70 )
let POST /v1/settings clear the overridable settings, and parse their values in one place (7bcd190 )
list the GET /v1/settings include flags as chips again in the API reference (7b5c122 )
make account flush and delete complete on Gmail API and MS Graph accounts (7484bdc )
MCP tools for the new endpoints, server signatures and raw message source (aeb1ae5 )
name every OpenAPI schema deliberately and describe the terse operations (4e7bddc )
parse envelope recipients and header addresses with mailparser (378b003 )
queue a message through outbox.enqueue() and read its queue settings in one round trip (54c66d4 )
queue export messages a page at a time and write export progress once per batch (d22d9f0 )
queue new messages of an IMAP fast sync in one transaction instead of two round trips each (ed8cc3f )
read only the jobs of the page shown when listing one account's outbox (2ffbcfe )
read only what the category lookup, webhook clears and account teardown need (6c3d081 )
read the IMAP message index once per chunk in a full sync and stop deleting the wrong entries (34ca00b )
refresh an open IMAP folder before searching it and share waiting sync passes (2e5c436 )
refresh the public suffix list (c72b1e1 )
refresh the public suffix list (eed6753 )
report export queue depth, failed jobs, API latency and per-thread heap in /metrics (269876c )
report missing IMAP workers from /health and add liveness and readiness endpoints (f30f561 )
resolve a sent message's tracking flags in one place (1873f3c )
resolve Gmail categories over IMAP for a whole pass of new messages at once (710fc6b )
restore the newer public suffix list, and never replace it with an older download (3f2399a )
resume IDLE after an upload only once the connection is free (1276c48 )
search webhook routes by their target URL without its credentials (c155541 )
send an API call's latency with its counter instead of a second message per request (2822fe2 )
show why a first TLS certificate order failed instead of a guessed reason (43bbdf5 )
skip messages deleted mid-listing on Gmail and stop leaking outbox content and download streams (048b7d6 )
stop a full Redis from turning into a worker restart loop (936b937 )
switch SMTP server authentication per session instead of for every open connection (2a7c9de )
the Gmail watch check reads the stored field through the account's own decoding (5cbb53d )
the learned IDLE interval holds on hosts with several accounts and no longer reads its own side effects as a session cap (808dd58 )
update dependencies (e2adc4f )
update dotenv to 18.0.9 (ba55217 )
update ImapFlow to 2.6.0, nodemailer to 10.2.0, mailparser to 3.11.0 and the other libraries we own (a98b458 )
update ImapFlow to 2.7.0 and ioredfour to 2.2.0 (6bed980 )
update ImapFlow to 2.8.0 and mailparser to 3.12.0 (18023a1 )
update ImapFlow to 2.9.0 (1ec9a62 )
update mailparser to 3.12.2 (55cc131 )
write a full sync's new and deleted messages a chunk at a time, and share the new-message enrichment (bd60313 )
You can’t perform that action at this time.