Record a reviewer's SyncConflictResolution against the durable queued
edit that raised the conflict.
The edit transitions per the choice — accept-client requeues it as
pending for another delivery attempt, accept-server and discard abandon
it as cancelled — the closure lands in the edit's audit history, and the
conflict leaves the record, so no later replay pass and no later status
snapshot re-surfaces it.
Two inputs are refused rather than approximated:
merge, and any resolution carrying mergedAttributes or
mergedGeometry. A merged value would have to replace the queued edit's
payload, and the edit's id is a digest of that payload bound to an
idempotency key the transport may already have seen. Rewriting it locally
would forge a different write under an identity that was promised for
another one.
resolvedBy beyond its id. A SyncActor's display name and kind are
presentation, and the queue persists identities, not profiles.
Record a reviewer's SyncConflictResolution against the durable queued edit that raised the conflict.
The edit transitions per the choice —
accept-clientrequeues it aspendingfor another delivery attempt,accept-serveranddiscardabandon it ascancelled— the closure lands in the edit's audit history, and the conflict leaves the record, so no later replay pass and no later status snapshot re-surfaces it.Two inputs are refused rather than approximated:
merge, and any resolution carryingmergedAttributesormergedGeometry. A merged value would have to replace the queued edit's payload, and the edit's id is a digest of that payload bound to an idempotency key the transport may already have seen. Rewriting it locally would forge a different write under an identity that was promised for another one.resolvedBybeyond its id. ASyncActor's display name and kind are presentation, and the queue persists identities, not profiles.