Fix iOS link confirmation in Mobile E2E - #2938
Open
ymichael wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Human comments
What was wrong
On a fresh iOS simulator, Maestro reports
openLink: "bb://threads"complete before the operating system's first custom-scheme confirmation has been accepted. The app therefore remains behind the nativeOpen in “bb”?dialog whileshell-deep-linkwaits forshell-webview. That simulator-owned dialog survives the next flow's app stop and launch, soshell-sendandshell-unreachable-serverstart behind the same modal and cannot seeadd-server-screen. The current and prior scheduled runs show the same sequence and screenshots: run 33637452626 and run 33517924818.What changed
bb://action through one parameterized Maestro subflow. It preserves the real custom-scheme invocation, conditionally accepts the native confirmation only when it is visible on iOS, and proves the dialog is absent before route assertions continue.HOST_DAEMON_PROTOCOL_VERSIONis unchanged. No CLI, SDK, or user-facing configuration surface changed.How you verified
HEAD,origin/main, and merge-base all independently verified asab8e0a202c70525c3c935733300198dac617e3debefore inspection.openLink("bb://threads")completed in about one second, thenshell-webviewfailed after its unchanged 30-second assertion. Its accessibility hierarchy containsOpen in “bb”?,Cancel, andOpen; all three failed-flow screenshots show that same dialog. Run 33517924818 has the same screenshots and failures. In both runsshell-launchpassed and the backend stayed healthy.bb://threadson iOS 26.5, while the already-approved path skipped the conditional tap. That prior result was treated as corroboration, not as this branch's local validation.pnpm exec turbo run test --filter=@bb/mobile --force --concurrency=2— 38 files, 288 tests passed.pnpm exec turbo run typecheck --filter=@bb/mobile --force --concurrency=2— passed.pnpm exec turbo run lint --filter=@bb/mobile --force --concurrency=2— passed with four pre-existing React warnings and zero errors.pnpm exec turbo run build --filter=@bb/app --force --concurrency=2— passed; 444 files precompressed.bash -n apps/mobile/e2e/scripts/ci-run-flows.sh, Ruby YAML parsing for all changed flows, targetedoxfmt --check,git diff --check, and a project-wide check for direct Mobile E2Ebb://openLinkactions — passed.host_nwqfteeqz4with an explicit process-group deadline and no leaked process. This host has only Apple Command Line Tools: no Xcode, Simulator runtime, Maestro, or usable Java runtime is installed. A local Release app or native-boundary run was therefore not possible; none is claimed.