ReviewOS

craft-native/craft

Require scrollto targets to be visible inside their native scroll viewport

#443
Open chris opened this 2 hours ago ·
2 hours ago

The public iOS XCTest driver's scrollto succeeds when isHittable is true, even when the control is partially clipped by its enclosing scroll view. This weakens the command's contract for real native acceptance.

A retained HQ voice run reports a Stop recording button at (24, 549.5, 327, 52) within a scroll view at (0, 74, 375, 510). The button extends below that viewport, while XCTest calls it hittable. Its later stop interaction fails to produce the transcription control. That failure does not yet establish whether the tap or the native recorder stop was responsible.

Require the full target frame inside its app and ancestor scroll view viewports, with sensible oversized-target behavior, before scrollto succeeds. Keep the existing bounded drag behavior and real native controls. Verify the actual Swift rectangle rule and generated driver compilation, then consume a normal published package for native acceptance.

Refs https://github.com/stacksjs/hq.training/issues/368 https://github.com/stacksjs/hq.training/issues/394

2 hours ago

Implemented in https://github.com/craft-native/craft/commit/addccb9a828fb6a25dceccaff7dfac233d4c14c4. The actual Swift geometry rule rejects the retained partially clipped Stop button, accepts a fully visible control, and handles oversized targets. The generated XCTest driver compiles with the installed iOS Simulator SDK without booting another simulator.

Local required checks pass on the committed graph: SDK 839 passed / 10 conditional skips / 0 failures; iOS builder 387 passed; Android builder 218 passed; release rehearsals 422 passed. Types, 43 built package surface checks, pinned Zig formatting and Pickier pass (0 lint errors). An initial stale local dependency install and unset registry-token warning were corrected through a normal frozen install and an explicitly empty public registry credential; no dependency source was patched.

Normal bun run release:patch, using the pinned Zig executable, created v0.0.427 at https://github.com/craft-native/craft/commit/b715f006679f9c017a84f3faafcddd60f861c540. Publication, public HQ consumption and fresh native acceptance remain pending. The prior v0.0.426 publisher failed because its hosted Darwin job was never allocated a runner; its annotations identify macOS arm64 capacity. This is not a successful publication or an explanation of the separate native Calendar tap failure.

Refs /stacks/hq.training/issues/368 /stacks/hq.training/issues/394 /stacks/hq.training/issues/396

Sign in to comment on this issue.