Repository navigation
fix(apple): clean the runner derived path the runner uses - #3897
Conversation
pnpm clean:xcuitest ignored AGENT_DEVICE_IOS_RUNNER_DERIVED_PATH and cleaned the shared default directory. Resolve the override through the runner's own resolver, and clean only transient entries of that directory. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Size Report
Startup median (7 runs, lower is better):
|
|
At f13251f, the clean script breaks on part of the supported Node range. Not blocking, and you can take or leave these: the default layout ( The one failing check is the oxlint |
… the default derived layout Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Addressed in d3b3d44 (also merged Blocking: Node 22 Default layout. Added Shell trim. The build script now trims the override with Duplicate check. One Validation. |
|
|
This PR is ready at d3b3d44. The Node-range break and the duplicated layout in the clean script from the earlier review are both fixed, and CI is green (23 checks, none failing). The change touches only the clean script, its smoke test and the package.json scripts, so no daemon or device route is involved. I read the head files but did not check out the branch or run the smoke tests, and I did not run the clean script on Node 22.12-22.17 myself (you report runs on 22.14.0 and 26). Nothing else must happen before merge. Not blocking, take or leave: the Node-22 flag lives only in the package.json script strings, so reverting them would keep the smoke tests green, and one assertion in |
Brings in #3892, which fixes the iOS simulator logs stop hang. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * origin/main: perf(ios): read each resolved text input through one snapshot (#3882) fix(gate): take the host validation lock for heavy gates (#3900) fix(logs): keep an early iOS simulator logs stop from hanging the session (#3892) fix(apple): clean the runner derived path the runner uses (#3897) test(provider-scenarios): open deadline scenarios without the test IME (#3903) test(host-kit): stub os.homedir for the exec-trace late-close test (#3898)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ps/ios-suite: fix(perf): stop the log stream right after it starts perf(ios): read each resolved text input through one snapshot (#3882) fix(gate): take the host validation lock for heavy gates (#3900) fix(logs): keep an early iOS simulator logs stop from hanging the session (#3892) fix(apple): clean the runner derived path the runner uses (#3897) test(provider-scenarios): open deadline scenarios without the test IME (#3903) test(host-kit): stub os.homedir for the exec-trace late-close test (#3898)
* origin/main: perf(ios): confirm fill focus from the tapped input before the keyboard (#3906) feat(perf): time every iOS command against the fixture app (#3885) fix(ios): stop the XCTest-channel penalty from re-arming itself (#3896) test(android): pin that a child vanishing mid-read reads as gone (#3905) ci: skip device smoke lanes when a PR changes no lane input (#3904) fix(ios): verify deep-tree back on the sole screen (#3894) fix(ios): synthesize long presses and the gesture viewport on deep trees (#3893) perf(ios): read each resolved text input through one snapshot (#3882) fix(gate): take the host validation lock for heavy gates (#3900) fix(logs): keep an early iOS simulator logs stop from hanging the session (#3892) fix(apple): clean the runner derived path the runner uses (#3897) test(provider-scenarios): open deadline scenarios without the test IME (#3903) test(host-kit): stub os.homedir for the exec-trace late-close test (#3898) feat(test-app): add a Bluesky-depth heavy feed screen (#3884)
Summary
pnpm clean:xcuitest[:ios|:macos|:tvos|:visionos]ignoredAGENT_DEVICE_IOS_RUNNER_DERIVED_PATHand always cleaned the shared~/.agent-device/apple-runner/derived. A worker that set the override to rebuild its own runner instead removedBuild/,Logs/and the cache json that every other daemon on the host uses.resolveRunnerDerivedOverrideinapple-runner-platform.ts, which the runner path, cache-retention and unsafe-clean guard also use. The clean script imports it through@agent-device/platform-apple/runner/operations; there is no second env parser.resolveRunnerScriptDefaultDerivedPathin the runner path owner, which the clean script imports.scripts/build-xcuitest-apple.shis shell and still spells the same default paths itself; it now trims the override like the runtime, so a blank value means "not set" in both.clean:xcuitest*scripts and the smoke test runnode --experimental-strip-types, because the script imports workspace TypeScript. Without the flag, Node 22.14 fails withERR_UNKNOWN_FILE_EXTENSION(reproduced); with it the script and all 8 smoke tests pass on Node 22.14.0 and Node 26.9 files touched.
Validation
Tested head:
d3b3d44330(merged withorigin/main). Earlier results below are fromf13251f67e.test/integration/smoke-clean-xcuitest-derived.test.ts: override honored for ios and macos with the default directory untouched, and blank override falls back to the default. With the base script, the two override tests fail and the other 6 pass; with this head all 8 pass.pnpm test:smoke,vitest run packages/platform-apple/src/runner(958 tests),scripts/__tests__,scripts/layering,test/repo-guardspass.typecheck,check:layering,check:di-seams,check:fallow,check:production-exports,check:agent-guidance,check:doc-prose,check:doc-links,check:command-docs,build,check:package,check:bundle-owner-files,format:checkexit 0.pnpm check:affected --run --head d3b3d44330exits 1 only atvitest-related: 14 timeouts (5s, 10s, 20s budgets) while the host load average was about 1000. A rerun of the failed files passed all but one provider-scenario file that still timed out under that load. Lint and the other stages passed. CI is the authority for these..tmp/, never the real default directory.🤖 Generated with Claude Code