Align integration config UX/saving behavior and project binding.
- Telegram integration: keep Save available when appropriate in the wizard footer
so config changes (including deleting bots) can be persisted reliably.
- WhatsApp integration: fix project dropdown binding by using normalized
key/value helpers (supports both `key/label` and `name/title` payloads) and
showing project labels correctly.
- Mirror both fixes into the runtime plugin copy under agentdocker so the
running container gets the update immediately.
This resolves user-reported integration setup issues and restores expected
save/delete behavior.
Redesign the three messaging integration panels with a clearer, more guided
setup flow and polished user experience.
- simplify the email panel by surfacing the essentials first, moving
advanced scheduling behind Advanced, and making connection checks more
visible
- redesign Telegram and WhatsApp as step-based setup flows with clearer
status states, safer access warnings, richer test feedback, and more
responsive layouts
- add shared plugin-settings wizard footer support, extract WhatsApp state
into its own store, and align test-connection messages with the new UX
ux: ease Email connector setup and refresh copy
- Redesign the Email connector settings around a guided first-run flow with a clearer empty state, provider presets, and much friendlier copy
- Move server, routing, and scheduling power-user controls into an `Advanced` section while keeping the existing config model compatible
- Improve connection-test messaging, add Exchange inbound validation, and refresh the dashboard Email card copy while keeping the card visible
- Verify the updated setup flow in the browser on desktop and mobile
update and simplify x-data based on established frontend patterns
Update 10_discovery_cards.py
further polishing and first-draft no-click model for email and telegram
update whatsapp
Update telegram-config-store.js
- handler.py: Added handle_new_members() to send customized greetings (supports {name} placeholder, skips bots).
- bot_manager.py: Registered new handler using NEW_CHAT_MEMBERS filter.
- _10_telegram_bot.py: Integrated _wrap_new_members to ensure the bot uses the latest configuration.
- config.html: Added Welcome New Members toggle and Welcome Message input (conditional visibility based on Group Mode).
- telegram-config-store.js & default_config.yaml: Added default state (false) and documentation.
- Replaced :value reactive binding on Allowed Users and User→Project Mapping inputs with x-effect and focus guard, ensuring Alpine.js rerenders don't clear user-typed values while editing.
- Enhanced setUserProjects() to preserve incomplete entries (e.g., 123=), preventing accidental data loss.
- Refactored Default Project <select> persistence: replaced x-model with a x-effect + @change one-way binding, fixing value resets before option loading completes.
- Removed standalone aiohttp HTTP server for webhook mode; switched to Agent Zero's built-in API handler at /api/plugins/_telegram_integration/webhook.
- Added a new unauthenticated POST handler (api/webhook.py) that receives Telegram updates and feeds them to aiogram's Dispatcher.
- Webhook URLs are auto-constructed from the base URL and API path—no additional port or reverse proxy configuration required.
- Added webhook_secret verification in the API handler for improved security.
- bot.delete_webhook() is now called before starting polling mode to prevent TelegramConflictError races.
- Improved bot lifecycle: detects active webhook mode via webhook_active flag to avoid restart loops on each job_loop tick.
- Removed unused aiohttp/SimpleRequestHandler code.