Skip to content

fix(ios): system-surface disclosure parity across selector routes #2451

Description

@thymikee

Follow-up to #2438 / #2448.

Purpose. The system-surface disclosure currently rides the snapshot warnings. Ensure it also surfaces on selector-backed routes (find/wait/get/is), matching the Android systemSurfaceDisclosure pattern, so the disclosure cannot silently drop on one route while surviving on another.

Required behavior. Route the disclosure through the shared selector response builder keyed off the capture's system-surface provenance (generalize withSystemSurfaceDisclosure), rather than only the direct snapshot warning path.

Observable completion. get/is/find/wait against a served sheet include the disclosure; a test asserts parity across routes.

Dependencies. #2448 (provenance + snapshot disclosure landed).

Activity

  1. thymikee commented on Sep 10, 2026

    @thymikee
    MemberAuthor

    Folded into #2448 following review there. The disclosure previously rode only the direct snapshot warnings, and selector routes read only the Android systemSurfaceOnly field.

    withSystemSurfaceDisclosure now also emits the iOS disclosure from iosSystemSurfaceBundleId, so find/wait/get/is disclose an in-place web sign-in sheet on the same shared seam as the Android surface.

    Closing once #2448 merges.

  2. thymikee commented on Sep 21, 2026

    @thymikee
    MemberAuthor

    Closed against main at 45e4c594a1. Since 0feb4e26a0 (#2448) the routes no longer carry separate wording.

    One seam produces the sentence: withSystemSurfaceDisclosure at src/daemon/capture-disclosure.ts:50-58 derives the iOS disclosure from snapshot.iosSystemSurfaceBundleId, so the platform wording exists in exactly one place on the shared path.

    Call sites, one per route:

    • find — src/daemon/interaction/internal/find.ts:166,186,213
    • get — src/daemon/selector-runtime.ts:182
    • is — src/daemon/selector-runtime.ts:242
    • wait — src/daemon/wait-runtime.ts:72

    Pinned by src/daemon/__tests__/capture-disclosure.test.ts:304,331,356 for the iOS sheet (found / miss / helper), alongside the Android rows at :75,102,128,154,215,242, which is what makes the parity a parity claim rather than two independent wordings that happen to agree today.

    One gap I want on the record before closing: no test drives get or is against a served sheet. Their parity is structural — one call site each through the same helper — not pinned by a case. If someone wants that closed, it belongs as a test addition here rather than a new issue.

    Leaving #2489 open. It asks for one platform-neutral systemSurface model behind snapshot-types.ts:58 and interaction.ts:129, which is a different change than route parity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions