You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(ios): system-surface disclosure parity across selector routes #2451
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.
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.
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.
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.
Activity
thymikee commentedon Sep 10, 2026
Folded into #2448 following review there. The disclosure previously rode only the direct snapshot
warnings, and selector routes read only the AndroidsystemSurfaceOnlyfield.withSystemSurfaceDisclosurenow also emits the iOS disclosure fromiosSystemSurfaceBundleId, sofind/wait/get/isdisclose an in-place web sign-in sheet on the same shared seam as the Android surface.Closing once #2448 merges.
thymikee commentedon Sep 21, 2026
Closed against
mainat45e4c594a1. Since0feb4e26a0(#2448) the routes no longer carry separate wording.One seam produces the sentence:
withSystemSurfaceDisclosureatsrc/daemon/capture-disclosure.ts:50-58derives the iOS disclosure fromsnapshot.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,213get—src/daemon/selector-runtime.ts:182is—src/daemon/selector-runtime.ts:242wait—src/daemon/wait-runtime.ts:72Pinned by
src/daemon/__tests__/capture-disclosure.test.ts:304,331,356for 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
getorisagainst 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
systemSurfacemodel behindsnapshot-types.ts:58andinteraction.ts:129, which is a different change than route parity.