refactor(limrun): drop the unused iOS app-alias seam and stale AX-backend wording
Summary
Follows #4224, replaces #4227.
#4224 moved Limrun iOS to the shared XCTest runner, so a few things still described the old element-tree backend. This PR removes them. It changes no behavior: it edits help text, docs and comments, deletes dead code, and removes a duplicate wrapper. 24 files, +60/โ77.
- Removes
resolveAppAliasfrom the Limrun iOS adapter, which nothing calls any more. Its SDK implementation, fixtures and test go with it, along with theresolveIosAppAliasfacade export that only it used. - Removes
awaitLimrunOperation. Its callers now use the kernel'sawaitWithSignaldirectly. - Fixes stale wording:
- the
alerthelp: Limrun now matches labels in the device's preferred languages too; - the
settings --apphelp, type doc and docs: Limrun resolves--appthe way a simulator does; - the
--launch-consolerefusal message; - comments in the alert, fill and snapshot contracts (main's #4182 already fixed the kernel and
ios-snapshotones); - the apple-runner entry comment.
- the
| #4227 change | Main | Class |
|---|---|---|
| Limrun, snapshots, capabilities, commands, client-api and debugging docs | #4224 has the same or newer text | a |
host-kit awaitWithSignal | kernel awaitWithSignal already exists. Collapsed the wrapper here | a + review |
| Runner products, errors, download, cache waiters | main is newer (typed reasons, shared preparation) | a |
alert help wording, apple-runner comment | stale on main | b (ported) |
readInfoPlist in-flight promise cache and pre-abort reject | โ | c (candidate) |
openContainer through simctl get_app_container | โ | c (candidate) |
appState checks the instance before each runner read | main reads the runner first, then falls back | c (candidate) |
| Frozen recovery facts | โ | c (candidate) |
readLimrunAppState cleanup, always-true test ternary | already gone on main | a |
Kernel snapshot.ts and ios-snapshot.ts Limrun-tree comments | fixed on main by #4182; dropped in rebase | a |
Validation
pnpm check:affected --run --head f958c63 passed (exactCommit; receipt run-0V3ieL): format, lint, typecheck, layering, fallow, build, vitest-related (1139), unit (1931 files), command-docs, docs-links, docs-prose.
- A new test in
limrun-ios-settings.test.tspinssettings --appdisplay-name resolution through the remote Limrun app list. - The earlier
apple-platform-output-guardrecordtimeout also failed on unchanged main, so #4060 tracks it; it passed in this run. - One earlier unit run at this head had 2 timing failures (daemon-client EOF deadline, surface-host scan timeout). Both pass alone on this head and on main, and the rerun passed.
- CI owns coverage, Swift and smoke lanes.
The wording changes match the runtime paths: Limrun setSetting runs setIosSetting through the remote tool provider, and the language matching happens inside the runner. No device run is needed because nothing here changes behavior.
๐ค Generated with Claude Code
![Autofix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark-3x.png)
Open in [code]smith ยท Need help on this PR? Tag @codesmith-bot with what you need.