diff --git a/server/heartbeat_diagnostics_stub.py b/server/heartbeat_diagnostics_stub.py index 30e7943..6c78932 100644 --- a/server/heartbeat_diagnostics_stub.py +++ b/server/heartbeat_diagnostics_stub.py @@ -70,13 +70,15 @@ def store_heartbeat_diagnostics( else None ) cursor = db.cursor() + # COALESCE preserves existing column values when the v1.0.0 payload omits + # diagnostic fields (Pydantic resolves them to None). cursor.execute( """UPDATE heartbeats - SET reset_reason = ?, - heap_free = ?, - heap_min_free = ?, - last_disconnect_code = ?, - recent_events = ? + SET reset_reason = COALESCE(?, reset_reason), + heap_free = COALESCE(?, heap_free), + heap_min_free = COALESCE(?, heap_min_free), + last_disconnect_code = COALESCE(?, last_disconnect_code), + recent_events = COALESCE(?, recent_events) WHERE device_id = ?""", ( hb.reset_reason,