refactor(ios): extract snapshot presenter - #2206
Conversation
Size Report
npm unpacked components
Startup median (7 runs, lower is better):
Top changed chunks: no changes in the largest emitted chunks. Top changed packed files
|
|
Blocked at exact head
The moved presentation behavior otherwise appears faithful and does not change producer selection/routing. Re-review after the ownership/package fixes, exact-base restack, focused presenter/XCTest proof, and exact-head CI/device evidence. |
d6e61ba to
0b0d5c0
Compare
|
Re-reviewed exact head The earlier architecture/package blockers are resolved correctly: the stack is now based on current #2203 ( Still BLOCKED on exact-head owner-action CI:
No additional architecture/code findings beyond those two CI blockers. Android/Linux, lint/typecheck/package, integration, coverage, repo guards, and bundle size pass. Please update the head and let the exact-head lanes rerun. |
|
Re-reviewed exact head The two prior owner-action blockers are fixed at root:
The remediation delta is narrow, remains exactly stacked on current #2203 ( Code review is clean, but this is not merge-ready yet. The PR body is still only gh-stack boilerplate. Please add the required No |
09f247c to
6f58524
Compare
|
BLOCKED at exact head The prior facade/package/CI findings remain resolved: the runner uses the shared presenter directly, the narrow wire conversion remains, package tests/manifests keep development targets out of distribution, and the previous compile/Fallow fixes are intact. No new code finding. Readiness evidence is still absent. The body remains gh-stack boilerplate and must record the #2191 slice context, move-dominated/touched-file rationale, exact-head validation, and real iOS Simulator evidence for the changed snapshot route (or the precise blocker and residual risk). Current exact-head CI is also incomplete, with lanes queued/in progress. Do not label or merge until that evidence is recorded and the exact-head required checks finish. |
6f58524 to
4ef845f
Compare
|
Re-reviewed exact head Minor body cleanup: Coverage and iOS Smoke are no longer in progress; both passed. |
|
Re-reviewed new exact head This is READY for human code review, but not merge-ready. The body is stale at |
|
Re-reviewed exact head |
|
Addressed in the PR body at exact head |
|
Reconciled unchanged exact head |
|
Summary
Layer A of #2191 (“refactor(ios): build and prove the converged snapshot engine”), stacked on merged #2203 and current
main(af2c65d).apple/snapshot-presentation/; both the runner target and standalone conformance executable consume the same source.AgentDeviceSnapshotPresentationdirectly; only the narrowSnapshotPresentationResult -> SnapshotBackendCapturewire conversion remains in the runner.Scope and design rationale: 38 touched files, +1,348/-1,012 vs current
main. The change is move-dominated: shared package source, runner import/adapter/test rewiring, and packaging tests/harness relocation. This is the smallest boundary that lets production and conformance consume one presenter implementation; retaining it in the runner or duplicating it in the harness would leave two implementations. The distributed runner manifest filters development-only tests/conformance sources. Bundle evidence: JS unchanged, Apple runner source -37.8 kB, other package files +33.9 kB, net npm unpacked -3.9 kB / tarball -2.5 kB.Validation
Exact reviewed head:
4ef845fe1fec3d0cd4ed9a17cfcad703a35bea45CI=true pnpm install --frozen-lockfilepnpm buildswift test --package-path apple/snapshot-presentation(1 test)pnpm check:xctest-selection: 217 declared, 189 host-reached, 76 iOS-PR-selected, 215 nightly-reached, 0 lane gaps.pnpm build:xcuitest:ios:TEST BUILD SUCCEEDEDwith Xcode 27 Beta.6 / iPhone 17 Pro iOS Simulator.smoke:automation-input,smoke:form-input, andsmoke:regular-visible-depth-frontier; the latter proves regular depth 1 reparenting/presentation ofvisible-depth-projected-childwhile raw traversal remains bounded.smoke:capture-closepassed.