Releases: AndorinaAI/Andorina-WhatsApp-Agent-for-Hermes
Release list
Andoriña v1.5.2-Beta5
Note
Patch release — all fixes are applied automatically on update via the GUI updater.
Versión de parche — todas las correcciones se aplican automáticamente al actualizar desde el panel.
🇺🇸 English
🐛 Bug Fixes
- Group→Group Semantic Alerts: The
pre_llm_callpath inwebhook.pywas buildingchat_idfrom the individual sender JID instead of the group JID, so alert rules with a group as the source never fired. Fixed by parsingsession_key(whatsapp:group:<GROUP_JID>[:<SENDER>]) to extract the real group@g.usJID. Also passeschat_namefor human-readable alert labels.
🇪🇸 Español
🐛 Correcciones de Errores
- Alertas Semánticas Grupo→Grupo: El path
pre_llm_calldewebhook.pyconstruía elchat_ida partir del JID del miembro individual en lugar del JID del grupo. Las reglas de alerta con origen de grupo nunca se disparaban. Corregido parseando elsession_key(whatsapp:group:<JID_GRUPO>[:<EMISOR>]) para extraer el JID real@g.us. También pasachat_namepara que los labels de las alertas sean legibles.
v1.5.2-Beta4
What's new
Fixed
- RBAC role matching:
resolve_role()now uses JID suffix matching, fixing role assignment failures when phone numbers are stored without country prefix. - Alert source matching: Replaced unsafe substring check with a clean JID suffix match to prevent false security positives.
- Away auto-reply: Suffix matching now used when comparing incoming messages against
ADMIN_PHONE. - Webhook URL detection: Replaced single-tier detection with a robust multi-tier fallback (tunnel headers, external IPs) with a stability flag output.
Added
- Fuzzy keyword alerts: Dynamic alert rules now support
fuzzy_keyword_match— catches plurals and ignores accents. - Webhook stability banner: A warning is shown in the panel if the webhook URL is missing, uses a local hostname, or is deemed unstable.
- JID normalization helpers: Centralized
_jid_matchand_norm_jidfunctions across the codebase.
See the full CHANGELOG for details on previous versions.
Andoriña v1.5.2-Beta3
What's fixed
Admin not recognized over WhatsApp
is_owner() was failing silently when ADMIN_PHONE didn't include the country prefix. Now uses suffix matching so xxxxxxxxx correctly matches 34xxxxxxxxx. Also added a fallback to the JID's assigned role — if set to owner in the panel, it's always recognized.
Wrong tool permissions with Hermes Native soul
When a contact was assigned __HERMES__ as soul, pre_tool_call tried to load it as a plugin, failed, and silently downgraded tool access to chatbot-level. Reserved soul names are now filtered before plugin resolution.
Soul dropdown in panel reverting to default
Fixed a race condition where selecting "Hermes Native" in the admin panel would snap back to "Default Soul" on next reload.
Soul transition memory
Switching a contact's soul used to wipe the entire conversation history. Now it preserves the user's messages for context continuity while stripping the bot's old responses — the new persona picks up the conversation without being anchored to the previous personality.
Long-term memory (Hindsight) offline
Hindsight (PostgreSQL) was not running and not restarting automatically. Fixed startup, added library compatibility for Ubuntu 24.04, and added a systemd user service for autostart. The admin panel now shows a warning banner when Hindsight is offline, with a one-click Start Memory button.
Files changed
scripts/security/rbac.py · scripts/security/orchestrator.py · scripts/security/orchestrator_hook.py · scripts/security/soul_sync.py · GUI/server.py · GUI/static/app.js · GUI/static/index.html
Andoriña v1.5.2-Beta2
Bug fix update. If your bridge was disconnecting or looping the QR code, this fixes it.
What was happening:
Hermes v0.16.0 changed where it stores the WhatsApp session. If your disk had filled up at any point, the credentials file ended up empty and the bridge got stuck retrying every 30 seconds indefinitely.
What's fixed:
- Session symlink so future Hermes path changes don't break the connection again
- Installer now checks Hermes >= v0.16.0 is installed and offers to update it automatically if not
- Installer warns if disk space is below 5GB
- Auto-updater now handles the symlink, disk monitor setup and config migration automatically
- New daily disk monitor: sends a WhatsApp alert if free space drops below 85%
- Fixed a broken injection anchor in
patch_whatsapp.pythat affected fresh installs on Hermes v0.16.0
To update:
If you already have Andoriña installed, run the updater:
python3 ~/.hermes/skills/andorina/andorina_updater.py --update
If you're installing from scratch, download the zip below and run install.sh.
If your bridge is already stuck on QR:
Stop the gateway, run hermes whatsapp to scan the QR, then start it again. Everything else is handled automatically by the updater.
v1.5.2-Beta1 - Bug Fix Release: Security, Webhooks, note managing & Banner
Patch release — all fixes are applied automatically on update via the GUI updater.
🐛 Critical Bug Fixes
- TUI/CLI Blocked by RBAC: Fixed an issue in
orchestrator_hook.pywhere the owner using the local Hermes TUI was denied all actions. The RBAC permission filter now only applies to incoming WhatsApp messages, allowing local sessions to pass through unconditionally. - Webhook Port Hardcoded: Fixed a bug in
GUI/server.pywhere generated webhook URLs incorrectly used a hardcoded3001port instead of the actual application port (8888). - Contacts Notes (Memory): The updater now adds rules to the internal engine so the agent proactively and silently executes memory commands (
note-addandnote-read) during conversations. - Prompt Updater (SOUL.md): Fixed the updater to ensure it executes the optimization and applies patches to the system prompts on existing installations, which it previously omitted.
✨ Improvements
- Live Announcement Banner (i18n): Implemented multi-language support for the live banner. It now dynamically fetches the English or Spanish text depending on the selected panel language.
- Banner Loading: The remote banner now loads every time the panel is opened (not only when an update is pending), and its scroll speed has been slowed down to improve readability.
V1.5.1-Beta1
Bug Fixes & Improvements
- Agenda Deadlock: Resolved the locked update deadlock by utilizing direct file I/O instead of double-locking the JSON file.
- Crontab Auto-cleanup: Native crontab entries are now automatically removed upon successful message delivery.
- Stale Crons Purge: Added a
cleanup-cronscommand to dynamically purge stale crontab entries whose script paths or message/recurring IDs no longer exist. - CORS Proxy: Implemented a
/api/public/bannersame-origin proxy in the GUI server to prevent CORS issues when loading the external dynamic banner. - UI Adjustments: Fixed the banner layout in the main menu to prevent overlapping with the logo and replaced sparkle separators with dots.
- Update Badge: Added a background check and navigation badge in the Diagnostics tab to indicate when an update is available.
- Upload Base64 Fix: Resolved the
UnboundLocalError: local variable 'base64' referenced before assignmentissue in the/api/uploadroute. - Updater Improvements: The updater now executes the bridge health script (
bridge_health.py) to apply repairs/sanitization post-update and automatically restarts the GUI server usingAndorina-Panel.sh.
v1.5.0-Beta1 — Core Refactoring & GUI Installer
What's new in v1.5.0-Beta1
This release is a near-complete refactoring of the internal architecture. The focus has been stability, security, and simplifying the installation experience.
Major changes
- New GUI installer (
Andorina-Panel.sh) — no more terminal setup for end users - Restructured scripts — organized into
security/,tools/,transport/andutils/modules - Zero-trust security layer —
input_guard.py,tool_guard.py, and a full output pipeline (DLP, sanitizer, pagination) - Sub-Souls — load custom personalities per contact from Markdown files
- Semantic alerts — keyword-based auto-responses with cooldown
- Idempotent inbox writes and auto-offset in agenda to prevent race conditions
- Session detection for WhatsApp Web reconnects
- Bilingual interface (ES/EN) across the web dashboard and installer
Installation
Fresh install recommended. Follow the instructions in the README.md.
Notes
- Linux only
- Beta release — report any issues in the Issues tab
- Google Contacts OAuth is pre-configured; no API console setup required
v1.0.4-Beta1: Core Consolidation, Automated Diagnostics & Security Hardening
`This beta release introduces major architectural improvements, focusing on unifying core messaging workflows to eliminate technical debt, adding self-healing diagnostics to the WhatsApp bridge, and hardening overall security and state concurrency.
🛠️ Key Technical Improvements
- Unified Messaging Core (DRY): Centralized HTTP request handling, pacing, and logging into a new shared
scripts/common.pymodule. This eliminates duplicate logic acrosssend.py,files.py,agenda.py, andcontacts.py. - Self-Healing Bridge Patches: Upgraded
bridge_health.pyandpatch_bridge.pyto automatically detect, diagnose, and inject missing API endpoints (/health,/groups,/qr,/typing) into the local agent'sbridge.jswithout manual intervention. - Security & Path Hardening:
- Replaced broad exception handlers with strict
except Exception:captures across all Python scripts. - Secured
setup_portable.pyby applying directory-level extraction filters to mitigate path traversal risks. - Hardened rate limits and updated loop-detection rules inside the system firewall (
guard.py).
- Replaced broad exception handlers with strict
- Atomic Concurrency Control: Standardized file-level locking (
fcntl.flock) during concurrent write operations to ensure inbox queues and configuration assets are protected from file corruption. - Universal Documentation Sync: Synchronized legal notices, multi-language landing assets, and the manual (
SKILL.md) to represent the exact specifications ofv1.0.4-Beta1.
🐛 Testing & Bug Reports
This is a Beta release. Please test these features in your local environment. If you encounter any bugs, errors, or unexpected behavior, please open an issue in the GitHub Issues section so we can address it before the final release.
``
v1.0.3-patch1: Operation Hardening (Addressing Previous Bugs)
This beta patch addresses several critical edge cases and bugs found in previous v1.0.3 releases, focusing on stability, guardrails, and automated setup.
🛠️ Key Improvements & Fixes
- Installer Stability (System Compatibility): Addressed installation failures reported on some specific systems. The installation process has been refined and should work correctly now across environments, but we actively seek user feedback to confirm this stability.
- Hallucination Guardrails: Added strict exit codes (
1) and structured JSON error returns insend.pyandcontacts.pyto prevent AI agents from hallucinating non-existent commands when they fail to match a subcommand. - Streamlined Gateway Setup: The
setup.pyscript now automatically handles downloading and placing the Hermes WhatsApp gateway binary to reduce installation failures, though users still need to perform the initial manual linking (QR scan). - Refined File Search Protocol: Rewrote the protocol in
SKILL.mdwith a strict 5-step algorithm utilizing localized paths (viaxdg-user-dir) to prevent the agent from searching the wrong directories or getting stuck. - File Reading Limitations Warning: Added explicit notices for both users and AI agents about the current inability to read binary, video, image, or complex office files (PDF/Office), ensuring the agent asks for precise filenames instead of trying to "read" them.
Note: This is a BETA release to test these fixes and new guardrails. If you previously had issues with the installer, please try again and let us know your feedback!
v1.0.2-hotfix3 — Stability & Visibility Update
This hotfix addresses critical installation and connection issues reported during the beta phase. It ensures a smoother onboarding experience for new users and stabilizes the connection monitoring engine.
🔧 Key Improvements & Fixes:
QR Visibility Fix: Resolved a bug that caused the WhatsApp QR code to be hidden during the initial pairing process.
Bilingual Session Detection: The system now provides real-time feedback (English/Spanish) when a WhatsApp session is already active, preventing redundant restarts.
Installer Resilience: Fixed input stream alignment in install.sh to eliminate EOF errors during automated setup.
Enhanced Terminal Support: Improved autostart terminal detection for Linux desktop environments including KDE, XFCE, MATE, and LXDE.
Global Version Sync: Unified the version string across all scripts, system documentation, and web assets.
📦 Installation Instructions:
Download the attached Andorina-Skill-v1.0.2-hotfix3.zip.
Extract the archive and navigate to the folder.
Run the installer:
bash
bash install.sh
Developed with ❤️ by Jorge. — Andoriña v1.0.2-hotfix3