fix(sync): offline detector wiped device name, auto_sync, and metadata on every transition

setOfflineMode/setOnlineMode only mean to flip sync_enabled, but they
called the full-row UpdateDevice with Go zero values — which wrote
DeviceName: "" and NULLed auto_sync/sync_frequency_minutes/
device_metadata on the device row at every offline->online flip. New
targeted SetDeviceSyncEnabled query touches exactly that column; the
real settings update keeps using UpdateDevice.

Caught as part of the H4 helper-census pass (plan §5.4 erasure list).
This commit is contained in:
John O'Keefe committed 2026-10-17 16:38:00 -04:00
1 parent 188ae076ab
commit 082a3e0c3c
4 files changed
+53 -6

No files matched your search

+8
View File
@@ -1669,6 +1669,14 @@ SET
WHERE id = $1
RETURNING *;
-- name: SetDeviceSyncEnabled :one
UPDATE devices
SET
sync_enabled = $2,
updated_at = NOW()
WHERE id = $1
RETURNING *;
-- name: UpdateDeviceLastSeen :one
UPDATE devices
SET