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