fix(ios): book every surface on the lit panel, not the first window

Merged
TH
3d ago
+2813-668

Summary

Foldable surface commands name the lit panel and book a window by app bundle and request UUID. Capture, interaction, selectors and text probes reuse proven-lit roots. Typed refusals prevent outer-app fallback.

Required window-read exceptions now return APP_SCREEN_UNRESOLVED; genuinely absent windows retain APP_SCREEN_WINDOW_UNRESOLVED and are not asked for frames.

70 files in the full PR; this round changes two (+18/-1). No linked issue supplied.

Validation

Head ec80eecb1e0251d51d93aa68071c88577f1ea7ba; base c8ad8fb1257787ce0973cf74271cb9a4fafb51d9.

  • Baseline 4d6f523 plus the new native test fails five assertions across unreadable-only, unreadable-before-lit and unreadable-before-dark lists. At head, six selected native tests pass, including absent-window and ordinary booking controls.
  • iOS unit-runner build, format and XCTest-selection pass. Independent package/design review found no fixture leaks or justified smaller design.
  • pnpm check:affected --run --head ec80eecb passed; receipt .tmp/validation/run-RD6UYM/receipt.json, exactCommit=true, checkoutChanged=false; 11 passed, 10 skipped, 1 deduplicated. Vitest: 18,215 passed, 1 skipped, 0 failed.
  • CI Size: +24.1 kB unpacked/+7.2 kB compressed, all runtime content. CLI help measured 70.6 ms versus base 40.0 ms; attribution remains unproven. Prior head measured 43.3 ms with unchanged JavaScript sources.
  • All 19 hosted checks passed at 4d6f523; earlier live evidence retains its attribution. The exception regression uses native fault injection on iOS 27.1 Duo. No natural exception is claimed.

Hosted checks at this head: 17 succeeded, one optional matrix lane skipped, none failed. Human review approval remains outstanding.