ios: snapshot --observe-only can label a substituted system-alert tree as an app observation
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 40/100
Direzione di ricerca
Start in RunnerTests+SnapshotExecution.swift, where the observe-only branch sets payload.observation after the ordinary capture, then check RunnerTests+Snapshot.swift to see where snapshotFast returns the SpringBoard alert tree. Choose refuse or disclose, keyed on the tier or provenance the capture returns, and reuse observeOnlyUnavailableResponse() if refusing. Done when a unit test using systemModalProbeOverrideForTesting shows an observe-only snapshot with a presented alert never carries observation, and the observe-only guarantee wording is updated.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Follow-up to #3108 (merged 2026-10-08), from the #3106 decision.
Problem
snapshot --observe-only stamps observation (an app observation made without activating the app) on a payload that may not come from the app.
RunnerTests+SnapshotExecution.swift runs the ordinary capture first (snapshotFast / snapshotRaw), then checks only that target.app.state == .runningForeground and that the process identifier is unchanged, and then sets payload.observation. But snapshotFast (RunnerTests+Snapshot.swift) first calls boundedBlockingSystemAlertSnapshot(...) and returns the SpringBoard alert tree in place of the app's tree when one is presented. The post-capture check can still pass, because a system alert doesn't change the app's process and #2696 shows XCUIApplication.state can report foreground while another surface is in front. The result is a system-alert tree labelled as an observe-only capture of the app.
The default (non-observe-only) path is fine: it discloses the substitution through systemSurface provenance. The defect is only that the observe-only contract asserts app provenance without checking which tier produced the payload.
Required behavior
Pick one, and encode it in the observe-only branch:
- Refuse: when the capture tier substituted a system-alert or system-surface payload, return the typed observe-only-unavailable response (the existing
observeOnlyUnavailableResponse()), or - Disclose: keep the payload but omit
observationand carry the substitution provenance, so a caller can't read the payload as an app observation.
Key the decision on the tier or provenance the capture returns, not on payload contents or message text.
Done when
- A runner unit test using
systemModalProbeOverrideForTestingshows an observe-only snapshot with a presented system alert never carriesobservationalongside the alert tree. - The interaction or observation guarantee wording for observe-only states the chosen behavior.
- Lingua principale
- TypeScript
- Stelle
- 5.1k
- Fork
- 339
- Merge medio
- 12h 50m
- PR unite (30g)
- 632
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di callstack/agent-device
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
callstack/agent-device#3945 ·
I maintainer di solito rispondono entro 1 giorno
-
Limrun iOS fill reports success but drops non-ASCII textForse già presa @mvanhorn l’ha presa 5 giorni fa. Apertabug ready-for-agent
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
callstack/agent-device#3819 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
callstack/agent-device#1869 ·
I maintainer di solito rispondono entro 1 giorno
-
iOS keyboard capture can race dismissal and omit the input assistant barForse già presa @shamilovtim l’ha presa oggi. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 51/100
callstack/agent-device#3957 ·
I maintainer di solito rispondono entro 1 giorno
-
iOS fill can report TEXT_ENTRY_MISMATCH before the confirmation deadlineForse già presa @shamilovtim l’ha presa oggi. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
callstack/agent-device#3952 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di callstack/agent-device
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Merit-Systems/x402scan#1312 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Native Web
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
digitalfabrik/integreat-app#4517 ·
I maintainer di solito rispondono entro 2 giorni
-
TLS guide repeats certs/ in the certificate directoryForse già presa @maheshrijal l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
prometheus/docs#3156 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
medusajs/dtc-starter#90 ·
I maintainer di solito rispondono entro 1 giorno