15a6c7c710
INSERT OR REPLACE resolved a secondary UNIQUE conflict by deleting a different row (another PK) with capture suppressed and its ledger left live, so a pair diverged silently (LocalDb-003). The applier now uses INSERT ... ON CONFLICT(<pk>) DO UPDATE (DO NOTHING when every column is PK): a clash on another unique key aborts the entry, which is dead-lettered, and each node keeps its own row. Side effect: a remote update of a parent with ON DELETE RESTRICT children now applies instead of being dead-lettered. Also waits for the snapshot watermark in WipedPeer_SnapshotLiftsItsWatermark, which raced SnapshotComplete under full-suite load. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV