pair-e2e: sample the app when the pairing page stays preparing
The pair-e2e rig's Mobile Pairing page stays "preparing" with no code on a fleet GUI Mac (steps 59c5f9eb8bfb8976560ed476 and c9c9b027f31d54119d869a81, 302 s). A SecurityAgent prompt opens in the console session about 2 s after the tagged DEBUG app launches, hostd (cmux-mobile-host) never starts, and the app's own logs don't name the call that prompts.
This only adds evidence to that failure path in scripts/ci/cmux_next_pair_e2e.py. If a ref that shows codes has no code at 60 s, the rig records the following once and then keeps waiting the remaining 240 s (same 300 s total):
- a 3 s
sampleof the app and of up to 4 of its own children,cmux-mobile-hostfirst - the unified log of securityd, SecurityAgent and authd, plus the app's own subsystem, for the last 3 minutes
- the user Keychain search list and default keychain (reading these preferences opens no keychain)
The summary line names any SecItem, SecKeychain, Authorization or LAContext frames the samples show.
Rules kept:
- Every read is bounded by a timeout.
- Each file goes through
redact(). - A failure in the diagnostics is caught and can't change the verdict or skip the teardown.
- On a ref without codes, the wait stays at 60 s with no evidence step.
no_answer_evidence's run and save helpers move to module level unchanged, except that stdin is now/dev/null.
Risk: low. This is a CI rig script only. The success path changes only in that the 300 s wait is split at 60 s.
Agent session: agent session
🤖 Generated with Claude Code