Problem
testAbandonedTreeCaptureSkipsQuerySweepAndHonorsWarmupExemption still flakes after #2847. CI job 107658159842 failed at RunnerTests+SnapshotCapturePlanOccupancyTests.swift ~153, which expects a reason containing "tree capture exceeded". The log shows MAIN_THREAD_WORK_ABANDONED operation=snapshot_viewport slice=1.0 instead: the viewport read before the stubbed tree block overran its 1 s cap (RunnerTests+SnapshotAcquisition.swift ~44-55). #2847's uncapped warm-up read does not guarantee that the next capped read fits.
Required behavior
- Inject deterministic viewport geometry into this test's target, so the only block the plan can abandon is the stubbed tree capture.
- Assert that the blocking stub was actually entered before asserting tree-specific recovery.
- Make the timeout name the operation that stalled. Today a viewport stall reports "preparing tree snapshot".
Refs #2491, #2847.
Problem
testAbandonedTreeCaptureSkipsQuerySweepAndHonorsWarmupExemptionstill flakes after #2847. CI job 107658159842 failed atRunnerTests+SnapshotCapturePlanOccupancyTests.swift~153, which expects a reason containing "tree capture exceeded". The log showsMAIN_THREAD_WORK_ABANDONED operation=snapshot_viewport slice=1.0instead: the viewport read before the stubbed tree block overran its 1 s cap (RunnerTests+SnapshotAcquisition.swift~44-55). #2847's uncapped warm-up read does not guarantee that the next capped read fits.Required behavior
Refs #2491, #2847.