feat(ios): productionize Simulator AX snapshot bridge - #2277
Conversation
|
|
Review pass: correctness and implementation efficiency This is not merge-ready yet. Please keep the repair narrow and address these in order:
The diff is currently +3,222 lines (+2,291 outside tests/docs) for a dormant facet. I would not split the feature solely for line count, but I would do a tightening pass around the decisions above: one public outcome API, one absolute deadline, one helper invalidation rule, request-scoped limits, and a cache key made only from build identity. Then refresh live evidence with warm reuse, relaunch/generation, cancellation/timeout recovery, and bounded payload cases on the corrected exact head. |
|
BLOCKED at exact head Confirmed blockers:
The iOS Smoke failure is on the unchanged XCTest Settings route and appears unrelated to this dormant facet, but the head remains non-merge-ready until that job is green or authoritatively rerun. Dependencies #2192/#2231 are closed, ADR 0004 supports the facet, the direct Simulator evidence is useful, and no production route was added. |
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. Top changed packed files
|
|
Addressed all actionable human comments on exact head
Proof:
All requested comments are addressed. READY for review; not merged. |
|
Second quality pass on finished head The prior correctness fixes are real and the focused/hosted checks are green, but I do not think this is ready yet. There are three behavioral blockers and a small tightening pass:
Validation from this review: all current GitHub checks are green; local focused Vitest passed 6 files / 23 tests. I could not repeat live Simulator validation because |
|
Sentinel recheck at exact head
All exact-head checks are green and the size reconciliation is itemized, but these are correctness blockers in the dormant facet itself; do not apply |
|
Addressed all five points in 597cb16, with the evidence revision in 6e55aba.
Validation: |
|
Follow-up to the mapped resolution: the exact-head Bundle Size job found that its base-checkout step preserves only |
|
Second exact-head Bundle Size failure was the expected pre-bridge base case: |
|
Sentinel re-review at exact head
The prepared-binary cache, single-frame accumulator, crash diagnostics, and two-request queued-cancellation behavior improved. Completed exact-head checks are green; iOS Smoke is still running. Do not apply |
|
Re-review complete at exact head 7ec3327. The four ownership/readiness gaps are resolved:
Validation:
No remaining code-review finding from this pass. |
Summary
Closes #2196.
Adds the private Apple Simulator AX snapshot acquisition facet:
The guest remains Objective-C because #2192 selected idb v1.5.2's Objective-C
SimulatorFrameworkBridgeshape and the boundary dynamically loads private classes/functions, invokes runtime selectors, and containsNSExceptionfailures. Swift would still require an Objective-C shim. The September Python code was spike orchestration only and is not part of production.Validation
Tested commit:
e7b32ca5b80b5d68699f7dd8decd06d64589c20a.pnpm check:affected --run: all runnable checks passed, including build, typecheck, lint/format, layering, Fallow, integration, and clean-installed package verification.7ec3327bf8passed hosted clean-install bridge preparation and targeted XCTest checks.Scope: 41 touched files, limited to the Simulator snapshot-source facet, its native guest, evidence, packaging, and owning gates.