iOS: give ListLifecycle navigation waits headroom for stalled CI queries (#97) #28

Merged
backmeupplz merged 4 commits from fix/97-edge-gesture-pop into main 2026-10-13 04:44:37 +00:00
backmeupplz commented 2026-10-13 00:57:17 +00:00 (Migrated from github.com)

Fixes agentboard #97 (https://agentboard.icefish-betta.ts.net/#97).

Cause

iOS (offline-progress) failed in ListLifecycle.testListPositionSurvivesButtonAndGestureBack with "Edge gesture did not pop details". The failing job's screen recording shows the slow edge drag did pop details: mid-transition at t≈96.4s details slide off to the right, and by t≈96.9s the list is back with "Title 138" at its original height and the list toolbar restored. After that the screen stops changing (from t≈97.9s), and the first exists == false query for "Fixture details" took ~9.2s before being retried, so the 10s waiter timed out at t≈107.8s. The same runner showed the same ~10s stall after the earlier Back-button return (one isHittable lookup took 10.8s and still succeeded). Passing runs answer the post-pop check in under a second, and three local iterations did too. So this was the app/simulator not answering accessibility queries for ~10s on a loaded runner, not a cancelled gesture.

Change

All navigation waits in this test use a 30s upper bound instead of 10/15s. They are waits, not sleeps, so normal runs are unaffected. The gesture iteration still performs only the real interactive edge drag (no Back-button fallback, no retry), and still requires details to disappear, the anchor title to be hittable, and its vertical frame to match within 3pt. A genuinely cancelled gesture leaves details on screen and still fails with the same message.

Verification

  • Local (Xcode 27, iPhone 17 simulator): -only-testing:UITests/ListLifecycle -test-iterations 3 -run-tests-until-failure → 3/3 passed.
  • CI: iOS (offline-progress) rerun several times on this head (results in the ticket).
Fixes agentboard #97 (https://agentboard.icefish-betta.ts.net/#97). ## Cause `iOS (offline-progress)` failed in `ListLifecycle.testListPositionSurvivesButtonAndGestureBack` with "Edge gesture did not pop details". The failing job's screen recording shows the slow edge drag did pop details: mid-transition at t≈96.4s details slide off to the right, and by t≈96.9s the list is back with "Title 138" at its original height and the list toolbar restored. After that the screen stops changing (from t≈97.9s), and the first `exists == false` query for "Fixture details" took ~9.2s before being retried, so the 10s waiter timed out at t≈107.8s. The same runner showed the same ~10s stall after the earlier Back-button return (one `isHittable` lookup took 10.8s and still succeeded). Passing runs answer the post-pop check in under a second, and three local iterations did too. So this was the app/simulator not answering accessibility queries for ~10s on a loaded runner, not a cancelled gesture. ## Change All navigation waits in this test use a 30s upper bound instead of 10/15s. They are waits, not sleeps, so normal runs are unaffected. The gesture iteration still performs only the real interactive edge drag (no Back-button fallback, no retry), and still requires details to disappear, the anchor title to be hittable, and its vertical frame to match within 3pt. A genuinely cancelled gesture leaves details on screen and still fails with the same message. ## Verification - Local (Xcode 27, iPhone 17 simulator): `-only-testing:UITests/ListLifecycle -test-iterations 3 -run-tests-until-failure` → 3/3 passed. - CI: `iOS (offline-progress)` rerun several times on this head (results in the ticket).
Sign in to join this conversation.
No description provided.