Enregistre l'issue d'un rapatriement pour UNE couche, en préservant celle des autres.
⚠️ Lecture-modification-écriture, et la clé est unique : deux rapatriements concurrents
sur deux couches pourraient se perdre l'un l'autre. C'est accepté ici, et le motif est
mesurable — pullLayer est déclenché par un geste utilisateur, un par un, et l'enjeu est un
marqueur d'affichage, pas une saisie. La règle du contrat (« une capture ne disparaît
jamais ») porte sur features et l'outbox, qui eux passent par des transactions.
Ne jette jamais : un rapatriement réussi ne doit pas être rapporté en échec parce que son
marqueur n'a pas pu s'écrire.
Enregistre l'issue d'un rapatriement pour UNE couche, en préservant celle des autres.
⚠️ Lecture-modification-écriture, et la clé est unique : deux rapatriements concurrents sur deux couches pourraient se perdre l'un l'autre. C'est accepté ici, et le motif est mesurable —
pullLayerest déclenché par un geste utilisateur, un par un, et l'enjeu est un marqueur d'affichage, pas une saisie. La règle du contrat (« une capture ne disparaît jamais ») porte surfeatureset l'outbox, qui eux passent par des transactions.Ne jette jamais : un rapatriement réussi ne doit pas être rapporté en échec parce que son marqueur n'a pas pu s'écrire.