Symptom
Current iCloud Sync (shipped in 0.7.0-beta) is last-write-wins by file mtime for the entire automations.json. If two machines edit different automations simultaneously, one side's edits are silently overwritten.
Acceptance
- Per-automation merge by
id field.
- Conflict detection (same id, different
updated_at on both sides) → user-visible diff with manual resolution.
- Tombstones for deleted records so a deletion on machine A doesn't get resurrected by an old copy on machine B.
Scope
0.8.x. Documented in CHANGELOG [Unreleased] Planned for 0.8.x.
References
Future scope
- Also sync custom-LED paint snapshots (currently local-only).
- Also sync theme/setting preferences.
Symptom
Current iCloud Sync (shipped in
0.7.0-beta) is last-write-wins by file mtime for the entireautomations.json. If two machines edit different automations simultaneously, one side's edits are silently overwritten.Acceptance
idfield.updated_aton both sides) → user-visible diff with manual resolution.Scope
0.8.x. Documented in CHANGELOG
[Unreleased]Planned for 0.8.x.References
src-tauri/src/icloud_sync.rsicloud_sync_status,icloud_sync_push,icloud_sync_pullinsrc-tauri/src/lib.rsFuture scope