Skip to content

Interaction guarantee gaps (ADR 0011 umbrella) #1081

Description

@thymikee

Umbrella tracking issue for the gap: waivers pinned in src/contracts/interaction-guarantees.ts (ADR 0011, PR #1080). Every gap cell in the registry links here (or to a sub-issue split off from here). The pin test keeps the list in sync: a gap cannot appear or disappear without a reviewed diff.

Gaps by closure strategy (per the ADR's hybrid decision):

Runner-side parity (geometry-local rules, golden fixture tables — Layer 3)

  • direct-ios-selector/disambiguation — success-path parity: XCTest may pick a hittable candidate runtime rules would refuse or rank differently; delegation-on-error cannot catch this. Stays a gap until parity tables/contract scenarios prove the success path.

Delegation-on-error (semantic/rich-runtime cases — better diagnostics only when the fast path fails)

  • direct-ios-selector/errorTaxonomy — ELEMENT_NOT_FOUND/AMBIGUOUS_MATCH lack selector diagnostics and hints
  • direct-ios-selector/occlusion — no covered-element check on the direct path
  • direct-ios-selector/nonHittable — non-hittable matches skipped instead of promoted/annotated
  • maestro-non-hittable-fallback/errorTaxonomy — shares the direct path error shapes

Shared runtime preflight before the backend call (native-ref: the ref came from a daemon snapshot, so check that node BEFORE tapTarget/fillTarget — a backend fast path can silently succeed, so delegation-on-error will not reliably trigger)

  • native-ref/occlusion
  • native-ref/offscreen
  • native-ref/nonHittable

Layer-2 response construction consolidation (single buildInteractionResponseData construction site + hand-rolled-literal guard)

Identity fields on the direct path

  • direct-ios-selector/responseIdentity — refLabel/selectorChain absent from direct-path responses

Cheap warning

  • coordinate/offscreen — out-of-viewport coordinates forwarded silently; a bounds warning would be cheap

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-humanValid work that needs human implementation, judgment, or maintainer merge

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions