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
ci(ios): a regular depth-1 snapshot carries XCTest tree quality metadata when the AX bridge probe circuit is open #3328
File the currently untracked iOS Smoke failure signature "regular depth-1 snapshot must not carry XCTest tree quality metadata" so #2491's lane report covers every signature that fails on main, and decide which side owns it: the acquisition fallback or the assertion.
Evidence (both on main)
Run 37145696803 (2026-10-03, d396f3b50), job Smoke Tests
Run 37459193672 (2026-10-06, 1163b7ac0), job Smoke Tests
Failing assertion, test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts:126 (assertSimulatorBridgeSnapshot, reached from assertRegularVisibleDepthFrontier on the step capture regular visible-depth frontier):
AssertionError [ERR_ASSERTION]: regular depth-1 snapshot must not carry XCTest tree quality metadata
+ actual 'tree'
- expected undefined
The response it asserts on keeps the fallback disclosure on a regular (non-raw) snapshot:
The same two runs' runner log shows the acquisition path that produced it:
AGENT_DEVICE_RUNNER_PRIVATE_AX_SNAPSHOT_DEPTH_RETRY depth=64 error=Could not match active AX application for XCTest application
... depth=56, depth=40, depth=24, depth=12 ...
AGENT_DEVICE_RUNNER_PRIVATE_AX_SNAPSHOT_FAILED=Could not match active AX application for XCTest application
AGENT_DEVICE_RUNNER_SNAPSHOT_BACKEND_FAILED backend=tree error=the XCTest tree capture exceeded its 8s time slice
So the bridge was circuit-disabled for that app generation, the capture fell back to the XCTest tree, and a regular snapshot carried the tree backend's quality metadata that the lane asserts must be absent.
Required behavior
State the contract explicitly: may a regular (non-raw) snapshot ever carry XCTest snapshotQuality/backend disclosure on the simulator? Today the runner and the assertion disagree.
If a bridge-disabled fallback is legitimate for a regular snapshot, the assertion must assert the disclosed fallback through a typed acquisition reason instead of demanding absence. If it is not legitimate, the fallback must not be reachable for a regular snapshot, and the owning seam is snapshot acquisition classification (refactor(apple-runner): classify AX snapshot failure once at acquisition #2972), not a call-site guard.
Key the decision on typed acquisition reasons and snapshotQuality state, never on the warning string.
One live iOS Simulator run reaches the circuit-disabled state and the resulting regular snapshot --depth 1 either carries no tree quality metadata or the smoke assertion asserts the disclosed fallback, whichever the decision is.
Ledger update from the #3336 human review (note 5): the new assertion in #3336 (98321a2) accepts a runner-fallback-served regular capture because the route's circuit-disabled/fallback reason is only a diagnostic event on the wire today. This issue stays open for exactly two items: (1) the live-run completion leg is now satisfied — the re-run 37843633972 @ 98321a2 passed smoke:regular-visible-depth-frontier live with the healthy/tree + circuit-disabled disclosure — and (2) OWEED: upgrading the assertion to key on a typed fallback reason once #2972 puts the route decision on the wire as typed data. Closing this needs #2972's wire typing, not just the assertion swap.
Purpose
File the currently untracked iOS Smoke failure signature "regular depth-1 snapshot must not carry XCTest tree quality metadata" so #2491's lane report covers every signature that fails on
main, and decide which side owns it: the acquisition fallback or the assertion.Evidence (both on
main)37145696803(2026-10-03,d396f3b50), jobSmoke Tests37459193672(2026-10-06,1163b7ac0), jobSmoke TestsFailing assertion,
test/integration/ios-simulator-e2e/live-snapshot-depth-frontier.ts:126(assertSimulatorBridgeSnapshot, reached fromassertRegularVisibleDepthFrontieron the stepcapture regular visible-depth frontier):The response it asserts on keeps the fallback disclosure on a regular (non-raw) snapshot:
The same two runs' runner log shows the acquisition path that produced it:
So the bridge was circuit-disabled for that app generation, the capture fell back to the XCTest tree, and a regular snapshot carried the tree backend's quality metadata that the lane asserts must be absent.
Required behavior
snapshotQuality/backend disclosure on the simulator? Today the runner and the assertion disagree.snapshotQualitystate, never on the warning string.Completion
snapshot --depth 1either carries no tree quality metadata or the smoke assertion asserts the disclosed fallback, whichever the decision is.Related
#2972 (classify AX snapshot failure once at acquisition), #2492 (bridge probe circuit follow-ups), #2491 (the lane report this belongs to).