fix(alert): align local Apple and Limrun button choices
Summary
Follow-up to #3699: Apple XCUITest and Limrun iOS select recognized alert labels by ranked preference and refuse ties/unknowns. While Using outranks Once; Open/Done/Confirm… and Keep Browsing remain recognized.
Nine files. Android ordinary-label effects are intentional and tested; grant-id policy is unchanged. The separate macOS AX helper, capture, activation, deadlines, and wire contracts are unchanged. Shared choice fixtures do not prove capture parity.
Maintainer feedback addressed: move TS golden tests to contracts, add all 28 adjacent rank boundaries in both orders (120 fixture cases), remove the test-only Swift helper, preserve #3627 safety/canary tests, and correct the macOS docs claim.
Validation
Head 80c8328df6fa387f29f874e597fc5578d73211bb; base 620228b8ca67a69a108fa4fc5041fdd88880b792. Relevant upstream #3824 required rebase; range-diff preserves the original commit and attribution; #3705 retained.
- Frozen install/build, repository format, XCTest selection, iOS/macOS builds passed.
- Focused Vitest: 179 passed. Swift golden XCTest: passed. Ordering mutation: 131 pass → 4 fail/127 pass → 131 pass. Swift Open removal: three golden assertions failed.
- Fresh independent Sol review: no findings, static only.
- Direct
pnpm check:affected --run --head 80c8328df6fa387f29f874e597fc5578d73211bb: exit 0, receiptrun-Qag7Om,exactCommit=true, clean initial/final trees; 4,662 related tests passed, 12 checks passed/2 deduplicated/10 skipped.
Live evidence confirms candidate iOS location/ATT/refusal and Android Done. Source provenance and owned-resource cleanup verified. CI is green, including Apple smoke on maintainer-triggered attempt 2; the original timeout cause remains unproven. Separate diagnostics follow-up tracks it. tvOS/visionOS builds and live Limrun remain unverified. Old fe2f429 evidence validates only that SHA.