iOS: every snapshot command fails with "escaped its cumulative clip" while a system alert is shown at the largest Dynamic Type size
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- ios, typescript
Línea de trabajo
Read SnapshotPresentationInvariant.swift in the snapshot presentation source linked from the issue, then inspect validateRegular and the failing node’s cumulative clip handling. Reproduce with the largest Dynamic Type size and an App Tracking Transparency alert on either listed simulator. Done when snapshot succeeds and the visible alert button can be found and tapped without breaking the reported wait/is behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
On an iOS simulator with the text size set to the largest accessibility size (accessibility-extra-extra-extra-large), every command that takes a snapshot fails while the App Tracking Transparency prompt is on screen:
Error (COMMAND_FAILED): regular iOS snapshot node escaped its cumulative clip
At that size the prompt's title no longer fits and iOS lets its content extend past the alert's frame. The regular-snapshot clip invariant rejects the whole capture, so the prompt cannot be answered by text or ref (find text "Ask App Not to Track" click), and wait/is on the app underneath fail too. The error's own hint says: "This is a runner presentation bug: report it with the failing command and the app under test."
Environment
- agent-device 0.21.28 (invariant unchanged on
mainat 63f762e and in0.21.29-nightly.20261018.74) - macOS 26.6.2, Xcode 27.1 (27A9275), Node 24.22.0
- Simulators: iPhone SE (3rd generation) on iOS 17.5; iPhone 17e on iOS 27.0; English locale
- Target app: an Expo development build that calls
requestTrackingAuthorizationafter its first screen
Reproduction
xcrun simctl ui "$SIM" content_size accessibility-extra-extra-extra-large
xcrun simctl privacy "$SIM" reset all <bundle id> # ATT status back to notDetermined
npx agent-device open <bundle id> --platform ios --udid "$SIM" --relaunch
npx agent-device alert wait 10000 # exit 0, prints the prompt title
npx agent-device snapshot -i # exit 1, COMMAND_FAILED
npx agent-device find text "Ask App Not to Track" click # exit 1, COMMAND_FAILED
| Text size | iOS 17.5 (iPhone SE 3rd gen) | iOS 27.0 (iPhone 17e) |
|---|---|---|
large … accessibility-extra-extra-large (6 sizes) |
snapshot -i exit 0, 1 run each |
exit 0, 1 run each |
accessibility-extra-extra-extra-large |
exit 1, 3 of 3 | exit 1, 2 of 2 |
Commands that don't snapshot keep working at the largest size: alert wait, alert get and alert accept (exit 0, tracking authorized), and press x y on the "Ask App Not to Track" button at coordinates read from screenshot (tracking denied, then wait on the app succeeds).
Failure details (--json):
- iOS 17.5:
"reason": "regular-node-outside-cumulative-clip", node3, frame{x: 48, y: 33, w: 279, h: 621.5}within clip{x: 32, y: 18, w: 311, h: 631}: it overflows the bottom of the clip by 5.5 pt. - iOS 27.0: frame
{x: 48, y: 664.7, w: 294, h: 290.7}within clip{x: 18, y: 70.7, w: 354, h: 716}: it starts above the clip's bottom edge (786.7) and ends at 955.
Cause
SnapshotPresentationInvariant.validateRegular (source), introduced in #1946, throws regularNodeOutsideCumulativeClip as soon as one node is not contained in its ancestors' clip. UIKit itself lets a system alert's content exceed its frame at large Dynamic Type sizes, so one overflowing node fails the whole capture.
Expected
The snapshot succeeds: the overflowing node is clipped to its ancestor (or dropped if fully outside), and find text "Ask App Not to Track" click taps the visible button.
- Lenguaje dominante
- TypeScript
- Estrellas
- 5k
- Forks
- 334
- Merge medio
- 12 h 14 min
- PR fusionados (30 d)
- 713
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de callstack/agent-device
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
callstack/agent-device#3792 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
macOS helper audio-probe always reports -90 dBFS: AVAudioPCMBuffer frameLength set after the copyAbiertobug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
callstack/agent-device#3771 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
callstack/agent-device#1869 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 49/100
callstack/agent-device#3800 ·
Los mantenedores suelen responder en 1 día
-
refactor(host): explicit host for configuration reads and one entered runtime storePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertoin-progress ready-for-agent refactor
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
callstack/agent-device#3794 ·
Los mantenedores suelen responder en 1 día
Todos los issues de callstack/agent-device
Issues similares
-
[Android] Nested transforms are composed in reverse orderPosiblemente ocupada @Danyalo la tomó hoy. AbiertoRepro provided
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
software-mansion/react-native-svg#3090 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
radix-ui/primitives#4228 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
rocketride-org/rocketride-server#2705 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
archon-ready archon-size-s archon-type-bug area: web
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
coleam00/Archon#4707 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
HarperFast/grafana-datasource#177 ·