Skip to content

Commit 3155aea

Browse files
authored
docs(ios): scope the overlay defect to touch drawing, not rot90 (#2709)
ADR 0025 attributes the touch-overlay export failure to the inner panel's `rot90` track and cites an intact non-rotated iPhone 17 recording as the control. That control had no touches to draw, so it proved nothing: measured on an iPhone 17 with no rotated panel, a 10s recording containing two taps exports `220x480` while the same taps under `--hide-touches` export `1206x2622`, and a 97s clip with touches exports `480x220` at mean luma 0.00. Recorded as #2707. The `--hide-touches` guidance stays, but the reason changes: touches are unavailable in recordings that contain interactions, on any panel.
1 parent 7e741b7 commit 3155aea

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

‎docs/adr/0025-foldable-apple-panels.md‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,18 @@ and honors it per panel; sampled mean luma over the whole frame:
159159
| no `--display` | 2006x2852 | 241.42 |
160160

161161
`record start`/`record stop` exit 0 in both poses, and with `--hide-touches` the export keeps the
162-
captured geometry (`2006x2852`, mean luma 241.42). Without it, the touch-overlay exporter is broken
163-
for the inner panel's `rot90` track: it returns a `480x336` black video, and feeding an untouched
164-
raw `simctl` capture straight into `recording-overlay.swift` reproduces a `0x0` zero-duration
165-
output. That exporter defect is independent of panel selection — the same pipeline exports a
166-
non-rotated iPhone 17 recording intact (`1206x2622`, mean luma 228.30) — and is tracked separately.
162+
captured geometry (`2006x2852`, mean luma 241.42). Without it the touch-overlay exporter loses the
163+
track geometry, and on a long clip the frames too.
164+
165+
The trigger is the overlay drawing touch events, not panel rotation. Measured on an iPhone 17
166+
(iOS 27.0), which has no rotated panel: four seconds with no interaction exports `1206x2622`
167+
intact, ten seconds containing two taps exports `220x480`, and the same two taps under
168+
`--hide-touches` export `1206x2622` with the screen content changing across frames. A 97-second
169+
recording with touches exported `480x220` at mean luma 0.00 throughout. An earlier draft of this
170+
section blamed the inner panel's `rot90` track, which was wrong: every failing sample then available
171+
had merely been captured on that panel, and the one non-rotated sample that looked intact had
172+
contained no touches to draw. Feeding an untouched raw `simctl` capture straight into
173+
`recording-overlay.swift` reproduces a `0x0` zero-duration output. Tracked in #2707.
167174

168175
## Verified on a booted Duo
169176

‎docs/agents/device-verification.md‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,12 @@ toolchain per command:
7070
capturable — a capture of the dark panel exits 0 and writes an all-black PNG.
7171
- Pose is not scriptable. Ask the operator to fold or open the device in Device Hub, then
7272
re-snapshot; refs and coordinates do not survive the pose change.
73-
- Record a foldable with `record start --hide-touches`. The touch-overlay exporter returns a small
74-
all-black video for the inner panel's `rot90` track, which reads as a capture failure but is not
75-
one; the raw `simctl` capture behind it is correct. See ADR 0025.
73+
- When a recording must show touches, assume it cannot. The touch-overlay exporter loses the track
74+
geometry whenever it has touch events to draw — `220x480` on a plain iPhone 17 as well as on the
75+
inner panel — and returns all-black frames on long clips, always with exit 0. Record with
76+
`record start --hide-touches` and make the interaction legible through its on-screen effect
77+
(typed text, navigation, a counter) instead of a cursor. The raw `simctl` capture behind it is
78+
correct. See ADR 0025 and #2707.
7679
- An app must adopt the UIScene lifecycle to launch on iOS 27.1 at all: a legacy
7780
`UIApplicationDelegate` app traps at launch inside
7881
`___UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption`, which reads like a broken

0 commit comments

Comments
 (0)