Repository navigation
Slow lane: a target boots a real simulator and emulator, and off shuts both down #372
Copy link
Copy link
Closed
Labels
task:readyAn agent may implement it.An agent may implement it.
Description
Activity
- addedtask:draftScope written; technical spec, approval, or deps missing.Scope written; technical spec, approval, or deps missing.
on Oct 5, 2026 - changed the title
[-]The warm pool in status, doctor, one event, and the console[/-][+]Slow lane: a target boots a real simulator and emulator, and off shuts both down[/+]on Oct 5, 2026 Now
task:ready: approved, technical spec present, #371 closed.- removedtask:draftScope written; technical spec, approval, or deps missing.Scope written; technical spec, approval, or deps missing.
on Oct 6, 2026 - added 13 commits that reference this issue
on Oct 6, 2026 Slow lane run: green
Ran
scripts/slow-e2e.sh e2e/slow-warm-pool.test.tson commit 8d62bbc (branchtask/372, PR #419), on a Mac with an iOS runtime and an Android system image.- Result: 1 file, 3 tests passed, 0 failed. Duration 957 s. Exit code 0.
- Test 1 (target of one iPhone and one Android phone): one ready simulator and one ready emulator before any lease. The log shows both
device.readyevents (boot 38 s and 170 s) before the first lease. 241 s. - Test 2 (first lease of each targeted model): no
bootingprogress; after release each device is ready again. 447 s. - Test 3 (
warmPool.enabled: false): the released simulator and emulator both endshutdown, and each boots on the next lease. 269 s.
The skip-when-a-platform-is-missing case was not run, because this machine has both platforms.
Closing: the issue's hardware lines are proven. PR #419 is still a draft and has to be merged on its own.
Written by an agent.
- added a commit that references this issue
on Oct 10, 2026
Metadata
Metadata
Assignees
Labels
task:readyAn agent may implement it.An agent may implement it.
Part of #359.
Scope
After this PR the slow lane proves the warm pool on real devices: a target boots a real iOS simulator and a real Android emulator ahead of any lease, the first lease of each is granted without a boot, and with the pool off a released device of each platform ends shut down. Nothing changes for a user; this is the proof the feature's hardware lines ask for.
In short
The fast lane runs every other task against fake drivers. Two things only a real device can prove: that a target's create-and-boot path works end to end through
simctland the emulator, and that the Android snapshot restore followed by the pool's shutdown leaves an emulator that boots cleanly next time.If this goes wrong: the slow lane is red while the fast lane is green, which is exactly the point.
Technical spec
File and line references are to
mainat 4a52f6e, after #371.Modules touched
e2e/slow-warm-pool.test.ts, in the shape ofe2e/slow-ios-smoke.test.ts: a daemon with a temporarySIMLOCK_HOME, config with one iOS and one Android target of count 1 on the newest installed runtime of each,maxConcurrentBoots: 2. It waits for twodevice.readyevents, leases each by model with--jsonand asserts nobootingprogress line, releases both and asserts each is ready again (iOS after a rewarm boot, Android after its restore). It then restarts the daemon withwarmPool.enabled: false, leases and releases each, asserts both endshutdown, and leases each once more to prove the next boot is clean.scripts/slow-e2e.sh: the new file joins the lane it runs (no new lane). The test skips with a named reason when either platform has no installed runtime or image, as the existing slow tests do.docs/internal/ARCHITECTURE.mdtest-lanes paragraph lists the file.Contract and event changes
None.
Rules in play
testing.mdrules 1 and 2: each assertion names the event or output it checks.delivery.mdrule on real devices: this runs only throughscripts/slow-e2e.sh, never in CI.safety.mdrule 1: the test's devices live under the temporary root and are deleted by its teardown.Tests
bootingprogress.warmPool.enabled: false, a released simulator and a released emulator are bothshutdown, and each boots on the next lease.Done when
scripts/slow-e2e.shrunse2e/slow-warm-pool.test.tsgreen, and its log names the twodevice.readyevents before the first lease.Out of scope
bug:new.Depends on
Approval
Written by an agent.