refactor: move Android family behind package exports - #2117
Conversation
|
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks:
Top changed packed files
|
|
Reviewed
Family blocker: the current heads conflict in shared policy/host/test files. Rebase #2117 after #2116, preserve the focused host and injected snapshot seams, then let #2118 rebase last. Rerun the combined family gates. The failing iOS smoke appears to be an unrelated simulator |
9fa2778 to
474bd0f
Compare
|
Addressed the review findings in
Final local evidence includes green format, lint, typecheck, layering, build, package closure, full unit (1,084 files / 8,295 tests), W5-focused Android/root-route suites (616 + 53 tests), and affected-selector checks. The PR is published/reported at the rebased head, not claimed merge-ready until fresh exact-head GitHub native/device/provider checks and stacked mergeability settle. No merge performed. |
|
Re-reviewed new exact head 474bd0f. The prior affected-owner, ADR, and size-rationale findings are fixed. However, this head is stacked on the obsolete b5dd30f W6 lineage rather than published #2116 head 4eec054; merging the published heads conflicts in ios.yml, fallow health, the platform-package policy and request-platform-providers test. Restack #2117 on published #2116, correct the stale #2116 head claim in the body, and rerun fresh combined-family CI/device evidence. Old-head Repo Guards/iOS failures are stale and are not attributed to this head; fresh exact-head CI is still starting. No readiness label yet. |
474bd0f to
404966d
Compare
|
Re-reviewed exact head 404966d. Range-diff confirms W6/W5 patches are unchanged and there is no new Android mechanics code finding. Two blockers remain. First, this is still not stacked on the exact published #2116 head: the W6 patches were replayed equivalently onto current main, but 4eec054 is not an ancestor. Republish #2116 at the equivalent rebased W6 tip, then keep #2117 directly above it. Second, Repo Guards is genuinely red: scripts/gate/routing.test.ts still expects the moved platform-android probe fixture to fail as ambiguous-path, but its package location now correctly fails closed as unknown-path. Update the planted assertion/message without weakening ownership. Coverage plus Android/iOS remain pending; no readiness label. |
|
Follow-up after the exact-head gate finding: pushed The prior Repo Guards failure belonged to 404966d and is superseded; a fresh exact-head run for 1da5da5 is now in progress. The W5 head is mergeable against current |
1da5da5 to
8f2ce36
Compare
|
Follow-up after the final stack repair: the W6 owner published the exact-equivalent reviewed W6 head The relocated Android probe assertion is corrected in Fresh exact-head GitHub checks have just started and are currently pending, including Android and iOS smoke. The earlier Android smoke failure was on the superseded head and was a native emulator capture stall ( |
8f2ce36 to
5077d33
Compare
|
Rebased after W6 merged: PR #2116 is squash-merged into The rebased head |
Summary
Moves the Android platform family and its colocated tests from
src/platforms/androidinto@agent-device/platform-android, with explicit package exports for the root,./mechanics, and root-bound./adb-hostfacets. The superseded root tree and compatibility shims are deleted, and root/core/SDK/provider consumers use named-export facades.Adds the root Android host composition for adb, filesystem, environment, hashing, and helper/IME callbacks. Runtime loaders bind that host before selecting package mechanics while preserving the root cold-start boundary. R11/R13 package-boundary enforcement, affected routing, Fallow paths, exports, and lockfile closure are updated.
Review fixes in
0b9bf462daand5077d33219:own:android-package-test-fixtureunit ownership for the APK fixture and a planted regression test. The selector was observed red against the pre-fixunknown-pathshape and is green after the rule.packages/platform-android/src/**; the obsoletesrc/platforms/android/**ignore is removed.W6 PR #2116 is now merged into
mainas838ed223b5. This branch was rebased withgit rebase --onto origin/main b3c8c67e3b, replaying only the three W5 commits (40c311ca4a,0b9bf462da,5077d33219) so the squash-merged W6 changes are not duplicated. PR #2118 remains untouched and last in the family order. Refs #2082.The adversarial review covered the complete W5 diff against the published W6 base: issue scope, production routes, package exports and dependency closure, host-file watchlist, named-facet enforcement, cold-start/layering policy, old-path and shim removal, hidden behavior changes, test validity, superseded code, and touched-file scope. The actionable review findings are addressed.
Validation
pnpm install --frozen-lockfilepnpm format:check,pnpm lint,pnpm typecheck, andpnpm check:layeringpassed on the rebased tree.pnpm build,pnpm check:package,pnpm test:integration:node(90 passed, 9 skipped), and macOS coverage (6 passed) passed.pnpm check:affected --runselected 56 checks. Every check through package and all related tests passed; Vitest completed 454 files and 3,813 tests, but reported the known 10 post-teardown Apple-runnerEnvironmentTeardownErrorunhandled errors insession-replay-repair-transaction.test.ts, so the aggregate command exited 1. The implicated suite passes in isolation: 17/17.git diff --checkpassed andorigin/mainis an ancestor of the rebased head.The PR is published at the rebased head and is currently mergeable against
main; fresh exact-head GitHub checks, including native/device/provider lanes, are pending. Local proof and GitHub/native/device proof are kept separate. No merge was performed.