v0.2.7
A feature + fix release: typing simulation (anti-ban, on by default), a delete-chat endpoint, and a fix
for duplicate outgoing messages in the dashboard — plus engine-agnostic groundwork and the nginx/
singleton-lock container fixes.
Added
- Typing simulation before single sends (anti-ban), on by default. A text send now shows a "typing…"
indicator and pauses briefly (length-scaled, jittered) before sending, so automated messages don't look
instantaneous. Disable withSIMULATE_TYPING=false; cap the pause withSIMULATE_TYPING_MAX_MS
(default 5000). Exposed engine-agnostically viaIWhatsAppEngine.sendChatStateand a new
POST /sessions/:id/chats/typingendpoint (state:typing|recording|paused). Bulk sends are
unaffected (they keep their owndelayBetweenMessagesthrottle). - The engine API (
GET /infra/engines) and the dashboard Active Engine card now report the underlying
engine library version (e.g.whatsapp-web.js 1.34.7), distinct from the adapter plugin version. - Delete a chat from the chat list via
POST /sessions/:id/chats/delete(e.g. to clear out groups
you've left).OPERATORrole, engine-agnostic DTO. Thanks @tobiasstrebitzer (#261).
Fixed
- Duplicate outgoing messages in the dashboard Chats view. A race between the optimistic placeholder
and the realtimemessage.sentecho could render a sent message twice. Reconciliation is now race-safe.
(Display-only — the recipient always received exactly one message.) - Dashboard (simple nginx image) proxied API/WebSocket requests to a
openwahost that doesn't match the
backend service name;dashboard/nginx.confnow targetsopenwa-apifor both/api/and/socket.io/,
matching the production compose andDockerfile.traefik. Thanks @Abhishekrajpurohit (#259). - The container entrypoint now clears stale Chromium
SingletonLock/SingletonSocket/SingletonCookiefiles
from session profiles on start, so a session can re-launch after an unclean shutdown instead of failing with
"profile appears to be in use by another Chromium process" (exit Code 21). Thanks @Abhishekrajpurohit (#259).
Changed
mark-chat-readchatIdvalidation is now engine-neutral (accepts any engine's JID scheme, e.g. a
Baileys…@s.whatsapp.net) instead of hardcoding the whatsapp-web.js@c.us/@g.us/@lidformat.