#755

fix(macos)+fix(canvas): focus/layout/AX/caret/scroll repairs and controlled authored selection (25 commits)

Draftgavinvolpewants to merge intofrom

Summary

This branch is ff108d0a..HEAD: 25 commits, 69 files, +5010/−579, combining two groups.

Inherited repairs already adopted in Studio's pinned SDK build (17 commits, 5164917..9d526eb): preserve editable focus through layout reflow; keep nested reveal targets rebased and gate the adoption reveal on declared intent; bound element-build/finalize recursion for app-sized messages; publish the whole bounded widget tree to assistive tech; pace the caret blink on sweep boundaries; bound outer scroll extents at nested viewports; focus-movement policy in continuity fixtures; align owned arena storage with reference allocation; reserve markup child slots before owned construction; heap-construct replay apps and expose the host suite; skip unchanged fragment import resolution; index retained path/layer cache lookups; repair replay allocation and Node 26 view harnesses; per-app fragment watch capacity; preserve sentinel ownership of SQLite paths; stream text bounds consistently across native and compiled policies; preserve typed context in native drag dispatch.

This delivery (8 commits, 5c26196..176c80c):

  • Caret/AX/tab repairs: skip unsolicited caret frames between blink edges; route macOS editable AX values through text actions; keep explicit override changes rendering on unsolicited caret frames; limit unsolicited caret no-op to scheduled-caret-only frames; restore plan after explicit caret-id override removal; report clamped programmatic scroll-driver offsets (fixes the tab-close geometry offset repro).
  • Selection repairs: app-handled selectable rows restore refused source selection; authored selection is controlled via explicit optional selected provenance instead of an ownership heuristic (compiled + dynamic markup, TS decoder, runtime reconciliation).

Verification (macOS, pinned Zig 0.16, serial wrapper)

  • scripts/gate.sh fast: root tests PASS (7284s), validate PASS, examples-frontends PASS, examples-native PASS, mobile packaging PASS. CEF host link SKIPPED (prepared layout absent on this host; the run also emitted missing-icon warnings retained in the raw log); cross/mobile runtime opt-in skipped.
  • Targeted selection coverage for the final two commits: test-desktop-canvas-widget, test-canvas, test-eject-components, test-ts-component-composition — 36/36 steps, 1553/1553 tests passed, exit 0.
  • Bench: FAIL, not waived. 5 medians over budget on this run (first-frame 13140/7500us, keystroke 6223/3000, toggle 25917/14000, scroll 6374/5000, markdown 2252/1800); chart and measured-text passed. The run shared the host with other build load, so regression-vs-contention is unattributed; same-host isolated baseline comparison is the required follow-up before any claim either way.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

Activity

26
vercel[bot]3d ago

@gavinvolpe is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

This pull request is a draft

Merging is unavailable until it is marked ready for review.