mirror of
https://github.com/exo-explore/exo.git
synced 2026-09-12 21:38:59 -04:00
## Motivation The exo backend already supports `--fast-synch` / `--no-fast-synch` CLI flags and the `EXO_FAST_SYNCH` environment variable, but there was no way to toggle this from the macOS app UI. Users who want fast CPU-to-GPU synchronization for RDMA with Tensor Parallelism had to use CLI flags. ## Changes - **ExoProcessController.swift**: Added `fastSynchEnabled` UserDefaults-backed property and pass `EXO_FAST_SYNCH=on` to the exo process environment when enabled. - **SettingsView.swift**: Added a "Performance" section to the Advanced tab with a "Fast Synch Enabled" toggle, an info icon (ⓘ) tooltip explaining the feature and trade-offs, and a "Save & Restart" button. ## Why It Works Follows the exact same pattern as the existing `offlineMode` and `enableImageModels` settings — UserDefaults persistence, `@Published` property with `didSet`, environment variable passthrough in `makeEnvironment()`, and pending state with Save & Restart in the settings UI. The `EXO_FAST_SYNCH=on` value matches what the Python backend already reads in `main.py`. ## Test Plan ### Manual Testing <!-- Hardware: macOS app --> - Open Settings → Advanced tab → verify "Performance" section with "Fast Synch Enabled" toggle appears - Hover the ⓘ icon → verify tooltip explains the feature and GPU lock trade-off - Toggle on → click "Save & Restart" → verify process restarts with `EXO_FAST_SYNCH=on` in env - Close and reopen Settings → verify the toggle state persists - Verify "Save & Restart" button is disabled when no changes are pending ### Automated Testing - Existing settings patterns are well-established; no new automated tests needed for this UI toggle --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>