You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A tracking issue for a simplification and correctness audit of the Apple side: packages/platform-apple (about 32k lines of production TS) and apple/runner (about 17.5k lines of Swift plus ObjC bridges), at 01328de411.
Method:
Four read-only audits applied community Swift skills: AvdLee and twostraws Swift Concurrency and Swift Testing, the Swift API Design Guidelines, and jazzychad's ios-code-audit.
A second model cross-reviewed every finding against the code.
The top claims were spot-checked by hand.
Findings refuted in review are not filed here.
Verdict: the core machinery earns its complexity: runner lifecycle, lease detach/adopt, recycle ledger, readiness preflight, command journal, three-tier snapshot plan, and the private-AX ladder pinned by conformance fixtures. The waste sits at the edges. Removing it cuts about 1–1.5k production lines, and moving the inline tests (#2792) takes about 3.9k lines out of production Swift files.
Each child issue is one PR (or a small series of pure-move PRs) inside one module group.
The runner's private-AX tier, about 1.4k lines. It could go only if the host bridge learns to read custom actions, and removing it weakens recovery while the bridge circuit is open.
Purpose
A tracking issue for a simplification and correctness audit of the Apple side:
packages/platform-apple(about 32k lines of production TS) andapple/runner(about 17.5k lines of Swift plus ObjC bridges), at01328de411.Method:
Findings refuted in review are not filed here.
Verdict: the core machinery earns its complexity: runner lifecycle, lease detach/adopt, recycle ledger, readiness preflight, command journal, three-tier snapshot plan, and the private-AX ladder pinned by conformance fixtures. The waste sits at the edges. Removing it cuts about 1–1.5k production lines, and moving the inline tests (#2792) takes about 3.9k lines out of production Swift files.
Each child issue is one PR (or a small series of pure-move PRs) inside one module group.
Status (2026-09-24)
19 of 22 closed. Remaining:
Bugs (ready-for-agent)
simctl spawncalls #2784simctl spawnmissing--set(AX bridge, fold) — fix(ios): spawn the AX bridge and fold helper inside the scoped simulator set #2818-Werror; fold recompiles every call — fix(ios): drop -Werror from runtime clang builds and cache the fold helper build #2858 open; iPhone Duo live evidence supplied separately by the maintainerCuts (ready-for-agent)
.continuousdrag profile #2790 Dead.continuousdrag profile — chore(ios-runner): delete the unreachable synthesized continuous drag profile #2825backwire command, and unreachable paths #2791 Dead env knobs,backcommand, unreachable paths — chore(ios-runner): remove unset env knobs, the dead back wire command, and unreachable paths #2828--setbuilder and state parser (after fix(ios): pass the scoped simulator set to the AX bridge and foldsimctl spawncalls #2784) — refactor(ios): one simctl --set builder and one simulator state parser #2824Decided 2026-09-23 (codex cross-check + code verification), now ready-for-agent
--device-hub(plain removal, not treated as breaking) — refactor(cli): drop the inert --device-hub option #2821--fullscreenfor macOS desktop/menubar helper surfaces; keep it for app sessions — fix(macos): refuse --fullscreen on every helper-captured surface #2849 (widened to every helper-captured surface, includingfrontmost-app)'\n'— refactor(ios-runner): restrict the tap-witness synthesized type route to the bare submit key #2845runMainThreadWork; screenshots are already bounded — fix(ios-runner): return work that finished at the timeout boundary and bound recorder frame capture #2837treepin — refactor(ios-runner): drop the runner's snapshot warning text; the verdict carries every disclosure #2834Already tracked elsewhere
#2662 (still open) covers runner-session cleanup: the response decoder, a state enum, and the curl-through-simctl transport.
Measure before acting (not filed)
runner/runner-client.ts:42-56. It predates the recycle ledger (Runner resilience under agent-abuse command patterns #1105).