fix(ios): book every surface on the lit panel, not the first window
Merged
TH
3d ago+2813+2813+0123456789012345678901234567890123456789-668-668-012345678901234567890123456789
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
4d6f523plus 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 ec80eecbpassed; 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.