Skip to content

NJ-131 fix(ios): preserve session on AX snapshot failure#637

Closed
builder-bot-1 wants to merge 1 commit into
callstack:mainfrom
builder-bot-1:NJ-131-ios-ax-snapshot-failure
Closed

NJ-131 fix(ios): preserve session on AX snapshot failure#637
builder-bot-1 wants to merge 1 commit into
callstack:mainfrom
builder-bot-1:NJ-131-ios-ax-snapshot-failure

Conversation

@builder-bot-1

Copy link
Copy Markdown

Summary

  • catch Swift errors and Objective-C exceptions around iOS XCTest snapshot root capture, classify kAXErrorIllegalArgument as IOS_AX_SNAPSHOT_FAILED, and preserve the runner session
  • retry app-root AX failures from shallow fallback roots and surface partial snapshot warnings through daemon/client output
  • route simple iOS find id/label/text/value click through direct runner selector lookup before the full snapshot path
  • document the scoped implementation vs. Maestro/Appium behavior in docs/adr/0003-ios-ax-snapshot-failure.md

Verification

  • pnpm test:unit -- src/platforms/ios/tests/runner-client.test.ts src/platforms/ios/tests/runner-session.test.ts src/daemon/handlers/tests/snapshot-handler.test.ts src/daemon/handlers/tests/find.test.ts src/daemon/handlers/tests/interaction.test.ts (ran full unit suite: 1,940 passing)
  • pnpm check:quick
  • pnpm build:xcuitest:ios
  • pnpm build

Manual QA

  • Not run: no local iOS app fixture/simulator screen that reproduces kAXErrorIllegalArgument in this workspace. The runner build and regression tests cover typed error preservation, warning propagation, and direct find-click routing.

@builder-bot-1

Copy link
Copy Markdown
Author

Closing per Linear request. We'll keep this as an internal-only patch.

@builder-bot-1 builder-bot-1 deleted the NJ-131-ios-ax-snapshot-failure branch June 1, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant