ReviewOS

craft-native/craft

Preserve all native taps in the timed input acceptance receiver

#432
Open chris opened this 3 days ago ·
3 days ago

Craft v0.0.396 is correctly blocked by exact-source CI: the iOS template job failed its independent native-input receiver.

Evidence: https://github.com/craft-native/craft/actions/runs/41071220268/job/124116274456

The TimedInputDriver submits one record containing 24 native taps across One/Two/Three/Four (80 ms apart). HostApp.swift records callbacks in SwiftUI state. The final received-taps assertion observed only 22 names, beginning Three/Four, rather than the expected 24 names beginning One/Two. The XCTest bundle reports 0 passes, 1 failure, 0 skips. This is an actual acceptance failure, not a compiler failure; the preceding LLDB diagnostic alone does not explain it.

Investigate native event scheduling, initial receiver readiness/layout and state observability. Preserve all 24 callbacks, their native relative timing, and an independent receiver. Do not introduce arbitrary warm-up touches, drop the first events, retry until green, or waive the release gate. Verify the fix on a disposable owned simulator and through normal exact-source CI.

Blocks the matching host needed by https://github.com/stacksjs/hq.training/issues/339 and https://github.com/stacksjs/stx/issues/2137; host implementation tracked in https://github.com/craft-native/craft/issues/428.

3 days ago

The unchanged canonical 24-tap receiver passed on a fresh owned iOS 26.5 simulator on this Mac (1 test, 0 failures, 0 skips). A separate diagnostic-only generated test-target variant inserted 300 ms between record preparation and synthesis; it also received all 24 callbacks. The canonical Objective-C source was restored byte-for-byte afterwards, and the disposable simulator/build data were retired after retaining both result bundles. This does not establish a fix or clear the CI failure.

The retained CI artifact (12986471772, SHA-256 44c5d30ed55953c5c9846c01a4aee61215c02e59d1e80a380c1df1b8cca5425f) contains all 24 intended paths with correct repeated button coordinates and offsets. Its video shows the state beginning with Three; the missing One/Two callbacks are not just label truncation. Preparation time consuming offsets was not supported by the controlled local probe.

No timed-input driver or receiver source has been changed. The exact-source CI for 6987b7e is pending and retains the complete 24-callback assertion; the separate Windows probe change is tracked in /craft-native/craft/issues/433. Keep this issue open until the failure is explained and verified, without arbitrary warmups or dropping events.

Sign in to comment on this issue.