Agent Zero v1.6: WhatsApp Integration, UI Server Restructuring, & Settings Enhancements
v1.6 introduces a powerful new WhatsApp integration plugin, major UI server restructuring into modular components, Settings enhancements ensuring API keys aren't overwritten, and update system improvements.
WhatsApp integration plugin — New plugin connecting Agent Zero to WhatsApp via a Baileys JS bridge with QR/pairing-code setup. Supports self-chat and dedicated (bot account) modes, group chat with mention detection, quoted replies, media/attachment handling, typing indicators, Markdown-to-WhatsApp formatting, and account disconnect/switch.
Update system enhancements — Added released_at timestamp tracking for git tags and branch heads; new get_current_major_main_latest_info finds the latest same-major version on the main branch; major_upgrade_versions and main_branch_latest fields added to the update info payload.
⚡ Improvements
WhatsApp: self-chat is now the default mode — Default changed from dedicated to self-chat; a warning banner is shown when allowed_numbers is empty in this mode.
WhatsApp: improved bridge reliability — Corrupt or missing node_modules are detected and automatically reinstalled; the poll loop stops after 5 consecutive bridge failures instead of spamming errors; Node.js absence halts the loop immediately; bridge restarts automatically when configuration changes.
WhatsApp: storage paths centralized — Session and media files moved from usr/whatsapp to tmp/whatsapp via a new storage_paths.py helper; paths are now consistent across all modules.
Settings: model config UI fixes — Restored provider fallback and empty option for utility preset; extracted a reusable model-field component and unified API key lifecycle handling.
UI server restructuring — Server setup extracted into a UiServerRuntime class with modular initialization; environment config, route registration, and transport handlers moved to helpers/ui_server.py.
🐛 Bug Fixes
WhatsApp: allowed-numbers filtering moved to Python — Phone number filtering now happens in the Python poll handler (reading config fresh each cycle) rather than the JS bridge, fixing a bug where LID-based matching never worked.
Settings: API keys no longer overwritten on save — Saving general settings no longer clobbers API keys that were set via the Configure Models dialog.
We use essential cookies for login and saving your preferences. With your consent, we also
use analytics cookies (Google Analytics) to improve the website.
Learn more