Repository navigation
[build-tools] Avoid cold runtime scans with preinstalled WDA - #4618
Conversation
This comment has been minimized.
This comment has been minimized.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4618 +/- ##
==========================================
+ Coverage 74.37% 74.38% +0.02%
==========================================
Files 1027 1028 +1
Lines 50215 50242 +27
Branches 10856 10859 +3
==========================================
+ Hits 37342 37368 +26
- Misses 11883 11884 +1
Partials 990 990 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
37dfb6b to
6c88224
Compare
6c88224 to
3d19a14
Compare
|
✅ Thank you for adding a changeset! |
|
Production QA confirms a nice win: ~90% lower median cold-start time on fresh hosted workers. Codex ran the tests after production promotion and verified the helper actually loaded on each diagnostic VM. On Xcode 26.6/iOS 26.5, preparation + first Appium connection took 10.14 / 13.27 / 10.56s, versus 107.39s for a fresh legacy control. The control logged an 81.18s runtime scan and reproduced a partial recording without a manifest. Optimized captured logs contained no runtime scan; all three ~150s recordings saved manifests and fully decoded without errors. Benchmark evidence. The ordinary API smoke also passed: 7.22s first Appium connection after 68.25s allocation-to-ready, app interaction/screenshots/source, and a 150s hold. Its complete 161.73s recording decoded without errors; worker logs confirmed preinstalled WDA without a client override. Security remained enabled. Owned sessions are stopped and monitoring is disabled. These are sampled results (10/20 GB medium workers), not a fleet guarantee; download-failure fallback recording and broader runtimes remain unverified. — Codex |
Why
Cold WDA startup can trigger a slow Simulator runtime scan.
How
Use Appium’s matching preinstalled WDA runner, with a bounded download and fallback to xcodebuild. Security protections stay enabled. The release note is an @expo/build-tools patch changeset.
Test Plan
Production QA passed on three fresh Xcode 26.6/iOS 26.5 workers: preparation + first Appium connection 10.14 / 13.27 / 10.56s, versus 107.39s for a fresh legacy control with an 81.18s runtime scan. Optimized captured logs contain no runtime scan; all three ~150s recordings saved manifests and fully decoded. Legacy recording was partial, without a manifest.
Ordinary API smoke passed app interaction, screenshots/source and 150s hold, with a fully decoded 161.73s video. Allocation took 68.25s; first Appium connection took 7.22s. Worker logs confirm preinstalled WDA without a client override.
66 focused tests, lint/format, Node 22/24 CI and changeset checks passed. Prior Tart Xcode 27/iOS 27 validated recording, real 60s timeout and xcodebuild fallback (34.7s first connection). Local typecheck retains 7 existing non-WDA errors.
Limits: sampled workers had 10/20 GB RAM; this is not a fleet guarantee. Download-failure fallback recording and broader runtimes remain unverified. Ordinary API logs expose no direct helper hash.
Authorship and LLM use
Gabe directed and reviewed the original patch. Codex implemented it, fixed Szymon’s timeout finding, and rebased/moved the release note to a changeset; human review of the follow-up is pending.
— Codex