feat(ios): add an xcuitest source option to elementTree

LI
2d ago
+147-10

Expose the server’s opt-in XCTest snapshot through elementTree(undefined, { source: 'xcuitest' }), elementTreeRaw, and lim ios element-tree --source xcuitest. This reveals React Native testID views that the default accessibility tree omits.

The CLI forwards the choice through both direct connections and its persistent session daemon. Parsed/raw SDK calls reject XCTest point queries before sending them. Calls without a source retain existing behavior.

Validation at 83370dfd: complete SDK/CLI CI passes; local ./scripts/lint, SDK input tests (15), CLI forwarding tests (2), and CLI build pass. Live iOS 27 validation passes against staging server ec45825 from https://github.com/limrun-inc/limrun/pull/1692: parsed/raw trees, concurrent reads, testID frames, coordinate tap, and two CLI daemon reads.

Requires that server rollout before SDK and CLI publication. Older servers ignore source. XCTest snapshots omit separate-process web content and leave automation mode enabled for the simulator; the public method comments document both.

Customer guidance: https://github.com/limrun-inc/docs/pull/189 and https://github.com/limrun-inc/skills/pull/135.

Consumer integration also passes live on iOS 27.0: agent-device finds a non-accessible React Native view by testID, clicks it by selector, and verifies the state change.