v2.2
May 2026
What's New
Multi-Environment Sync Queue
- New Sync All button in the sidebar header — opens a checklist to select environments and add them to the sync queue
- All syncs (single and multi-environment) now run through a single serial queue — no parallel Apple API calls, no race conditions
- The queue advances automatically after each environment finishes, saving progress along the way
- While the queue is running, a progress banner appears in the header showing which environment is syncing and how many remain
Queue-Aware Run Sync Button
- The Run Sync button now enqueues rather than triggering immediately — clicking it while another environment is syncing adds it to the queue rather than blocking or starting a parallel sync
- While an environment is waiting in the queue, the button shows In Queue in a muted style
- The button correctly shows Stop Sync when that environment's sync is active, even after switching away and back
Stop & Save from the Banner
- Stop & Save in the queue progress banner stops the currently-running sync, saves all progress, and advances the queue to the next environment
- Cancel All stops the current sync and clears the entire queue — both actions show a confirmation dialog
Bug Fixes
- Fixed environment switching being blocked while a sync was running — you can now browse Dashboard, Devices, and Export freely on any environment while another is syncing
- Fixed Run Sync button reverting to its idle state when switching away from an environment mid-sync and returning
- Fixed Stop & Save in the banner having no effect when the user had switched to a different environment
- Fixed sync log showing empty when switching away from an environment mid-sync and returning
Upgrade Notes
No migration required. The sync queue is in-memory and resets on app restart.