refactor: colocate native platform sources under android/, apple/, linux/#1273
Merged
Merged
Conversation
eac1370 to
b2e1cdf
Compare
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
|
Member
Author
|
CI blocker at head |
thymikee
added a commit
that referenced
this pull request
Jul 15, 2026
…t double-ship `dist` is shipped wholesale and the packaged runner output moved from dist/apple-runner to dist/apple/runner. package-apple-runner-source.mjs cleaned only the new path, so a stale tree from an older build/checkout — or the bundle-size job, which packages the base then the PR into one shared dist — leaves both trees in the tarball (the ~421 KB unpacked regression on #1273). Clean the legacy locations on every packaging run and add a regression test that seeds a stale dist/apple-runner and asserts only dist/apple/runner survives.
…nux/
Move the scattered root-level native projects into per-platform folders and drop
the now-redundant platform prefix:
- android-ime-helper/ -> android/ime-helper/
- android-multitouch-helper/ -> android/multitouch-helper/
- android-snapshot-helper/ -> android/snapshot-helper/
- apple-runner/ -> apple/runner/
- macos-helper/ -> apple/macos-helper/
- src/platforms/linux/atspi-dump.py -> linux/atspi-dump.py
Only repo source paths move. Identity surfaces stay frozen so no user's runner
cache is invalidated on upgrade: the derived-cache key hashes source paths
relative to AgentDeviceRunner and excludes packageVersion, and the
~/.agent-device/{apple-runner,macos-helper} namespaces, the
agent-device-android-*-helper artifact/manifest/protocol names, the
AgentDeviceRunner Xcode project, and the `prepare ios-runner` CLI command are
unchanged. Updates build/package scripts, CI, package.json files+scripts,
ignore/attr/fallow configs, runtime path resolvers, and test fixtures.
Also: re-base repo-root-relative refs inside the moved apple/runner for the
added nesting level (gated XCUITest fixture walk + two doc links), and clean the
legacy dist/apple-runner packaged output so the relocated runner can't
double-ship into the wholesale-included dist (with a regression test).
10f080e to
638037a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Groups the scattered native helper/runner projects into per-platform top-level folders and drops the now-redundant platform prefix from each sub-folder:
android-ime-helper/android/ime-helper/android-multitouch-helper/android/multitouch-helper/android-snapshot-helper/android/snapshot-helper/apple-runner/apple/runner/macos-helper/apple/macos-helper/(keeps its qualifier — distinct from the runner)src/platforms/linux/atspi-dump.pylinux/atspi-dump.pyCache safety (no user cache invalidation on upgrade)
Only repo source paths move; the identity surfaces that feed cache keys stay frozen, so upgrading users don't pay a rebuild:
AgentDeviceRunnerand excludespackageVersion(runner-cache-metadata.ts) — invariant to any parent-folder rename. The macOS helper fingerprint is likewise relative to its package root.~/.agent-device/apple-runnerand~/.agent-device/macos-helpercache/lease namespaces, theagent-device-android-*-helperAPK/manifest names +android-*-helper-v1wire protocols, theAgentDeviceRunnerXcode project, theapple-runner-platform/apple-runner-optionsTS modules +'macos-helper'snapshot-backend enum, and theprepare ios-runnerCLI subcommand.The packaged Apple runner source now lands at
dist/apple/runner/…to mirror the source tree.References updated
Build/package scripts, CI (
ci.ymlswift-lint,linux.ymlatspi-dump,setup-apple-replaycachehashFiles),package.json(files+ scripts),.gitignore/.worktreeinclude/.gitattributes/.fallowrc.json, runtime path resolvers (apple runner source, macOS helper package root, android helperdist,atspi-dump.py),check-affectedownership, and all test fixtures.Verification
pnpm typecheck+oxlintclean; 262 unit tests + 31check-affectedtests passpackage-apple-runner-source.mjsrun end-to-end → emitsdist/apple/runner/…from the new sourceNote
The stray
ios-runner/directory at the repo root is untracked leftover from the earlierios-runner → apple-runnerrename (#996) and is not part of this PR. Safe to delete locally:rm -rf ios-runner.