Repository navigation
fix(doctor): warm the runner cache only for simulators this host discovered - #3226
Conversation
…overed Doctor's fresh-machine warmup picked its simulator from provider-first inventory, which drops the discovery source. A simulator a provider reported is not on this host, yet doctor started a local xcodebuild runner build for it. Doctor now keeps the inventory source and names a warmup device only from devices this host discovered.
Size Report
Startup median (7 runs, lower is better):
|
|
This PR is ready as of fb0c11a. All 19 checks pass, and there are no conflicts. I ran no tests locally; I read the diff and the pre-change code, and I did not reproduce the prewarm counts or the Linux parity run from the PR body. No live |
|
Summary
On macOS, three provider-scenario doctor tests started a real background
xcodebuild build-for-testing. Doctor's warmup read inventory without its discovery source. The scenario worlds supply their simulator through a provider inventory source, so doctor treated it as a host simulator.Doctor now keeps the inventory source and picks a warmup device only from host-discovered devices. Device selection uses the same rule before local Apple selection (
source === 'local'). The session-device path does not change. In production, provider inventories list only provider-owned devices, whichisProviderDevicealready skipped.Rejected: Apple tool providers on the worlds, so #3225's gate applies. Doctor gets a provider scope only when one device resolves. With #3225 applied, 3 of 5 warmups still started.
4 files.
hermetic-signal-setup.tsis not changed.Validation
Tested commit
fb0c11a013, macOS:prewarmAppleRunnerCachecount,vitest run --project provider-integration test/integration/provider-scenarios/:The remaining doctor warmup is the
apple-platform-output-guardsession path, inside the Apple tool scope #3225 gates. With both PRs, 70/70 files pass.remote-proxy-parityfails on main before and after (#3225 fixes it).node:22-bookworm): base939a4ce070and head have the same status for all 226 provider-integration tests, and all doctor tests pass. The same 34 tests fail at both: 33 because the image has nozip, and 1 on lease-upload timing.pnpm check:affected --run: all runnable checks pass.