Follow-up to the zero-config mobile setup-automation work (#378 / #405 / #406).
Context
#378 adds applyBootCapDefaults, which auto-applies (apply-if-unset) the iOS launch caps the e2e currently pins by hand: appium:wdaLaunchTimeout, appium:simulatorStartupTimeout, and appium:isHeadless (CI). Because the e2e configs set these explicitly, the new defaults are never exercised end-to-end — we only have unit coverage.
Proposal
In the RN-iOS and Flutter-iOS e2e configs, drop the explicit wdaLaunchTimeout / simulatorStartupTimeout / isHeadless caps and rely on applyBootCapDefaults, giving a direct CI verification that the defaults produce a green run.
Keep (do NOT drop)
Risk
applyBootCapDefaults sets wdaLaunchTimeout: 720000 unconditionally, whereas the e2e currently uses an env-conditional value (180s with a prebuilt WDA, 720s cold). The more generous default ceiling could mask a slow first session. Suggest trialling on one platform (RN-iOS or Flutter-iOS) before doing both.
Deliberately split out of #405/#406 to keep their CI changes low-risk.
Follow-up to the zero-config mobile setup-automation work (#378 / #405 / #406).
Context
#378 adds
applyBootCapDefaults, which auto-applies (apply-if-unset) the iOS launch caps the e2e currently pins by hand:appium:wdaLaunchTimeout,appium:simulatorStartupTimeout, andappium:isHeadless(CI). Because the e2e configs set these explicitly, the new defaults are never exercised end-to-end — we only have unit coverage.Proposal
In the RN-iOS and Flutter-iOS e2e configs, drop the explicit
wdaLaunchTimeout/simulatorStartupTimeout/isHeadlesscaps and rely onapplyBootCapDefaults, giving a direct CI verification that the defaults produce a green run.Keep (do NOT drop)
appium:udidpin.resolveIosUdidpicks the newest-runtime sim matching the device name, which can differ from CI's pre-booted instance — reintroducing the react-native iOS E2E: flaky first-session (api) cold-start — FrontBoard / sim-boot / socket #359 "booted a different sim" flake. Keep pinning the exact pre-booted UDID.derivedDataPath+usePrebuiltWDA. Not covered byapplyBootCapDefaults(it only sets timeouts/headless); the prebuilt-WDA reuse must stay.Risk
applyBootCapDefaultssetswdaLaunchTimeout: 720000unconditionally, whereas the e2e currently uses an env-conditional value (180s with a prebuilt WDA, 720s cold). The more generous default ceiling could mask a slow first session. Suggest trialling on one platform (RN-iOS or Flutter-iOS) before doing both.Deliberately split out of #405/#406 to keep their CI changes low-risk.