You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stabilizes iOS runner sessions for navigation-causing selector taps by switching resolved iOS/macOS element activation to coordinate-first taps, probing ready runner sessions with a bounded uptime preflight, and deleting the legacy recent-success health cache and skipped-preflight recovery metadata.
Adds ADR 0005 and updates domain docs for resolved element activation and runner lifecycle behavior. Touched 10 files, scoped to iOS runner lifecycle, Swift runner interaction, and internal docs.
Validation
Verified with focused runner unit coverage: pnpm exec vitest run --project unit src/platforms/ios/__tests__/runner-session.test.ts src/platforms/ios/__tests__/runner-command-retry.test.ts passed 47 tests. pnpm check:quick passed. pnpm build:all passed, including Node build plus iOS/macOS XCTest runner builds.
Dogfooded on the installed React Navigation app org.reactnavigation.playground in session ax-reactnav-zoomout: 5 Back/Navigate cycles stayed fast, snapshots stayed around 0.21-0.25s, a post-idle snapshot returned in 0.17s, diagnostics showed ready_session uptime preflight, and daemon.log had no TEST EXECUTE FAILED, no Failed to get matching snapshot, and no unexpected runner relaunch.
pnpm check:unit was attempted and failed in unrelated Android .aab install tests: one bundletool install timeout and one expected TOOL_MISSING assertion receiving COMMAND_FAILED.
Updated the PR with an explicit uptime fast path in the Swift runner. The readiness probe is now answered directly by the HTTP listener before command journaling, the serial command queue, app activation, and main-thread XCTest dispatch. It still uses the existing command protocol, so we avoid adding a second health endpoint while removing the XCTest/app costs from the preflight.\n\nDogfood on React Navigation Example after rebuilding the local runner cache:\n- startup read-only snapshot skipped preflight as expected\n- ready-session preflights measured 2 ms, 3 ms, 4 ms, and 3 ms\n- successful Navigate to Details tap: preflight 4 ms, wall 0.71 s\n- post-tap snapshot: preflight 3 ms, snapshot_capture 120 ms, wall 0.19 s\n- daemon log had no TEST EXECUTE FAILED, runner restart, or snapshot matching failure lines for this session\n\nAlso added a runner journal regression test asserting uptime is not accepted into the command journal, and documented the probe contract in ADR 0005.
Cleanup pass done and pushed. The only additional code change is in runner-session: read-only and mutating commands now share one post-preflight send helper, and readiness decision derives read-only/probe status internally instead of being passed an options object. I also scanned for stale freshness-cache branches and skipped-preflight recovery metadata and found none remaining.
Validation after cleanup: focused iOS runner Vitest suite passed, pnpm check:quick passed, git diff --check passed, and pnpm build:xcuitest passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stabilizes iOS runner sessions for navigation-causing selector taps by switching resolved iOS/macOS element activation to coordinate-first taps, probing ready runner sessions with a bounded uptime preflight, and deleting the legacy recent-success health cache and skipped-preflight recovery metadata.
Adds ADR 0005 and updates domain docs for resolved element activation and runner lifecycle behavior. Touched 10 files, scoped to iOS runner lifecycle, Swift runner interaction, and internal docs.
Validation
Verified with focused runner unit coverage:
pnpm exec vitest run --project unit src/platforms/ios/__tests__/runner-session.test.ts src/platforms/ios/__tests__/runner-command-retry.test.tspassed 47 tests.pnpm check:quickpassed.pnpm build:allpassed, including Node build plus iOS/macOS XCTest runner builds.Dogfooded on the installed React Navigation app
org.reactnavigation.playgroundin sessionax-reactnav-zoomout: 5 Back/Navigate cycles stayed fast, snapshots stayed around 0.21-0.25s, a post-idle snapshot returned in 0.17s, diagnostics showedready_sessionuptime preflight, and daemon.log had noTEST EXECUTE FAILED, noFailed to get matching snapshot, and no unexpected runner relaunch.pnpm check:unitwas attempted and failed in unrelated Android .aab install tests: one bundletool install timeout and one expectedTOOL_MISSINGassertion receivingCOMMAND_FAILED.