mirror of
https://github.com/agessaman/MeshCore.git
synced 2026-09-05 10:25:56 +00:00
The pure batch/reboot/stop state machine in WebConfigBatch.h was host-tested but not referenced by production, so the real logic in WebConfigServer.cpp was untested and the two could drift silently. Repoint the production decision points at the spec: POST classification and replay-state naming, drain pacing/all-ok/finish, reboot scheduling and firing, result classification, confirm-reboot arming, and stop gating. MAX_BATCH and STOP_WARN_MS now alias kMaxBatch/kStopWarnMs so the constants cannot drift. Behavior-preserving. Two asymmetries are deliberate and documented in the header: finishRebootAt()'s 0 return must not be assigned unconditionally (the manual /api/reboot route also owns _reboot_at and could be cancelled), and classifyPost() is consulted in two phases because the change count is only known after parsing, which must not precede the Replay/Busy answer. Native suite (14 suites) and both MQTT smoke builds green.