ios: snapshot --observe-only can label a substituted system-alert tree as an app observation
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 40/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 5.1k
- Fork
- 339
- Merge trung bình
- 12 giờ 50 phút
- Pull request đã merge (30 ngày)
- 632
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của callstack/agent-device
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
callstack/agent-device#3945 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Limrun iOS fill reports success but drops non-ASCII textCó thể đã có người làm @mvanhorn đã nhận 4 ngày trước. Đang mởbug ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
callstack/agent-device#3819 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
callstack/agent-device#1869 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
iOS keyboard capture can race dismissal and omit the input assistant barCó thể đã có người làm @shamilovtim đã nhận hôm nay. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 51/100
callstack/agent-device#3957 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
iOS fill can report TEXT_ENTRY_MISMATCH before the confirmation deadlineCó thể đã có người làm @shamilovtim đã nhận hôm nay. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
callstack/agent-device#3952 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của callstack/agent-device
Issue tương tự
-
Manager flashes an empty "errorOccurred" dialog while redirecting a logged-out user to loginĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
openremote/openremote#3487 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
coollabsio/jean#867 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
ehmpathy/rhachet-roles-bhuild#616 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
📘 Docs supabase/cli
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug(cli): theme file home-directory check uses startsWith (sibling dirs pass, Windows casing fails)Đang mởarea/core kind/bug priority/p2 status/bot-triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 79/100
google-gemini/gemini-cli#29955 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày