perf(ios): admit tap text-input probes from fresh target evidence

TH
2h ago
+1477-20

Summary

Skip the iOS tap text-input probe only with fresh, same-target capture geometry proving that no input contains the dispatch point. Clear the remembered typing witness on skip. Contracts carry facts; Apple runtime forwards them; Swift admits them. Collect raw input geometry before presentation can hide editable nodes. Unknown geometry and coordinate-only taps retain probing. 24 files; scope includes capture-private geometry to preserve ADR 0011 and #2438/#2554 routing.

Validation

Base: c8b944ca0116d577941fb47ba82c84504f9b3075. Head: b91a12d556230d5963e8b67c1b89963b41c44b11.

  • pnpm check:affected --run --head b91a12d556: exit 0, exactCommit=true; receipt .tmp/validation/run-ZIax2n/receipt.json; 8,205 tests passed. Format, selection check, TypeScript/iOS builds passed.
  • Focused native tests: head 4 passed; equivalent base regression 1 failed/2 passed at the intended skip assertion. Geometry mutation: control 5 passed; mutant 1 failed/4 passed. Independent review: no remaining findings.
  • Bluesky 1.136.0/iOS 27.0, three runs each, milliseconds (runner / CLI wall): Home ref base 533,552,545 / 831,792,794; head 416,424,420 / 596,595,679. Search selector base 564,572,576 / 934,992,1277; head 414,425,420 / 776,746,757. Median runner improvements: 23.1%/26.5%. All taps landed. Text-field tap → bare type verified; coordinate-only probe retained.

CI owns cross-platform native/integration/coverage obligations. Review capture completeness, ref freshness, system-target matching, and conservative fallback admission.

Implemented by a Codex worker; opened and reviewed by the coordinating Claude session.

šŸ¤– Generated with Claude Code