Hotfix 4.0.1: suppress snapshot requests during OTA update - #109
Conversation
While a dongle is in OTA mode it has no snapshot queue allocated, so the
{"what":"all"} request triggered by its mid-update MQTT reconnect crashed
it into a reboot loop. The update entity now marks the dongle as in-OTA
around the whole install flow; the coordinator suppresses all snapshot
paths (bootstrap, forced, recovery) for a marked dongle without burning
the recovery debounce window, and one forced snapshot is sent after the
OTA finishes so entities repopulate on the new firmware.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @zakery292's task in 2m 20s —— View job Code Review StatusTasks:
SummaryThis is a well-scoped hotfix. The root cause (a Verified logic
Note: I wasn't able to execute Minor, non-blocking observations
No correctness bugs, security issues, or regressions found. The fix is targeted, the suppression logic is centralized rather than duplicated per-path, and test coverage for the new coordinator behavior is solid. |
While a dongle is in OTA mode it has no snapshot queue allocated, so the {"what":"all"} request triggered by its mid-update MQTT reconnect crashed it into a reboot loop. The update entity now marks the dongle as in-OTA around the whole install flow; the coordinator suppresses all snapshot paths (bootstrap, forced, recovery) for a marked dongle without burning the recovery debounce window, and one forced snapshot is sent after the OTA finishes so entities repopulate on the new firmware.