feat(limrun): serve iOS alert get/wait/accept/dismiss from tree capture

Merged
TH
5d ago
+3539-244

Summary

Closes #3349. Limrun iOS alert get/wait/accept/dismiss use the shared tree-alert driver. Android permission grants declare role and rank together, with “Allow all” before limited access. Undeclared allow/deny-shaped ids stay represented and block selection before single-button and neutral fallbacks: accept refuses with alert_button_undecided / dispatched: no; dismiss answers with Back without tapping a grant.

Head: ab7c9fc7da46cce0b8525cfd6795e13c5d914a13; base: 3d9190107e; MERGEABLE.

Validation

  • Direct pnpm check:affected --run --head ab7c9fc7da: passed, exit 0, exactCommit: true, unchanged clean fingerprints; 36 passed, 25 reasoned skips, two deduplications, zero failed/not-run. Receipt: run-GnzcI6.
  • CI verified on this head: 20 success, two skipped, one neutral; no pending or failed checks.
  • Fresh full-access review found no P0/P1/P2 and three accepted non-blocking P3s. Its own setup/build and disposable experiments provide separate evidence: nine fail-before regressions, 39/39 pass-after, mocked-transport action probes, and mutation characterization. The owner's earlier bound-checkout experiments retain their method limits.
  • Review disposition. No final-head Android or Limrun live certificate: the supported device launcher pins installed 0.21.25 without a source override, and no unknown-vendor sheet is available. Historical failure causes and reset/force-stop effects remain unknown; control correction.
  • Zero unresolved threads. CoS-owned ready-for-human is present; maintainer disposition reports no blocking problems and acknowledges the live-evidence limits.