Purpose
#2707 fixed the touch-overlay export (always export through AVAssetExportPresetHighestQuality, plus the verifyCompositedOverlay self-check) and was proven on the non-rot90 iPhone 17 in #2767. The #2707 completion matrix also names the iPhone Duo inner panel — the only Apple route with a rot90 preferredTransform, where the composition renderSize, the export transform, and the upright size check can disagree. That row was not run because the Duo was held by a live session when #2767 landed. Splitting it out here per #2767 (comment) review.
Required behavior
On the iPhone Duo inner panel (unfolded, lit inner, rot90 preferredTransform), with the current apple/runner/AgentDeviceRunner/RecordingScripts/recording-overlay.swift:
- A touched recording exports upright at the same transform-applied track size as the same recording under
--hide-touches.
record stop reports no overlayWarning — the compositor neither drops the overlay nor publishes a sideways or all-black track.
A failure mode is a Duo user losing the overlay (overlayWarning) or getting a sideways export; the iPhone 17 run cannot reach this branch.
Completion conditions
Run the gated test/integration/recording-overlay.test.ts e2e (or the CLI sequence) on the inner panel at the #2707 fix head and attach:
- a short-tap
record stop --json with no overlayWarning and a render size equal to the --hide-touches control of the same tap — upright (2006x2852), not the sideways 2853x2007 coding grid;
- a ~90s taps+scroll clip with the same size match, no
overlayWarning, non-zero mean luma, and overlay pixels drawn.
Read sizes through recording-inspect.swift's renderWidth/renderHeight (the AVFoundation resolvedRenderSize the overlay tool already uses), not a second parser. If the compositor cannot satisfy these, fix the rot90 handling in recording-overlay.swift and re-measure.
Dependencies
Purpose
#2707 fixed the touch-overlay export (always export through
AVAssetExportPresetHighestQuality, plus theverifyCompositedOverlayself-check) and was proven on the non-rot90 iPhone 17 in #2767. The #2707 completion matrix also names the iPhone Duo inner panel — the only Apple route with arot90preferredTransform, where the compositionrenderSize, the export transform, and the upright size check can disagree. That row was not run because the Duo was held by a live session when #2767 landed. Splitting it out here per #2767 (comment) review.Required behavior
On the iPhone Duo inner panel (unfolded, lit inner,
rot90preferredTransform), with the currentapple/runner/AgentDeviceRunner/RecordingScripts/recording-overlay.swift:--hide-touches.record stopreports nooverlayWarning— the compositor neither drops the overlay nor publishes a sideways or all-black track.A failure mode is a Duo user losing the overlay (
overlayWarning) or getting a sideways export; the iPhone 17 run cannot reach this branch.Completion conditions
Run the gated
test/integration/recording-overlay.test.tse2e (or the CLI sequence) on the inner panel at the #2707 fix head and attach:record stop --jsonwith nooverlayWarningand a render size equal to the--hide-touchescontrol of the same tap — upright (2006x2852), not the sideways2853x2007coding grid;overlayWarning, non-zero mean luma, and overlay pixels drawn.Read sizes through
recording-inspect.swift'srenderWidth/renderHeight(the AVFoundationresolvedRenderSizethe overlay tool already uses), not a second parser. If the compositor cannot satisfy these, fix therot90handling inrecording-overlay.swiftand re-measure.Dependencies
renderWidth/renderHeightinspect field).