ReviewOS

also looking at this

craft-native/craft

fix(mobile): preserve native editing, navigation, and durable media requests

#369
Merged chris wants to merge codex/native-vertical-scroll-tab-swipes into main
36 files +864 -185
8 days ago

Native review editors inside scroll containers lost focus or selection, and drags beginning on buttons could leave the page stationary. Preserve exact native text replacement and selection, let button/text-field tracking yield to page scrolling, and retain direct manipulation for value controls. Tab pans coexist with vertical scrolling and horizontal carousels, while Android tabs expose stable identities and selected state.

Retained native views preserve keyed identity, callbacks and explicit accessibility roles. Shared layout retains unsigned grid counts, empty/explicit row tracks, fractional spacing and physical-pixel padding. All four compiler hosts use the same immutable STX source and frozen dependencies. Upstream prepared-screen, shared-link, keyboard, modal, prediction-strip and Windows toolchain fixes are retained.

Durable media retries preserve callback ownership and record settled WorkManager attempts before answering callers, so an immediate retry replaces the completed transfer even before WorkManager leaves RUNNING. Native acceptance covers recovery, resumption, truncation, storage exhaustion, coalescing, cancellation and local decoded video. Linux warm links flush the asynchronous D-Bus Open call before the forwarding process exits.

Android readiness waits for the bundled Play Store only on Play images, within the existing boot deadline; regressions cover delayed registration, missing-package cleanup and non-Play images. Scroll callback acceptance drives a real viewport-sized animation and requires native idle state and exactly one completion within the original 2.5-second limit. Hybrid initial accessibility readiness matches the existing cold WebKit fixture budget; transition-frame and destination assertions remain unchanged.

Release publication requires complete source/native acceptance of the exact tag, verified archives, SBOM/vulnerability scans and installed public-download checks. Native UI selection covers all 23 core cases and the separate full controls journey, requiring exact test counts, zero failures and zero skips. Real keyboard/prediction-strip bounds and value-control exclusions guide bounded manual drags; picker values must remain unchanged.

Validation: candidate d570d81 and its identical-tree PR checkout 64114262 passed all 13 source gates (39376122504) and all 14 native gates (39376122415, attempt 2). This includes Android API 34/35 with 63 tests each, 29 iOS navigation units, 23 core UI cases, the full controls journey, 195 UIKit units and 5 UI cases, simulator protocols, media recovery and stock software-emulator readiness. The controls journey passed on attempt 1, but the 45-minute job deadline interrupted Xcode finalization; one unchanged-source, unchanged-budget fresh-runner retry completed successfully. Both results are retained. Local checks passed 746 SDK tests, 624 native/build/release contracts, types, zero-error Pickier, Swift parsing, eight npm archives and 16 installed import/type entry points. No source aliases or skipped acceptance tests.

36 changed files on the files tab, with 0 review threads.

Sign in to comment on this pull request.