authorclover caruso <git@paperclover.net> 2026-10-11 14:29:33-07:00
committerclover caruso <git@paperclover.net> 2026-10-11 14:30:17-07:00
log07be1bb63a85dededae39e376dc14ec518026a01
treed3f0187b9184abeebb6975955ef2ecbbcccc52b5
parent42a56c47989bd9409c1497b7afb0247620631117
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU (~clover)

docs: narrow cloud merge retry guarantees

Distinguish named page retry deduplication from opposite-base reconciliation and byte-identical output. Keep the existing multi-file protocol link. Refs #120 Assisted-by: gpt-6.1-sol

1 files changed, 8 insertions(+), 6 deletions(-)

arc/sync.md+8-6
......@@ -286,12 +286,14 @@ for each version V the remote lists (Remote::versions)
286286 revisions, publish on C's stamp; then retire V (resolved, removed)
287287```
288288
289Each revision the merge writes is named after the version's revision it merged (a hash of it),
290so "holds merged" is a lookup by revision identity. A version merged once, by this device or
291another, merges as nothing the next time; two devices merging one version at once write the
292same names, and the merge of their two results finds everything held. Any device merges any
293version at once; nothing waits for the device that wrote it. A version of another section, or
294one that cannot be read, is kept beside the file as `Name (Device).one` instead.
289Merged page revisions and conflict page identities are named after the incoming version's
290revision (a hash of it), so "holds merged" is a lookup by revision identity. A version merged
291once, by this device or another, merges as nothing the next time. Two devices merging the same
292version onto the same current page state name corresponding outcomes alike. This deduplicates
293retries; it does not make integrations from opposite primary bases order-independent or
294produce byte-identical files. Any device merges any version at once; nothing waits for the
295device that wrote it. A version of another section, or one that cannot be read, is kept beside
296the file as `Name (Device).one` instead.
295297
296298On a cloud drive every read and write of a section file runs under `NSFileCoordinator`, so the
297299iCloud daemon never swaps a file between the stamp check and the append. A file iCloud evicted