01b6dad782
* feat: opt-in iCloud sync for settings, providers, and usage snapshots
CloudKit (CKSyncEngine, private DB, zone CodexBarSync) syncs provider
configuration, a curated preferences subset, and per-device account/usage
snapshots across Macs. Secrets ride E2E-encrypted record fields with their
own opt-out; hooks and machine-local paths are structurally excluded from
sync payloads. Off by default (Settings -> iCloud Sync). Release packaging
now embeds a Developer ID provisioning profile authorizing the iCloud
entitlements; config.json gains a file watcher so external CLI edits apply
live. Includes fleet menu rows ("via <Mac> - 1h ago") backed by snapshots
and a schema deploy script (Scripts/cloudkit/deploy_schema.sh).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix: harden CloudKit sync engine per adversarial review
Verified against Apple's CKSyncEngine sample/docs: secret-free 0600 state
persistence, stale-pending drain, auto-sizing batches, error-embedded server
record conflicts, zoneNotFound recovery, account-change/sign-in restart,
capped quota backoff, unscoped first fetch. Distributed-behavior fixes:
enable-intent echo suppression (CLI-less Mac no longer reverts fleet-wide
enables), device-scoped snapshot records, apply-side secrets opt-out,
newer-schema conflict pause, fleet cache rehydration, pre-enable secrets
opt-out UI, Bash 3.2-safe deploy script.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
19 KiB
19 KiB