Repository navigation
refactor(ios): runner native bridge — one sole-screen entry, API-only ObjC comments - #3976
Conversation
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 7 files
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
|
PR 3976 is ready at 1ba2e5f. Not blocking: the local All 16 checks pass on this commit and there are no conflicts. I did not rerun the simulator runner suites, the bridge -Werror compile or the mutants, so those results come from the PR body. I read the diff and every non-comment hunk is an inline, a deleted pass-through or a dead branch, so I expect no device behavior change. The header comment edits change the runner source fingerprints, so installed users rebuild once, which is expected. The one bot thread (the RunnerResolveWindowDisplayID header wording) is fixed at this commit, so you can resolve it: #3976 (comment) Before merge, confirm the XCTest Nightly run on this head is green. |
…ive bridge Delete RunnerResolveSoleScreenDisplayID, a renaming wrapper that threw the resolved screen away: RunnerCreateEventRecord calls RunnerResolveSoleScreen at the same point, so the dispatch-time admission recheck stays identical. Inline the single-use progress function and sampled-drag path into RunnerControlledScrollPointerPath, which was its only caller and passed a fixed progress function. Replace AgentDeviceForegroundOwnershipMatches with == at both callers and delete the dead kAttributeFrame branch in the bridge runtime. Trim the shipped ObjC narration to one sentence per exported symbol plus the constraints the code cannot show: the frame read before the screen, `exists` required, class absence cached but never geometry, and the phone idiom skipping the probe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`RunnerResolveWindowDisplayID` returns a message string, not the typed failure, so the header must not call it a typed refusal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1ba2e5f to
25bc6b2
Compare
|
I found no problems in 25bc6b2. The new header comment in RunnerXCTestEventBridge.h now says the window route returns a refusal message, and RunnerXCTestEventBridge.m returns an NSString there, so the earlier doc thread is fixed (#3976 (comment)); please resolve it. All 16 checks pass. The change since the last review is a header comment only, so no route behavior changed. I did not build or run the Objective-C or runner suites. The simulator and -Werror results at the rebased head come from the PR body, and I did not re-run them. No conflicts are known, and nothing further is needed before merge. |
|
Thanks — taking both notes on r4381544807 as-is: the discarded The doc thread r4381544807 is already resolved, and nothing changed since: head stays |
Summary
Behavior-preserving simplification of the runner native bridge and the shared geometry header. These Objective-C files ship byte-for-byte in the npm package, so their narration is shipped size.
RunnerResolveSoleScreenDisplayID: a renaming wrapper that discarded the resolved screen.RunnerCreateEventRecordnow callsRunnerResolveSoleScreenat the same point, so the dispatch-time sole-screen admission recheck keeps the same call and timing.RunnerSynthesizedGesture.hcomment: a nilresolvedWindowis the sole-screen route, not the first window.RunnerDragProgressFunction/RunnerSampledDragPointerPathintoRunnerControlledScrollPointerPath, its only caller, which passed a fixed progress function. Same event sequence.AgentDeviceForegroundOwnershipMatches(an inlinea == b) with==at both callers; deleted the deadkAttributeFramebranch inSnapshotBridgeRuntime.m(it returnednilinto areturn nil;).existsrequired; class absence cached, never geometry; phone idiom skips the probe). History notes (#2728, "measured on a live Duo") are gone.7 files, two commits. No wire, CLI, or public type changed; the shared header's protocol, tolerance, and measurable/fills predicates are untouched.
Validation
Tested SHA
25bc6b2d5f(rebased ontoorigin/maina16d437237;1ba2e5fa74changed only one header comment).cache-native-runtime.test.ts,cache.test.ts,cache-identity.test.ts): 58 passed, including the-Werrorbridge compile.cache-native-runtime.test.ts3 failed / 46 passed (baseline 55 passed).AGENT_DEVICE_XCUITEST_INCLUDE_UNIT_TESTS=1: iPhone 17 Pro 36 passed / 0 failed; iPad Air 13-inch (M4) 38 passed / 0 failed (counts after the rebase; the pre-rebase run was 37 and 39).pnpm check:xctest-selectionpassed.pnpm check:affected --run --head 25bc6b2d5f: all runnable checks passed,exactCommit=true; swift-runner lanes are GitHub-authoritative.Size Report
🤖 Generated with Claude Code