Variable OFFLINE_REPLAY_CONFLICT_POLICIESConst

OFFLINE_REPLAY_CONFLICT_POLICIES: Readonly<Record<ReplicaConflictPolicy, OfflineReplayConflictPolicyRuleV1>> = ...

The classification, keyed by policy so it is exhaustive at compile time: a new member of the shipped ReplicaConflictPolicy union fails the build here rather than falling through to a default the SDK never reasoned about.

The rule that decides the two arms is one question — can the complete effect on the durable edit queue be computed from queue-side state alone?

  • manual retains the edit for a reviewer. That is the whole of the policy, and it needs nothing remote.
  • server-wins means the server's committed row stands, so the queued edit lost and is abandoned. Abandoning an edit needs no remote value. What the SDK does not do under this policy is adopt the server's content into local state — that needs the remote row, and the queue does not own local read state at all. The scope is stated rather than glossed.
  • client-wins means the local edit should win, but the server has already refused it. Making it win requires an override the mutation transport does not define. Requeuing it locally would be a retry wearing the policy's name, so the policy is refused instead.
  • last-writer-wins needs both writers' edit times. A conflicted acknowledgement carries an opaque ServerGenerationCursor — an ordering token, not a comparable clock — so the SDK cannot tell who wrote last.