- Status changed from New to Ongoing
Implemented: new watchdog_mon module. (1) Crash-loop: boot-time check of esp_reset_reason() + an NVS-persisted counter; 3 abnormal resets in a row asserts fail-safe outputs (all lamps on, sounder quiet, CC on) and halts before retrying the same init, skipping the rest of boot entirely. 5 min of stable uptime clears the counter; a tripped halt only clears via reflash (note: a normal idf.py flash does not erase NVS, so recovery needs idf.py erase-flash + reflash, or a targeted NVS erase). (2) Hung task: measurement_task, alarm_state_task, and app_main's own loop now kick a heartbeat; a supervisor task checks every 60s and asserts the same fail-safe + halts (no reboot) if one goes silent too long (15 min for the two worker tasks, 2 min for app_main). Builds clean. Committed as c89cf53, pushed to origin/master. Not yet verified on hardware - recommend deliberately forcing a crash-loop and a task hang before promoting to Done.