mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-04-26 10:58:04 +00:00
- base.html: persistent danger banner appears on every web page when is_radio_zombie is true; shows datetime zombie was detected; includes "Restart Bot Processing" button (POST /api/admin/zombie-recover) that clears _radio_zombie_detected and _radio_fail_count on the live bot object and removes the persisted DB flag; banner turns green on success - config.html: new "Zombie Radio Alert" card with enable/disable toggle and alert-email field; "Save" writes to bot_metadata (immediate, survives restarts); "Save to config.ini" also persists values to config.ini and keeps the in-memory config in sync; card shows current config.ini values as baseline defaults - app.py: inject_template_vars context processor now provides radio_zombie and radio_zombie_since to all templates; added GET/POST /api/config/zombie-alert endpoints (GET returns both bot_metadata and config.ini values; POST supports write_to_config flag); added POST /api/admin/zombie-recover endpoint; stored config_path on self for write-back use - scheduler.py: send_zombie_alert_email now prefers bot_metadata (zombie.alert_enabled, zombie.alert_email) over config.ini so web UI changes take effect without a restart; uses isinstance(..., str) guard so mock/None values safely fall through to config.ini defaults