What syncs
- Block definitions — items, lock type, activation schedule, AI task context, enforcement level.
- Preferences — Pomodoro defaults, AI settings, UI choices.
- Daily stats rollups — aggregated focus minutes and drift counts per day.
- Subscription entitlements — Pro and AI Focus access propagate to every signed-in device.
What doesn't sync
- Per-second usage logs — the raw activity stream stays on the device that recorded it.
- Screenshots — never written to disk, never synced.
- The classifier drift log — local to the device.
- Daemon enforcement config — every Mac enforces from its own root-owned config so a network outage never breaks enforcement.
Sync substrate
Sync runs through our authentication and storage partner on EU-hosted infrastructure. Your blocks and rollups live keyed to your account. The Mac app reads and writes through an authenticated API; the daemon doesn't touch the network and works entirely off the local config.
Conflict resolution
Block config uses last-write-wins. If you edit the same block on two Macs simultaneously, the later save overwrites the earlier one. Sub-second conflicts are rare; deliberate concurrent edits are unsupported.
Signing out and switching Macs
- Sign out on Mac A: local blocks and stats stay on Mac A; the server copy is untouched.
- Sign in on Mac B: server blocks and stats download. Existing local blocks on Mac B are merged in (no destructive overwrite).
- Sign in on Mac A again later: server config syncs back down — Mac A may have outdated blocks until the next sync tick.
Signing out does NOT disable active blocks on the device — the daemon enforces independently of account state. To uninstall cleanly, end your blocks first.