chore(ios-runner): remove unset env knobs, the dead back wire command, and unreachable paths - #2828
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
Reviewed at d53defc. The removed branches (main-thread Small notes, not blocking: the tool-provider resolver now reads The Smoke Tests failure at No conflicts. This needs #2825 to merge first. |
|
The code review of d53defc is still clean. This branch now has merge conflicts with main, so I removed |
AGENT_DEVICE_RUNNER_DISABLE_READONLY_RETRY, AGENT_DEVICE_RUNNER_DISABLE_SAFE_MODAL_PROBE and AGENT_DEVICE_RUNNER_NOOP_STARTUP were only reachable through the process.env pass-through; no repo code, CI job or doc sets them. The safe modal probe is now unconditional, and RunnerEnv loses its only-caller isTruthy helper. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dispatch paths - `back`: the daemon resolves only `backInApp`/`backSystem`, so the RunnerCommand union member, its trait row, the Swift case and its handler go. - Selector-keyed `type`: runner adoption checks the artifact fingerprint, so no older daemon can send it; the element-focus entry point it alone used goes with it. - Main-thread dispatch: the transport always executes on `commandExecutionQueue`, so the `Thread.isMainThread` branch in `executeDispatched`, the prepared-path `.snapshot` case, and the main-thread shortcuts that only those reached are removed. The test-only `execute(command:)` now dispatches like the transport, so tests exercise the production path. - Custom-action coverage: the bridge in the same target always writes all four keys, so the older-bridge defaults for `truncated`/`blocked` go and a partial dictionary is malformed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… provider
Every resolved provider is normalized through createLocalAppleToolProvider, which always fills
both subcommand providers, so runXcrun's `?? runCommand('xcrun', …)` fallback was unreachable.
The fields are now required and runXcrun calls them directly.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… dispatch The transport's inline status/uptime answer and its journal-accept-then-enqueue step are now named functions, and the test-only execute(command:) calls them rather than re-stating them, so unit tests take the same dispatch path as a daemon request. The wait uses a standalone expectation so a command that outlives it cannot fulfill into an ended wait context. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
d53defc to
b7a4ffb
Compare
|
Summary
Removes runner code nothing can reach. Commands the daemon sends behave the same. Stacked on #2825.
DISABLE_READONLY_RETRY,DISABLE_SAFE_MODAL_PROBEandNOOP_STARTUP, plus the now-unusedRunnerEnv.isTruthy.git grepconfirmed nothing set them. The nightly comment that namedNOOP_STARTUPis reworded.backwire command: TS union member, trait row (the manifest is stillrunner-command-traits.tshere), Swift case and handler.typeand its element-focus entry point.Thread.isMainThreadbranch inexecuteDispatchedand the prepared-path.snapshotcase. Also deletes the main-thread shortcuts only those reached (modal-routing check, post-snapshot mark, snapshot-failure invalidation). The issue did not list these three.execute(command:)now calls the transport's owninlineResponse/enqueueAccepted, so tests run on the command queue.truncated/blockedare now required.AppleToolProvider.simctl/devicectlare now required; therunXcrunfallback is gone.Closes #2791. 18 files, +120/−220.
Validation
Rebased onto
mainata913cb222. Signed macOS host lane: 236/236 atb7a4ffbc0. Resolved a conflict with #2822:backis removed from the merged trait table and its test.check:affected --runis green at the stack head60e533284. The evidence below is from before the rebase.Tested at
d53defc2f.pnpm check:affected --run: all runnable checks passed (59 selected; everything else is GitHub-authoritative).check:production-exports,check:xctest-selection(host reaches 234),check:packaged-runner-swift, typecheck: green.app.launch()fail the same way on this branch and on the base build ("Application … is not running"), so this host can't give evidence for them. That gap stays open for the ios.yml lane.openSettings, thensnapshot,press,back --in-app,back --system,fill. Runner log showsbackInApp/backSystem/type/snapshotok=1. Session closed, daemon stopped--clean.captureSnapshotRootBounded), sibling-owned (shouldRetryCommand→ refactor(ios-runner): Swift retry decisions keyed on message text → typed codes #2786), tests follow production dispatch on purpose, no sender (selectortype), existing refusal pattern (.snapshotswitch case), file already over 1,000 lines before this PR (refactor(ios-runner): move ~3.9k lines of inline unit tests out of production Swift files; split CommandExecution under 1,000 lines #2792 splits it).🤖 Generated with Claude Code