refactor: consolidate Apple platform internals#968
Conversation
|
Size Report
Startup median (7 runs, lower is better):
Top changed chunks:
|
6e2e73e to
3162a65
Compare
Review — actionable itemsVerified the relocation is a clean byte-identical move (runner stack + ~46
|
3162a65 to
8ca1ca5
Compare
|
Addressed the review items after rebasing onto current
Request-count gate note: I did not arm
|
|
Re-reviewed the current clean #968 head ( The PR is now based on The runner request-count gate is still not armed, but the follow-up note explains why: latest successful main iOS workflow had Checks are green, including Typecheck, Unit Tests, Integration Tests, Smoke Tests, Fallow Code Quality, Lint & Format, Swift Runner Unit Compile, Web Platform Smoke, iOS Runner Swift Compatibility, and deploy-preview. I do not see an actionable blocker; ready for maintainer review. |
8ca1ca5 to
8510875
Compare
|
Follow-up on the request-count gate: removed it instead of trying to arm it with zero. The latest two successful
The runtime |
8510875 to
415672e
Compare
|
Dropped the request-count gate and the related runtime surface instead of carrying a half-working signal. What it was trying to catch: accidental runner behavior drift, mainly extra XCTest runner round trips per logical command, duplicate sends after fallback/retry changes, or a refactor accidentally bypassing the runner for an action that should use it. Why I removed it: the latest successful Replacement direction: rely on focused live e2e/smoke verification for the user-visible paths ( |
|
Head changed after the prior readiness review (now at 415672e), and the iOS smoke check is still in progress. I removed ready-for-human for now; please wait for checks to settle and re-review this head before restoring the label. |
|
Re-reviewed current clean head 415672e against plans/perfect-shape.md and ADR 0003. The only delta since my prior clean review is removal of the runner request-count gate and cost.runnerRoundTrips surface. That cleanup is consistent: request-router no longer computes the metric, the public ResponseCost type and cost tests no longer expose it, package/workflow hooks are removed, and checks are green. This also avoids preserving an inconclusive gate whose recent main baseline reported zero runner round trips. Residual risk remains as previously noted: the Apple core move still has compatibility shim imports through src/platforms/ios, and visionOS has build-cache groundwork without live Vision Pro simulator interaction evidence. I do not see an actionable blocker on this head; ready for maintainer review. |
415672e to
44c76dd
Compare
|
Re-checked current clean head 44c76dd. The delta from the previously reviewed 415672e head is docs/plans only: ADR 0009 now records the shipped/deferred Apple consolidation status, the obsolete standalone Apple plan was removed, and perfect-shape/phase3 progress links now point at ADR 0009 plus phase3-platform-plugin-progress.md. No code, routing, runner, command-surface, or platform backend behavior changed in this head. Checks remain green, and the existing ready-for-human label is still appropriate. |
44c76dd to
171f4d0
Compare
Summary
Move shared Apple-platform implementation into
src/platforms/apple/core, retarget internal callers directly to those Apple modules, and split macOS leaf code undersrc/platforms/apple/os/macos.Add visionOS runner profile/build-cache groundwork while keeping watchOS out of scope.
Remove the inert iOS runner request-count gate and its related runtime surface, including
cost.runnerRoundTrips, because recent successfulmainruns captured zero runner round trips and the signal was not proving runner behavior.Retire
plans/apple-platform-consolidation.md; ADR-0009 now owns the decision andplans/phase3-platform-plugin-progress.mdtracks the remaining follow-ups.Rebased onto current
mainafter #967 merged. Scope is 164 touched files across Apple platform internals, tests, runner build scripts, Fallow move metadata, CI cleanup, Xcode project metadata, request-count cleanup, and roadmap docs. Remaining Apple work is explicit follow-up: publicPlatformcollapse, tvOS leaf, plugin facets, per-AppleOS capability table, and the watchOS unsupported sentinel.Validation
pnpm formatpnpm check:toolingpnpm check:quickpnpm check:fallow --base origin/mainpnpm exec vitest run src/daemon/__tests__/request-router-cost.test.ts src/daemon/__tests__/request-router-response-level.test.tspnpm exec vitest run src/platforms/ios/__tests__/apple-runner-platform.test.ts src/platforms/ios/__tests__/runner-command-retry.test.ts src/platforms/ios/__tests__/runner-session.test.ts src/daemon/handlers/__tests__/session.test.tsgit diff --checkPreviously on this worktree before the rebase:
pnpm build,pnpm exec vitest run src/platforms/ios/__tests__, runner-focused Vitest suite,pnpm build:xcuitest,pnpm build:xcuitest:visionos, andgit diff --check. visionOS runtime was installed and the XCUITest build passed, but no Vision Pro simulator instance existed for live interaction verification.