perf(ios): decide Simulator AX bridge viability (GO, Node-direct guest reader) - #2237
perf(ios): decide Simulator AX bridge viability (GO, Node-direct guest reader)#2237thymikee wants to merge 13 commits into
Conversation
|
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
|
|
BLOCKED — the corrected decision artifact is not yet reviewable.
Production routing remains unchanged and the acquisition-only ADR direction is otherwise aligned. Do not apply |
|
BLOCKED. The branch conflicts with main and its own Compatibility & Provenance gate fails with Fallow dead-code/clone/high-complexity findings. More importantly, the GO decision lacks the required bounded-resource evidence for the selected Node-direct nested-tree route: targeted samples record |
62fd102 to
5f25c29
Compare
|
Resolved the outstanding review blockers on exact head
|
|
BLOCKED at exact head 5f25c29. The rebase, Fallow/CI, clean tagged evidence, CPU/RSS, bootstrap, recovery, hierarchy, and artifact hashes are now sound, but three blockers remain.
No ready-for-human label until these are fixed and exact-head CI reruns. |
|
One additional evidence-integrity requirement: the targeted harness executes the supplied |
Replace the idb companion + Python reader in the #2192 spike with a Node client for idb v1.5.2's in-Simulator SimulatorFrameworkBridge: one private guest per session spawned through simctl, 4-byte length-prefixed JSON over a UNIX socket, single-fetch traversal with automation mode asserted per request, nested trees flattened to parent-linked raw nodes with XCTest type names, and typed crash/timeout/cancel/stale-generation failures. The targeted harness now observes app readiness with a throwaway probe instead of admitting on pid presence, relaunches the app per bootstrap sample, records host load per sample, and runs recovery probes through the adapter. Hard tiers follow the corrected #2192 contract (warm 300/500 ms, relaunch 500 ms); the former 75/150 ms and 250 ms values are reported as stretch findings. Preboot preference edits are optional and unused by the guest path. The prototype's targeted artifact is preserved under a -python-prototype name; its bootstrap and recovery samples measured the packaging, not the mechanism.
5f25c29 to
f93beaf
Compare
|
Addressed the latest review round on the rebased head
Raw post-rebase artifacts are off-tree at immutable tag |
|
READY at exact head |
Summary
Concludes the Simulator accessibility bridge decision for #2192 with a GO for the narrow Node-direct route.
SimulatorFrameworkBridgedirectly over its private UNIX socket; the supplied executable is SHA-256 verified before launch, and no Python,idb_companion, or gRPC client remainsThe readable result stays in-tree at
docs/evidence/ios-simulator-ax-bridge-2026-09-02-corrected.md. Raw artifacts are held onevidence/ios-snapshotat immutable tagevidence/ios-snapshot/44995806ea, evidence commitf8b2fab28b8604f20094785c16e16a79fdc651a3, with hashes in that branch's README.The retained 3,645-line tooling diff is: 1,941 lines of private wire decoding, validation, bounds, adaptation, process ownership, and their tests; 966 lines of fail-closed decision/report generation and tests; 733 lines of live bootstrap/relaunch/recovery orchestration and instructions; 5 lines of repository wiring. A smaller wrapper would not independently validate the unsupported wire shape, target generation, lifecycle recovery, or resource bounds that make the decision auditable.
Validation
origin/main941ca0e7e08f50960dc90d3fdafa572355b030a0pnpm check:affected --run— all runnable checks passed44995806ea3be09f3c48ceac50ac3cab18462c35on dedicated iOS 26.2 Simulatorad-2237-axbridge