GeoLeaf Core API - v3.19.0
    Preparing search index...
    • Reads a freshness marker off a row.

      🛑 ONE AUTHOR, AND IT IS HERE. push-engine.ts reads the marker the server returns after a write; this module reads the one it returns before being overwritten. Two copies would be two definitions of "what counts as a marker" — and the half of the cycle that drifted would compare against something the other half never wrote.

      🛑 THE SERVER MOVES ITS MARKER ON EVERY WRITE, AND THE RECORD KEPT THE OLD ONE. The next modification of the same entity then left filtered on a marker the server no longer held, matched nothing, and counted the device's own write as someone else's — a false conflict, which a journal of conflicts would have recorded as real. That defect is what made this function exist (17/09/2026); it moved here when the re-read became its second caller.

      ⚠️ An empty string, null and undefined all mean "no marker": a row without the column, or no row at all. Keeping the old one would guarantee that false conflict on a server that moves it; null sends the next write unfiltered, which is what a layer without a marker does anyway.

      Parameters

      • row: Record<string, unknown> | null | undefined

        The row, as the server returned it.

      • versionProperty: string

        The layer's marker column.

      Returns VersionMarker | null

      The marker, or null.