Repository navigation
Fix iOS acceptance attachment using retained VM-service evidence - #9
Merged
Merged
Conversation
Llewellynvdm
marked this pull request as ready for review
October 11, 2026 16:55
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.
The post-merge main run failed both iOS runtime jobs even though every package build passed. Retained logs prove both apps announced their Dart VM services, while Flutter's live log discovery continued waiting and never started the test driver.
The runner now builds once, installs and launches that APP paused using its built bundle identity, and finds the authenticated service URL in persistent simulator logs. Discovery requires the exact launched PID, executable and current launch timestamp. Flutter's supported
drive --use-existing-apppath runs the unchanged six native acceptance tests without relying on live-log startup timing.Native verification confirmed the new attachment path: the iPhone completed all six tests, then exposed a post-exit process-group cleanup error. The runner now explicitly asks Flutter to stop the app/device readers and does not signal groups after naturally completed commands, including simulator boot and installation. Bounded group termination remains for interrupted or timed-out commands. The subsequent run passed all six iPad tests and shutdown on its first attempt. Its iPhone launched successfully, but a separate 30-second retained-log query cap triggered a premature reboot while the shared startup budget still had time. Log queries now use that remaining shared budget, with no increase to the overall 180-second limit. Regressions cover a slow successful query and exact shared/global deadline enforcement.
Install, launch and discovery share one bounded three-minute startup budget. A single pre-driver startup timeout may reboot once. Command errors and malformed discovery fail immediately. Driver attachment failures and test failures are never retried. Authentication, package versions, application code and release gates remain unchanged.
Local validation: 74 developer-tool tests (including 33 iOS runner regressions) and 64 release-tool tests passed. Independent review passed. Regressions cover missed live announcements, wrong/stale processes, malformed/unsafe URLs, deadlines, natural exit without group signals, aborted-command cleanup, nonzero exits and portable import. Full PR CI passed at commit 32e8991: all seven package builds, desktop/browser acceptance, Android phone/tablet and iPhone/iPad. Both iOS jobs passed on their first attempt. The iPad retained-log query took 43.73 seconds, directly exercising the corrected timeout boundary, then all six tests and shutdown passed. Android phone needed one targeted rerun after an evidenced ADB transport interruption during report collection; its app remained alive and all assertions had completed. The fresh-runner rerun passed. The subsequent main run will also be verified.
Successful PR CI: https://github.com/getbible/app/actions/runs/38155966677
Failure evidence and operating behavior are documented in BUILD_INCIDENT_2026-10.md and TESTING.md. Published alpha 5 testing downloads remain available and unchanged.
Failed main run: https://github.com/getbible/app/actions/runs/38142017784