Symptom

Local DataPoint nodes (owned by this device, no server) had no persistent log — snapshots were written to the node’s meta.snapshot field but the full time-series was never recorded. The graph screen had no data to show for a local DataPoint.

Root cause

FileOperations had no append-log contract; ClientNodeManager.postSnapshot() only called fileOperations.update(node) for local nodes (overwrites the node) and never wrote to a time-series log. GraphScreen only fetched data via NodeHttp (server SSE/REST), so local DataPoints always produced an empty graph.

Fix

Prevention