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
Add one shared RawAXNode-to-presented conformance fixture for Android XML presentation and Swift SnapshotPresentation.
The vectors cover cumulative nested-scroll clipping, raw geometry, viewport-edge clipping, scope re-rooting, and preservation of acquired actionability. The nested-scroll case now intersects two distinct scroll bounds so neither runtime can accidentally pass with only the nearest ancestor.
Part of #1832 Step 9. C4/C5/C6 are owned by stacked #1968/#1972; drawing-order pruning and corpus work remain evidence-gated.
Validation
The earlier planted red established the Swift regression: presentation upgraded acquired raw-false nodes to hittable. The owning visibility fold now preserves node.hittable, and both runtime projections consume the same expected values.
Exact-head pnpm check:affected --run passed at c772c16: 633 files / 5,028 tests plus format, lint, typecheck, layering, fallow, build, and XCTest lane-selection validation (0 methods unreachable by all lanes).
Live Android validation on this exact head produced a healthy android-helper 0.20.10 snapshot across two windows in 142 ms with nested scroll depth preserved; the purpose-specific session was closed. GitHub remains authoritative for host/native XCTest and required CI.
5 files changed, +476/-9 against #1972; the full stack is 28 files, +2,159/-450 against main. Scope stayed within the shared snapshot-presentation contract and its Android/Swift consumers.
Not ready at 5a619b515. The new conformance gate is doing useful work and exposes a real owner-contract drift: Swift's SnapshotVisibilityFold recomputes positive non-root nodes as hittable, so the shared cases emit true for the acquired-non-hittable Outer and scoped Settings ScrollViews, while Android preserves false. Per the presentation contract, fix the owning Swift fold so presentation only narrows acquired actionability (or explicitly revise the shared policy); don't paper over this by changing one runtime's expected values. Separately, the branch is DIRTY/conflicting because #1972's base was rewritten from 34bed0fa to b9b997a5; rebase the single conformance commit. That rebase should remove the inherited file-size Coverage failure, but the Swift host red is PR-owned and must be fixed.
Swift SnapshotVisibilityFold now preserves acquired node.hittable and only narrows it with enabled/effective geometry, so it cannot upgrade raw false.
Updated the existing unit assertion to prove raw-false covered/labeled nodes stay false, raw-true positive overlay stays true, and disabled stays false.
Android shared conformance remains green; a fresh unit-test-enabled macOS runner build is green; xctest selection is green.
The final affected gate passed: 637 files and 5,044 tests.
Host XCTest remains locally blocked by LaunchServices worker materialization after 111s, so that exact CI lane remains authoritative. No 33-screen corpus is claimed.
The one-line Swift actionability fix is correct and its focused assertion is load-bearing, but three blockers remain. (1) Replace Closes #1832 Step 9 with Part of #1832/advances Step 9: GitHub will close the whole issue even though C4/C5/C6 and Step 9’s API-level differential legs remain. (2) The shared “cumulative scroll clip” fixture has only one scroll ancestor, so it proves direct clipping—not cumulative nested clipping. Add outer+inner scroll containers whose intersection is narrower than either individual clip and require both Swift and Android presentation to emit that effective rect. (3) Exact rewritten heads for #1973 and base #1972 currently have only CodeQL; obtain authoritative Swift Runner Host XCTests/full CI after the base stabilizes. Also describe the Android leg accurately as XML parser + presentation conformance; it reconstructs hierarchy from depth/order rather than consuming the same RawAXNode seam.
Exact-head Android Smoke inherits #1972's owner-action regression; it is not infrastructure and not caused by #1973's incremental conformance/Swift diff. Separate #1972/#1973 jobs both successfully click the native-alert control, then time out waiting for Automation confirmation after 20/18 readable helper captures. The PR body's healthy two-window Settings snapshot does not exercise this alert route. Diagnose/fix #1972 with an immediate post-click tree/image showing whether the click lands and whether the dialog survives multi-window presentation; obtain green Android Smoke on #1972, then restack/rerun #1973. Every other #1973 lane, including Host XCTest and iOS smoke, is green; do not label while Android is red.
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
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.
Summary
Add one shared RawAXNode-to-presented conformance fixture for Android XML presentation and Swift SnapshotPresentation.
The vectors cover cumulative nested-scroll clipping, raw geometry, viewport-edge clipping, scope re-rooting, and preservation of acquired actionability. The nested-scroll case now intersects two distinct scroll bounds so neither runtime can accidentally pass with only the nearest ancestor.
Part of #1832 Step 9. C4/C5/C6 are owned by stacked #1968/#1972; drawing-order pruning and corpus work remain evidence-gated.
Validation
The earlier planted red established the Swift regression: presentation upgraded acquired raw-false nodes to hittable. The owning visibility fold now preserves node.hittable, and both runtime projections consume the same expected values.
Exact-head pnpm check:affected --run passed at c772c16: 633 files / 5,028 tests plus format, lint, typecheck, layering, fallow, build, and XCTest lane-selection validation (0 methods unreachable by all lanes).
Live Android validation on this exact head produced a healthy android-helper 0.20.10 snapshot across two windows in 142 ms with nested scroll depth preserved; the purpose-specific session was closed. GitHub remains authoritative for host/native XCTest and required CI.
5 files changed, +476/-9 against #1972; the full stack is 28 files, +2,159/-450 against main. Scope stayed within the shared snapshot-presentation contract and its Android/Swift consumers.