feat(ios): route Simulator snapshots through AX bridge - #2279
Conversation
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks:
Top changed packed files
|
|
Review at exact head
The route otherwise reuses the Apple runtime/facade and shutdown seams cleanly, and the merged source lifecycle already provides authoritative OS process-start-time checks around acquisition. |
|
Addressed all three actionable review items in fd3c6ac:
Also normalized fallback lineage to the declared targetId/generation fields only. Planted-red failures were observed for items 1 and 2 before the fix. Exact-head pnpm check:affected --run is green: 731 test files, 5,589 tests. The updated iOS native lane is running on this head. |
|
Re-review at exact head |
fd3c6ac to
1519222
Compare
|
Follow-up from the exact-head iOS rerun: after the requested evidence assertion was corrected, the lane exposed a real bridge-depth bug rather than a test-only mismatch. Regular --depth 1 was being sent to the native bridge as maxDepth: 1, so the TypeScript presenter never received the deeper structural nodes needed to project the visible child to presented depth 1. Fixed in 1519222: only rawTraversalDepth bounds native acquisition; regularPresentedDepth remains presentation-only. A planted-red adapter test observed 1 instead of the bounded maximum 10, while raw depth 1 remained 1. Focused tests pass, and the rebased exact-head affected gate is green with 734 files / 5,624 tests. |
|
Exact-head iOS rerun is green at 1519222. It passed clean-install bridge preparation, targeted XCTest regressions, public CLI preflight, Settings replay, the fixture-backed E2E scenario with the corrected depth frontier, and gesture replay. All PR checks are now green. |
|
The exact-head depth fix is correct: regular One readiness item remains: CI reports +35.2 kB npm unpacked (+11.2 kB gzip). Because this exceeds the repository threshold, please itemize the justified package growth and record which materially smaller designs were considered and why they were rejected. Until that rationale is recorded, I’m holding |
Summary
Closes #2197.
Eligible local iOS Simulator snapshots now use the packaged AX bridge and existing TypeScript presentation engine. XCTest remains the typed, generation-scoped fallback; a failed bridge attempt disables that generation, while a relaunched app may try again.
Fallback comparison now fails closed: stale-target failures re-resolve lineage before XCTest, and unresolved generations receive a unique typed residue. Regular depth remains a presentation constraint, so the bridge acquires the bounded full tree needed to preserve visible descendants; raw depth still bounds native traversal.
Providers, physical devices, tvOS, macOS, custom actions, interactions, and runner prewarm are unchanged. Scope is 23 files in the Apple snapshot family and shared identity contracts.
Validation
Validated head 1519222.