Product commit 3928cd88edbf…, captured 2026-09-26. 7 of 11 targets are marked “Earlier capture”: their results are preserved from an earlier campaign, not re-measured here — Commit provenance lists their source commits. The release gate is the 4 physical rows: iPad physical · web, iPad physical · native, Android physical · web, Android physical · native. Only iPad physical · web carries a calibrated drawing instrument — 4/4 modes captured, 3 of 16 brush aggregates over gate (0 open, 3 explained by a recorded disposition); the other 3 are gates-in-waiting until theirs are calibrated. Mac rows are a regression tripwire, and simulator and emulator rows are advisory (ADR-0156).
Open release-gate reds
94
94 unexplained red cells on the release-gate rows, oldest first. Each counts toward the ADR-0175 completion gate until it is recaptured or explained, however old it is. Ages count to this report's date, 2026-09-26.
| Target | Section | Cell | Reading | Captured |
|---|---|---|---|---|
| iPad physical · native · Portrait · Light | actions | select Magic brush | first frame P95 2 · post-action P95 18 / max 80 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | switch dark theme to light | first frame P95 8 · post-action P95 26 / max 36 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | switch light theme to dark | first frame P95 8 · post-action P95 28 / max 37 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | enable drawing sounds | first frame P95 11 · post-action P95 21 / max 21 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | select coloring page | first frame P95 8 · post-action P95 25 / max 82 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | clear coloring page | first frame P95 3 · post-action P95 24 / max 35 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Light | actions | show AI waiting print | first frame P95 8 · post-action P95 17 / max 42 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | select Magic brush | first frame P95 7 · post-action P95 17 / max 84 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | switch dark theme to light | first frame P95 8 · post-action P95 30 / max 36 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | switch light theme to dark | first frame P95 8 · post-action P95 25 / max 36 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | select coloring page | first frame P95 4 · post-action P95 17 / max 84 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | clear coloring page | first frame P95 6 · post-action P95 24 / max 30 ms | 2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | actions | show AI waiting print | first frame P95 6 · post-action P95 17 / max 41 ms | 2026-09-23 · 3 days |
| iPad physical · web · Portrait · Light | actions | select custom color | first frame P95 10 · post-action P95 23 / max 39 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | select Magic brush | first frame P95 3 · post-action P95 17 / max 76 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | open Settings section: AI Art | first frame P95 3 · post-action P95 17 / max 43 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | switch dark theme to light | first frame P95 8 · post-action P95 33 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | switch light theme to dark | first frame P95 8 · post-action P95 34 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | disable drawing sounds | first frame P95 4 · post-action P95 24 / max 28 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | enable drawing sounds | first frame P95 10 · post-action P95 38 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | enable auto-save on delete | first frame P95 2 · post-action P95 27 / max 30 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | disable auto-save on delete | first frame P95 10 · post-action P95 30 / max 34 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | enable tool drawer | first frame P95 12 · post-action P95 17 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | disable screenshot action button | first frame P95 4 · post-action P95 26 / max 30 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | enable screenshot action button | first frame P95 8 · post-action P95 33 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | close Settings | first frame P95 3 · post-action P95 26 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | open coloring book | first frame P95 10 · post-action P95 28 / max 28 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | select coloring page | first frame P95 10 · post-action P95 20 / max 77 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | clear coloring page | first frame P95 8 · post-action P95 33 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Light | actions | show AI waiting print | first frame P95 25 · post-action P95 23 / max 46 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | select custom color | first frame P95 12 · post-action P95 26 / max 45 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | select Magic brush | first frame P95 5 · post-action P95 17 / max 91 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | switch dark theme to light | first frame P95 9 · post-action P95 44 / max 53 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | switch light theme to dark | first frame P95 8 · post-action P95 35 / max 39 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | disable drawing sounds | first frame P95 9 · post-action P95 23 / max 41 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | enable drawing sounds | first frame P95 9 · post-action P95 22 / max 31 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | disable auto-save on delete | first frame P95 10 · post-action P95 33 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | disable tool drawer | first frame P95 6 · post-action P95 36 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | enable tool drawer | first frame P95 13 · post-action P95 17 / max 39 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | enable screenshot action button | first frame P95 11 · post-action P95 33 / max 36 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | close Settings | first frame P95 4 · post-action P95 26 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | reopen coloring books | first frame P95 13 · post-action P95 21 / max 24 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | open coloring book | first frame P95 10 · post-action P95 24 / max 24 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | clear coloring page | first frame P95 8 · post-action P95 34 / max 53 ms | 2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | actions | show AI waiting print | first frame P95 28 · post-action P95 17 / max 72 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | select custom color | first frame P95 11 · post-action P95 20 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | select Magic brush | first frame P95 5 · post-action P95 17 / max 81 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | open Settings section: AI Art | first frame P95 2 · post-action P95 17 / max 48 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | switch dark theme to light | first frame P95 8 · post-action P95 36 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | switch light theme to dark | first frame P95 7 · post-action P95 36 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | disable drawing sounds | first frame P95 9 · post-action P95 36 / max 42 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | enable drawing sounds | first frame P95 8 · post-action P95 37 / max 41 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | enable auto-save on delete | first frame P95 7 · post-action P95 25 / max 25 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | disable auto-save on delete | first frame P95 11 · post-action P95 28 / max 30 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | disable tool drawer | first frame P95 6 · post-action P95 34 / max 34 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | enable tool drawer | first frame P95 12 · post-action P95 17 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | disable screenshot action button | first frame P95 5 · post-action P95 23 / max 27 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | enable screenshot action button | first frame P95 8 · post-action P95 29 / max 31 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | close Settings | first frame P95 4 · post-action P95 25 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | open coloring book | first frame P95 10 · post-action P95 22 / max 29 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | actions | clear coloring page | first frame P95 8 · post-action P95 32 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | select custom color | first frame P95 10 · post-action P95 23 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | select Magic brush | first frame P95 5 · post-action P95 17 / max 84 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | open Settings section: AI Art | first frame P95 2 · post-action P95 18 / max 42 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | switch dark theme to light | first frame P95 8 · post-action P95 35 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | switch light theme to dark | first frame P95 8 · post-action P95 33 / max 37 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | disable drawing sounds | first frame P95 7 · post-action P95 36 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | enable drawing sounds | first frame P95 7 · post-action P95 22 / max 26 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | enable auto-save on delete | first frame P95 6 · post-action P95 25 / max 25 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | disable auto-save on delete | first frame P95 8 · post-action P95 29 / max 31 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | disable tool drawer | first frame P95 7 · post-action P95 32 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | enable tool drawer | first frame P95 11 · post-action P95 17 / max 38 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | disable screenshot action button | first frame P95 5 · post-action P95 25 / max 25 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | enable screenshot action button | first frame P95 5 · post-action P95 30 / max 34 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | close Settings | first frame P95 5 · post-action P95 27 / max 40 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | open coloring book | first frame P95 11 · post-action P95 21 / max 26 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | clear coloring page | first frame P95 8 · post-action P95 31 / max 36 ms | 2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | actions | show AI waiting print | first frame P95 25 · post-action P95 17 / max 45 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | select Magic brush | first frame P95 5 · post-action P95 17 / max 86 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | switch dark theme to light | first frame P95 5 · post-action P95 25 / max 33 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | switch light theme to dark | first frame P95 4 · post-action P95 26 / max 33 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | select coloring page | first frame P95 2 · post-action P95 25 / max 87 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | clear coloring page | first frame P95 6 · post-action P95 26 / max 27 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Light | actions | show AI waiting print | first frame P95 3 · post-action P95 18 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | select Magic brush | first frame P95 6 · post-action P95 17 / max 85 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | switch dark theme to light | first frame P95 9 · post-action P95 30 / max 33 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | switch light theme to dark | first frame P95 4 · post-action P95 25 / max 35 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | select coloring page | first frame P95 5 · post-action P95 24 / max 87 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | clear coloring page | first frame P95 7 · post-action P95 26 / max 28 ms | 2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | actions | show AI waiting print | first frame P95 4 · post-action P95 17 / max 38 ms | 2026-09-25 · 1 day |
| Android physical · native · Portrait · Light | actions | empty after clear: LANDSCAPE to PORTRAIT rotation | first frame P95 10.1 · post-action P95 8.4 / max 41.8 ms | 2026-09-26 · 0 days |
| Android physical · native · Portrait · Light | actions | with ink: LANDSCAPE to PORTRAIT rotation | first frame P95 9.8 · post-action P95 8.4 / max 41.7 ms | 2026-09-26 · 0 days |
| Android physical · native · Portrait · Dark | actions | switch dark theme to light | first frame P95 4 · post-action P95 24.9 / max 33.3 ms | 2026-09-26 · 0 days |
| Android physical · native · Landscape · Light | actions | empty after clear: LANDSCAPE to PORTRAIT rotation | first frame P95 13.4 · post-action P95 16.7 / max 41.7 ms | 2026-09-26 · 0 days |
Results by target
Four modes per target · hover or tap any cell for the numbers behind itRegression tripwire · Mac3 targets · 12 modesA Mac cell that turns red on a change that was green on main is a finding to attribute before shipping; a cell that was already red is not a remainder.
Advisory · simulators and emulators4 targets · 16 modesThese rows narrow or reject a hypothesis but never fail or approve a release; their red stays visible so a systemic regression still shows.
Most drawing cells aggregate a single capture, so treat a result close to its limit as provisional; each tooltip states the cell’s capture count.
Discrete actions
67 action columns · coverage varies by mode · color is the worst of first-frame P95, post-action P95, and post-action max against its gateRegression tripwire · Mac3 targets · 12 modesA Mac cell that turns red on a change that was green on main is a finding to attribute before shipping; a cell that was already red is not a remainder.
Advisory · simulators and emulators4 targets · 16 modesThese rows narrow or reject a hypothesis but never fail or approve a release; their red stays visible so a systemic regression still shows.
Action-number key
- 1expand action drawer
- 2collapse action drawer
- 3change ink color
- 4open custom color picker
- 5select custom color
- 6open brush menu
- 7select crayon brush
- 8select Magic brush
- 9select eraser
- 10select pen brush
- 11open stroke-width menu
- 12change stroke width
- 13open Settings
- 14open Settings section: Sound
- 15open Settings section: Tool Drawer
- 16open Settings section: Accessibility
- 17open Settings section: Coloring
- 18open Settings section: AI Art
- 19open Settings section: Saving
- 20open Parent Center
- 21open Settings section: Install
- 22open Settings section: Feedback
- 23open Settings section: What's New
- 24open Settings section: About
- 25switch dark theme to light
- 26switch light theme to dark
- 27disable drawing sounds
- 28enable drawing sounds
- 29enable auto-save on delete
- 30disable auto-save on delete
- 31disable tool drawer
- 32enable tool drawer
- 33disable screenshot action button
- 34enable screenshot action button
- 35close Settings
- 36first open of coloring books
- 37reopen coloring books
- 38open coloring book
- 39select coloring page
- 40clear coloring page
- 41save screenshot
- 42show AI waiting print
- 43finish AI waiting print
- 44undo latest stroke
- 45tap unavailable undo
- 46clear drawing
- 47clear drawing on a coloring page
- 48empty after clear: PORTRAIT to LANDSCAPE rotation
- 49undo clear after blank rotation
- 50undo restored stroke after blank rotation
- 51clear restored drawing after blank rotation
- 52empty after clear: LANDSCAPE to PORTRAIT rotation
- 53with ink: PORTRAIT to LANDSCAPE rotation
- 54with ink: LANDSCAPE to PORTRAIT rotation
- 55open color menu
- 56scroll coloring pages
- 57disable advanced controls
- 58enable advanced controls
- 59open coloring books
- 60enable Night Mode in the compact shell
- 61disable Night Mode in the compact shell
- 62disable drawing sounds in the compact shell
- 63enable drawing sounds in the compact shell
- 64disable tool drawer in the compact shell
- 65enable tool drawer in the compact shell
- 66disable advanced controls in the compact shell
- 67enable advanced controls in the compact shell
Actions failing in the most modes
Counted across the scoreable modes of the 4 release-gate rows — Mac tripwire and simulator/emulator advisory rows, and the row filters above, do not change this list.
- 1switch dark theme to light9 of 12 modes failed · worst 2.2× gate
- 2select Magic brush8 of 16 modes failed · worst 2.7× gate
- 3clear coloring page8 of 16 modes failed · worst 1.7× gate
- 4switch light theme to dark8 of 12 modes failed · worst 1.6× gate
- 5show AI waiting print7 of 16 modes failed · worst 2.1× gate
- 6select coloring page5 of 16 modes failed · worst 2.6× gate
- 7enable drawing sounds5 of 12 modes failed · worst 1.9× gate
- 8disable drawing sounds4 of 12 modes failed · worst 1.8× gate
- 9disable auto-save on delete4 of 12 modes failed · worst 1.6× gate
- 10enable screenshot action button4 of 12 modes failed · worst 1.6× gate
Notes and method
What the cells do and do not claimCapture limitations
19
- This fold measures product commit 3928cd88edbf441530e473a4e3c0b6767926bfc6, main on 2026-09-23, at which all four physical release-gate rows were recaptured from scratch on 2026-09-23. At that fold, the strict staleness check of the time (ADR-0159, since superseded by ADR-0175) reported every freshly captured section current at that commit.
- Freshly captured at 3928cd88: every drawing and pen-undo section in all four modes of all four physical rows, except the physical Android web drawing and undo sections: portrait-light and portrait-dark were recaptured at 1e3016ec407413a255e69d6eddaef2274dd3ee3a on 2026-09-25 (issue 2229), and landscape-light and landscape-dark at 8a6ef42bc7a233abe9ca35cb6998daac60e0aa91 on 2026-09-26 (issue 2337); and the portrait-light and portrait-dark action sweeps on physical iPad native. The other fourteen physical action sections were captured after that campaign and folded one section at a time, twelve after harness fixes (issue 2268) and the two Android web portrait sections after a product change (issue 2225): first, all four physical iPad web sweeps at 8e6700d5d801eb481a4bde3d47cea69135dd71b4 over the secure-origin front (issue 2211), and both physical iPad native landscape sweeps at d50d73927f1835bbe231d1c2450f49fbe5803f53, the contentInset fix (issue 2212). Each keeps its own product commit beside its mode’s drawing commit, and its capture date is its fold date, because action artifacts record no capture clock. Six more were recaptured on the phone at 87da0c5a3b4a789d36678a4e10c873f76a6f3c04 on 2026-09-25 and folded the same way (issue 2268): both physical Android web landscape sweeps over direct CDP, and all four physical Android native sweeps through Appium attached to the Capacitor WebView. All eight physical Android action sections were then recaptured at 9993b68445ca19f8ab24d0f11c70c1bd5a8ae54e on 2026-09-26 and folded the same way (issue 2225, the theme change's veil replacing its view transition): the four Android web sweeps over direct CDP and the four Android native sweeps through Appium. No physical action section is preserved.
- Why twelve of those physical action sweeps were folded after the campaign for harness reasons: physical Android web landscape sweeps failed at 3928cd88 because every color swatch in the landscape compact color flyout measured zero size, and physical Android native sweeps failed at 3928cd88 when the native tap on the Dark theme button was not captured (portrait) and when Appium could not rotate the device to ROTATION_270 (landscape). Both harness failures were fixed afterwards (issues 2213, 2214, and 2215); those first completed sweeps were not kept, so all six sections were recaptured at 87da0c5a, and again with both Android web portrait sections at 9993b684 (issue 2225). Physical iPad web had no scoreable unattended sweep at 3928cd88 because its AI-waiting actions need a secure context; physical iPad native landscape sweeps failed when the second Undo tap after a landscape-to-portrait rotation landed on the canvas. Both are now folded from their later captures.
- Every physical action section comes from a sweep that covers the current action groups, including ai-waiting and unavailable. The physical Android web and physical Android native landscape modes measure the compact Settings shell; its tool-drawer toggles are new labels, which render as missing, not N/A, on preserved advisory rows whose older plans never offered them.
- The physical Android native drawing and undo sections come from a probe-host server.url build carrying the ADR-0135 split transport. Those artifacts record pageIdentity unprovable by construction, because the fixed server.url carries no per-cell nonce. Its three drift references were captured before its landscape cells, whose first attempt wrote no artifact and which were recaptured after the end reference, so the references do not bracket the landscape cells.
- Every physical drawing and undo cell passed its input-fidelity gate. Physical iPad web carries three drawing lost-frame reds against the 1% budget: landscape/dark pen 1.13%, landscape/light eraser 1.03%, and landscape/dark eraser 1.01%. The other seven of the ten e5142fab reds now read 0.71-0.98%. ADR-0174, as amended by the 2026-09-24 rulings, explains all three: the pen reading is inside the driven pen band (above 1%, up to 1.37%), and real-finger eraser captures at 8e6700d5 in both landscape modes (0.04% light, 0% dark) explain both eraser cells. Physical Android web portrait carried six drawing reds (1.03-1.45%) at 3928cd88. That capture had two rig faults. In every portrait cell, an accessibility overlay on the rig phone dropped 20 of 160 strokes (issue 2229), and every stroke landed 48 CSS px below its planned position (issue 2271). The recapture at 1e3016ec corrected both at once, so it does not separate their effects. An earlier A/B cleared only the overlay and kept the offset: portrait-light crayon read a 0.75% median at 3928cd88 against 0.72% at e5142fab. The recapture delivered 160 of 160 strokes in every cell, with the overlay check passing and every stroke landing where it was dispatched. All eight portrait cells now read 0.22-0.52%, and the drift references read 0.38, 0.65, and 0.40%. The physical Android native row carries no red cell.
- The physical Android web landscape-light and landscape-dark drawing and undo sections captured at 3928cd88 were affected by a dispatch offset. The harness counted the navigation bar beside the page as browser chrome, so every stroke landed 48 CSS px right of its planned position (issue 2271, fixed by PR 2295). On the corrected geometry, every landscape pen capture then failed its undo check, because a 64 px downscale lost the 12 pixels that undo 10 changed (issue 2337). The check now hashes every pixel, and both sections were recaptured at 8a6ef42b. Every cell delivered 160 of 160 strokes, each landing where it was dispatched, and all ten undos restored different pixels.
- The physical iPad web row is the calibrated Safari approval target. ADR-0156 also requires the physical iPad native and both physical Android rows to be current and scored before campaign completion. Drawing and undo were captured on all four rows at 3928cd88, and physical Android web has since been recaptured on the corrected geometry: portrait at 1e3016ec and landscape at 8a6ef42b. Every physical action section is now current, and no physical section still waits for the issue 2271 recapture.
- Simulator, emulator, and Mac rows were not recaptured in this physical release-gate campaign. Every section on those rows is explicitly preserved from the prior published report and makes no claim of currency at the final product commit.
- Action cells are scored under ADR-0156: a post-action max breach counts only when two of the three scored repeats show it; a single breaching repeat is recorded as unconfirmed rather than red. Read each artifact's scoredActionFrameGaps rather than treating the pooled P95/P99/max triple as three repeats.
- Android physical web and native drawing use the ADR-0135 split input/measurement transport. Fresh artifacts record driving cadence, input fidelity, refresh regime, and page identity. Split-native captures also attest that art.splotch.app was the foreground package.
- Every Android drawing artifact matched the declared 120 Hz regime (8.3 ms beat), and every iPad drawing artifact matched the 60 Hz regime (17 ms beat). The Android browser moved between campaigns: Chrome 152 to 153 on the web row and WebView Chrome 151 to 152 on the native row.
- Every folded drawing cell is its first valid capture in the campaign ledgers; no valid red was rerun. The one discarded capture is an off-regime (120 Hz) iPad web start reference, superseded by an in-regime recapture.
- Physical iPad capture needs a root-owned RemoteXPC tunnel before iOS 26 XCUITest discovery sees the device. See docs/PROFILING-IPAD.md.
- A landscape phone renders the compact Settings shell, which offers quick toggles and a pointer to portrait instead of the section list. Compare action modes against the same recorded settingsShell; a different label set between portrait and landscape is a shell difference, not a regression.
- Firefox is Gecko, which no Splotch deployment target ships; read it as the third desktop browser a parent might open splotch.art in, never as evidence about WebKit or Blink.
- Desktop captures used exact 1366×915 or 915×1366 CSS viewports at DPR 2 — iPad Pro 12.9 geometry, so the canvas area matches the physical-iPad rows. Playwright retains the requested page viewport regardless of the browser window size.
- Raw perf-profiles are local scratch and are mostly untracked. ADR-0138 keeps representative whole captures under perf-profiles/evidence/; every section not promoted from this campaign is marked preserved before the strict regeneration.
- 28 cells carry historical results preserved from data.json rather than re-read raw captures: The 2026-09-23 campaign freshly captured every physical drawing and undo section and the portrait action sweeps on physical iPad native. The other fourteen physical action sections were later folded one section at a time from their own captures (issues 2268 and 2225), so no physical section is preserved. The advisory iPad Simulator, Android Emulator, and Mac desktop rows are preserved wholesale, and every preserved section keeps its original product commit and does not claim currency. Fresh physical evidence is promoted under perf-profiles/evidence/2026-09-23-matrix-*-3928/. Preserved cells: iPad simulator · web · portrait-light (drawing, undo, actions); iPad simulator · web · portrait-dark (drawing, undo, actions); iPad simulator · web · landscape-light (drawing, undo, actions); iPad simulator · web · landscape-dark (drawing, undo, actions); iPad simulator · native · portrait-light (drawing, undo, actions); iPad simulator · native · portrait-dark (drawing, undo, actions); iPad simulator · native · landscape-light (drawing, undo, actions); iPad simulator · native · landscape-dark (drawing, undo, actions); Android emulator · web · portrait-light (drawing, undo, actions); Android emulator · web · portrait-dark (drawing, undo, actions); Android emulator · web · landscape-light (drawing, undo, actions); Android emulator · web · landscape-dark (drawing, undo, actions); Android emulator · native · portrait-light (drawing, undo, actions); Android emulator · native · portrait-dark (drawing, undo, actions); Android emulator · native · landscape-light (drawing, undo, actions); Android emulator · native · landscape-dark (drawing, undo, actions); Mac · Chrome · portrait-light (drawing, undo, actions); Mac · Chrome · portrait-dark (drawing, undo, actions); Mac · Chrome · landscape-light (drawing, undo, actions); Mac · Chrome · landscape-dark (drawing, undo, actions); Mac · Safari · portrait-light (drawing, undo, actions); Mac · Safari · portrait-dark (drawing, undo, actions); Mac · Safari · landscape-light (drawing, undo, actions); Mac · Safari · landscape-dark (drawing, undo, actions); Mac · Firefox · portrait-light (drawing, undo, actions); Mac · Firefox · portrait-dark (drawing, undo, actions); Mac · Firefox · landscape-light (drawing, undo, actions); Mac · Firefox · landscape-dark (drawing, undo, actions).
How scoring works
Gates. Drawing passes when blank-paper paint P95 ≤ 20 ms, P99 ≤ 33 ms, max ≤ 50 ms, and lost frame time stays under 1% of in-contact time. Undo passes at engine P95 ≤ 20 ms, next-frame P95 ≤ 33 ms, and next-frame max ≤ 50 ms. An action passes at first-frame P95 ≤ 33.5 ms, post-action frame P95 ≤ 20 ms, and post-action frame max ≤ 33.5 ms. A post-action max over its gate counts only when 2 of the three scored repeats show it (ADR-0156); one breaching repeat renders as a warning, not a failure. Ready P95 appears in tooltips but is not gated: its completion semantics differ per action, so a frame-gate pass says nothing about end-to-end response time.
Lost-frame budget exceptions (ADR-0137). Cells held to a different lost-frame budget, and why:
- Crayon on
ipad-device-web— 1.5%. Crayon deposits wax through pattern-filled strokes that Safari prices per path-length, so the web build cannot merge them across pointermoves (the native WKWebView prices per op and merges per frame instead — ADR-0137 as amended), so it pays a per-move cost every other brush coalesces away, and mirror-by-blit already took it from 2.11%. Across all four orientation/theme modes its median is 1.11-1.17%, but a single capture of landscape-light measured 1.40% and re-measured to 1.17% over three samples. A matrix cell IS a single capture, so this is set above the observed single-sample excursion rather than above the median. - Crayon on
ipad-device-native— 1.5%. Per-frame crayon op merging (ADR-0137 as amended, issue 1236) brought the native WKWebView from a 2.14% published cell to Safari parity: three same-session samples on 2026-08-25 measured 0.96/1.11/1.44%, median 1.11% — inside the web cell's own 1.11-1.17% median band with the same shape of single-sample excursion. The same residual per-move wax cost now binds both runtimes, so the same 1.5% single-capture budget applies, set by the same above-the-excursion rule.
Recorded dispositions. Drawing reds an ADR explains. The cell still renders FAIL, because the gate still failed; its dashed outline links the ADR that says why the red is not an open product red:
- Pen on
ipad-device-web— lost-frame reds above 1%, up to 1.37%, paint gates passing, ADR-0174. Synthesized-touch transport cost, not product cost: every real-finger pen capture reads 0–0.06%, and on one commit in one session the driven arm read 1.18% and the finger 0%. A driven pen red above 1%, up to 1.37%, with passing paint gates is explained; a reading above 1.37% needs a real-finger capture at that commit. - Eraser on
ipad-device-web— lost-frame reds 1.19–1.25% at e5142fab8ff2 or 1.01–1.03% at 3928cd88edbf, paint gates passing, ADR-0174. Explained by real-finger eraser captures in both landscape modes (0.04% light, 0% dark), which cover the named readings only: 1.19–1.25% at e5142fab and 1.01–1.03% at 3928cd88. A driven eraser red at any other commit needs a real-finger capture at that commit.
Action allowances on ipad-device-web (ADR-0090, ADR-0160). Actions held to a measured allowance instead of the base post-action gates, and why; every target without a ledger scores them at the base gates:
- open Settings — post-action P95 ≤ 29 ms. Worst committed P95 28 ms (perf-profiles/evidence/2026-09-05-epic-1567-advanced-controls-certification, landscape/dark at ebc7673b), 27 ms in six further September 2026 captures across three modes at 3c017796, 9af487b3 and e5142fab, 20-26 ms in eleven more. The pane is prewarmed (ADR-0049 amendment) and its open still carries the showModal flip and the heaviest section reveal; Instruments aligns the remaining slow frames with animation completion, compositing-hierarchy changes, layer removal and paint, and the bounded `contain: layout paint` candidate measured negative. Raised from the 26 ms of ADR-0090 under ADR-0160.
- close Settings — post-action P95 ≤ 22 ms. Worst committed P95 21 ms in three captures (perf-profiles/evidence/2026-09-05-epic-1567-ipad-e514-control landscape/light and landscape/dark; 2026-09-05-epic-1567-ipad-paper-control portrait/light), 17-20 ms in fifteen others. The same dialog retirement over a full-screen paper layer as the coloring picker; it carries no dedicated trace, so ADR-0160 records the attribution as shared and the reopen condition as its own.
- select coloring page — post-action P95 ≤ 30 ms. Worst committed P95 29 ms (perf-profiles/evidence/2026-09-05-epic-1567-landscape-retirement-controls, landscape/dark at e5142fab), 26-28 ms in eight further captures, portrait/light green at 17. The 29 ms frame sampled in Instruments is GPU-process IOSurface pool eviction, surface creation and Metal submission with no app evaluation in-frame; seven bounded product mechanisms measured negative or insufficient (issue 1569, 2026-09-06 disposition).
- switch light theme to dark — post-action P95 ≤ 23 ms. Worst committed P95 22 ms (perf-profiles/evidence/2026-09-05-epic-1567-ipad-e514-control, portrait/light), 17 ms in fifteen other captures. A single-capture excursion sized by ADR-0137 worst-single-capture rule: the full-document restyle recomposites every layer in one frame (ADR-0087).
- with ink: PORTRAIT to LANDSCAPE rotation — post-action P95 ≤ 26 ms. Worst committed P95 25 ms in two captures (perf-profiles/evidence/2026-09-05-epic-1567-ipad-paper-control, portrait/light at 141288da), 22-24 ms in four others; the landscape-origin direction reads 17-18. The slow frame is the first full post-resize interval of the OS rotation; the aligned trace holds GPU surface-pool eviction and command submission beside WebContent layout, and paper-sheet compositor pre-promotion measured negative. Supersedes ADR-0156 decision 5 for this direction only; the 33.5 ms max gate stays.
- open Settings — post-action max ≤ 56 ms. Capture-environment allowance (issue 1130, ADR-0090 2026-08-26 amendment): every hitch under the 44-55 ms open-Settings frame lands on the automation overlay stack with zero WebContent hitches, but the trace attributes per layer and the real-finger control was confounded by the persistent AutomationModeUI overlay. Covers the observed three-beat frame plus jitter; a clean-device control that still shows the frame retires it.
Action allowances on android-device-web (ADR-0162). Actions held to a measured allowance instead of the base post-action gates, and why; every target without a ledger scores them at the base gates:
- disable Night Mode in the compact shell — post-action P95 ≤ 33.5 ms. Worst committed P95 33.4 ms (perf-profiles/evidence/2026-09-06-issue-1696-android-night-toggle, landscape/dark full-plan control at f42d0994, two beats in all three scored repeats), 33.3 ms in the e5142fab row capture (perf-profiles/evidence/2026-09-06-epic-1567-android-device-web-e514, landscape/dark) and once in landscape/light (perf-profiles/evidence/2026-09-05-epic-1567-night-mode-control-trace at a9438fc7); 16.7-17.1 ms in ten other captures of the same cell. The paired Chrome trace (issue 1696) puts the click's input task at 26-39 ms on CrRendererMain in every repeat — 9-12 ms of dispatch and a 9.5-14.7 ms whole-document style recalc for the theme token flip that the bounded closed-dialog treatment (PR 1702) did not move — with a DroppedFrame at the first BeginFrame after every click. One 0.1 ms clock quantum above the worst reading and equal to the max gate, so a P95 past it needs three over-gate gaps: spread across repeats the max gate confirms them, concentrated in one repeat this allowance alone fails them.
Release roles (ADR-0156). Release gate · physical iPad and Android: These rows gate a release: a scoreable red cell needs a recorded product outcome, and a cell an uncalibrated instrument cannot score counts as red here, not as absent. Regression tripwire · Mac: A Mac cell that turns red on a change that was green on main is a finding to attribute before shipping; a cell that was already red is not a remainder. Advisory · simulators and emulators: These rows narrow or reject a hypothesis but never fail or approve a release; their red stays visible so a systemic regression still shows. A row’s role follows the hardware it ran on, not its fidelity class; the chip on a release-gate row says whether its drawing instrument is calibrated or the row is a gate-in-waiting.
Empty cells. A cell without a product verdict renders one of three ways. A single struck stroke is N/A by design: the check does not apply to that runtime. A diagonal hatch is unavailable: the capture exists but cannot be scored, because it failed an input-fidelity check, was measured at a refresh rate this target is not scored against, has a failed idle control, or is preserved evidence with no current verdict. A dashed, empty outline is missing: nothing valid was captured, so it is a gap to close. Every tooltip names the reason.
The idle-frame control. Every action sweep includes a control sample that performs no interaction, proving the target can hold frames at rest. When the control fails its own gate the host was dropping frames on its own, so none of that mode’s action scores can be attributed to the app: the mode is marked “no control” and left out of the failure ranking.
One capture per cell. Most drawing cells have one capture behind them; each tooltip states the count. A result close to a limit needs repeat captures before it is trusted either way (ADR-0136).
Focused action captures. Sources are applied in their listed order within each mode. A focused capture replaces only its named actions and requires a full sweep from the same product commit; anything else is refused. Raw drawing tables and action samples are re-scored with the current metric definitions whenever this report is regenerated — stored verdicts are not trusted. A struck action cell is N/A under the action plan that mode’s product surface declared; a dashed one is missing, and both tooltips keep the reason.
Rotation first frames on iPad Safari are N/A rather than gated: under ADR-0142’s resize anchor the value reads 0–2 ms by construction, so rotation there is scored by the post-action frame gates alone.
Candidate actions
14
Additional scenarios and their remaining coverage.
| Priority | Action | Rationale | Applicability | Status |
|---|---|---|---|---|
| P0 | Sound-source and Clear gesture matrix | Exercise Drawing/Delete sound toggles, volume drag, and Clear cancel/reverse/success paths with audio enabled and disabled. | All web/native targets | Partial: drawing-sound toggle and successful Clear captured; delete sound, volume, and cancelled/reversed Clear remain. |
| P0 | Coloring-backed brush matrix | Measure Pen, Crayon, Magic, and Eraser on active coloring art, including reversal, undo, clear, theme swap, and rotation. | All targets | Partial: page phases and selection/clear captured; dense ink/theme/rotation combinations remain. |
| P0 | Continuous Settings gestures | Exercise pane/sidebar scrolling, phone drill/back, quick switches, button-size and volume sliders, and individual tool toggles. | All targets; touch variants on mobile | Not captured; current suite measures section navigation and selected toggles. |
| P0 | Coloring picker cold/warm and race paths | Separate cold open from warm reopen, page-grid scroll, back, double-tap guard, active-page clear, and progressive pack arrival. | All targets | Partial: open/book/scroll/select/clear captured; cold/warm and race variants remain. |
| P1 | Deterministic AI interaction flow | Gate local frames for style choice, generating/minimize/restore, drawing while waiting, completion, refusal, retry, and result decode without gating network latency. | Physical targets plus one simulator control per OS | Not captured. |
| P1 | Parental Gate flow | Measure guarded open, wrong-answer regeneration, backspace, correct solve, close, Parent Center retarget, and policy confirmation. | All native targets; representative web targets | Partial: Parent Center entry captured; full gate interaction remains. |
| P1 | Screenshot cold versus warm | Separate pointerdown preparation, save readiness, repeated warm save, active-coloring export, and native OS handoff. | All targets | Partial: one intercepted save action captured. |
| P1 | Theme swaps on realistic content | Compare blank, dense Pen/Crayon, and active coloring/Magic swaps to expose decode, style, and raster costs. | All targets | Partial: Settings theme round-trip captured without dense content. |
| P1 | Rotation state matrix | Add Settings-open, picker-open, active coloring with ink, AI waiting, and slider-active rotations. | Rotatable mobile targets | Partial: blank and generic-ink rotations captured where platform setup allowed. |
| P2 | True custom-color drag | Measure drag-across/explore/lift selection, gap snapping, and cancellation instead of a single click. | Touch and pointer targets | Not captured. |
| P2 | Settings pinch text zoom | Exercise CSS zoom over the fully mounted Settings surface and reset on section change/close. | Physical touch targets | Not captured. |
| P2 | Apple Pencil gestures | Measure Pencil double-tap brush/eraser switching and Pencil/Scribble Clear guards. | Physical iPad | Not captured by this campaign. |
| P2 | Platform-only shell gestures | Cover Android web fullscreen/install-banner paths and desktop Ctrl+Z undo. | Android web and desktop web | Not captured. |
| P2 | Lifecycle recovery | Background/foreground during dense drawing, AI generation, and coloring-pack work to validate recovery and context restoration. | Physical and emulated mobile targets | Not captured. |
Undo timing per mode
Engine time is the whole undo call: the tile restore plus the undo ink-motion ghost. Where a capture recorded the ghost separately, the engine cell adds its P95 and the restore's; next-frame adds the following rendered frame. Gates: engine P95 ≤ 20 ms, next-frame P95 ≤ 33 ms, next-frame max ≤ 50 ms.
| Target | Engine P95 | Next P95 | Next max | Gate |
|---|---|---|---|---|
| iPad physical · web · Portrait · Light | 2 | 11 | 11 | Pass |
| iPad physical · web · Portrait · Dark | 2 | 10 | 10 | Pass |
| iPad physical · web · Landscape · Light | 2 | 10 | 10 | Pass |
| iPad physical · web · Landscape · Dark | 2 | 11 | 11 | Pass |
| iPad physical · native · Portrait · Light | 3 | 13 | 13 | Pass |
| iPad physical · native · Portrait · Dark | 2 | 12 | 12 | Pass |
| iPad physical · native · Landscape · Light | 3 | 12 | 12 | Pass |
| iPad physical · native · Landscape · Dark | 2 | 13 | 13 | Pass |
| Android physical · web · Portrait · Light | 5.7 (ink motion P95 4.3 ms · restore P95 1.4 ms) | 14.5 | 14.5 | Pass |
| Android physical · web · Portrait · Dark | 6.1 (ink motion P95 4.1 ms · restore P95 2 ms) | 14.2 | 14.2 | Pass |
| Android physical · web · Landscape · Light | 5.9 (ink motion P95 3.8 ms · restore P95 2.1 ms) | 12.9 | 12.9 | Pass |
| Android physical · web · Landscape · Dark | 5.3 (ink motion P95 3.4 ms · restore P95 1.9 ms) | 13 | 13 | Pass |
| Android physical · native · Portrait · Light | 4.1 | 5.7 | 5.7 | Pass |
| Android physical · native · Portrait · Dark | 5.4 | 6 | 6 | Pass |
| Android physical · native · Landscape · Light | 6.5 | 6.1 | 6.1 | Pass |
| Android physical · native · Landscape · Dark | 5.2 | 6.2 | 6.2 | Pass |
| Mac · Chrome · Portrait · Light | 0.4 | 7.5 | 7.5 | Pass |
| Mac · Chrome · Portrait · Dark | 0.4 | 6.9 | 6.9 | Pass |
| Mac · Chrome · Landscape · Light | 0.3 | 6.4 | 6.4 | Pass |
| Mac · Chrome · Landscape · Dark | 0.5 | 7.3 | 7.3 | Pass |
| Mac · Safari · Portrait · Light | 1 | 12 | 12 | Pass |
| Mac · Safari · Portrait · Dark | 1 | 10 | 10 | Pass |
| Mac · Safari · Landscape · Light | 1 | 9 | 9 | Pass |
| Mac · Safari · Landscape · Dark | 1 | 11 | 11 | Pass |
| Mac · Firefox · Portrait · Light | 5 | 7.5 | 7.5 | Pass |
| Mac · Firefox · Portrait · Dark | 5 | 6.9 | 6.9 | Pass |
| Mac · Firefox · Landscape · Light | 4 | 7.6 | 7.6 | Pass |
| Mac · Firefox · Landscape · Dark | 2 | 10.1 | 10.1 | Pass |
| iPad simulator · web · Portrait · Light | 1 | 14 | 14 | Pass |
| iPad simulator · web · Portrait · Dark | 1 | 16 | 16 | Pass |
| iPad simulator · web · Landscape · Light | 1 | 15 | 15 | Pass |
| iPad simulator · web · Landscape · Dark | 1 | 12 | 12 | Pass |
| iPad simulator · native · Portrait · Light | 0 | 15 | 15 | Pass |
| iPad simulator · native · Portrait · Dark | 1 | 14 | 14 | Pass |
| iPad simulator · native · Landscape · Light | 1 | 14 | 14 | Pass |
| iPad simulator · native · Landscape · Dark | 1 | 14 | 14 | Pass |
| Android emulator · web · Portrait · Light | 0.2 | 14.8 | 14.8 | Pass |
| Android emulator · web · Portrait · Dark | 0.3 | 14.4 | 14.4 | Pass |
| Android emulator · web · Landscape · Light | 0.8 | 14.9 | 14.9 | Pass |
| Android emulator · web · Landscape · Dark | 0.2 | 15.6 | 15.6 | Pass |
| Android emulator · native · Portrait · Light | 0.3 | 14.9 | 14.9 | Pass |
| Android emulator · native · Portrait · Dark | 0.3 | 13.9 | 13.9 | Pass |
| Android emulator · native · Landscape · Light | 0.3 | 14.2 | 14.2 | Pass |
| Android emulator · native · Landscape · Dark | 0.2 | 14.7 | 14.7 | Pass |
Commit provenance
The product commit each section’s evidence was captured at, with its capture date and its age at this report’s date (ADR-0175).
| Target | Drawing | Undo | Actions |
|---|---|---|---|
| iPad physical · web · Portrait · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 8e6700d5d801…2026-09-25 · 1 day |
| iPad physical · web · Portrait · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 8e6700d5d801…2026-09-25 · 1 day |
| iPad physical · web · Landscape · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 8e6700d5d801…2026-09-25 · 1 day |
| iPad physical · web · Landscape · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 8e6700d5d801…2026-09-25 · 1 day |
| iPad physical · native · Portrait · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days |
| iPad physical · native · Portrait · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days |
| iPad physical · native · Landscape · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | d50d73927f18…2026-09-25 · 1 day |
| iPad physical · native · Landscape · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | d50d73927f18…2026-09-25 · 1 day |
| Android physical · web · Portrait · Light | 1e3016ec4074…2026-09-25 · 1 day | 1e3016ec4074…2026-09-25 · 1 day | 9993b68445ca…2026-09-26 · 0 days |
| Android physical · web · Portrait · Dark | 1e3016ec4074…2026-09-25 · 1 day | 1e3016ec4074…2026-09-25 · 1 day | 9993b68445ca…2026-09-26 · 0 days |
| Android physical · web · Landscape · Light | 8a6ef42bc7a2…2026-09-26 · 0 days | 8a6ef42bc7a2…2026-09-26 · 0 days | 9993b68445ca…2026-09-26 · 0 days |
| Android physical · web · Landscape · Dark | 8a6ef42bc7a2…2026-09-26 · 0 days | 8a6ef42bc7a2…2026-09-26 · 0 days | 9993b68445ca…2026-09-26 · 0 days |
| Android physical · native · Portrait · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | b453e90c525b…2026-09-26 · 0 days |
| Android physical · native · Portrait · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | b453e90c525b…2026-09-26 · 0 days |
| Android physical · native · Landscape · Light | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | b453e90c525b…2026-09-26 · 0 days |
| Android physical · native · Landscape · Dark | 3928cd88edbf…2026-09-23 · 3 days | 3928cd88edbf…2026-09-23 · 3 days | b453e90c525b…2026-09-26 · 0 days |
| Mac · Chrome · Portrait · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Chrome · Portrait · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Chrome · Landscape · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Chrome · Landscape · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Safari · Portrait · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Safari · Portrait · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Safari · Landscape · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Safari · Landscape · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Firefox · Portrait · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Firefox · Portrait · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Firefox · Landscape · Light | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| Mac · Firefox · Landscape · Dark | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days | d17100cb8e9c…2026-09-03 · 23 days |
| iPad simulator · web · Portrait · Light | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days |
| iPad simulator · web · Portrait · Dark | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days |
| iPad simulator · web · Landscape · Light | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days |
| iPad simulator · web · Landscape · Dark | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days | c80fc3b240a3…2026-09-01 · 25 days |
| iPad simulator · native · Portrait · Light | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days |
| iPad simulator · native · Portrait · Dark | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days |
| iPad simulator · native · Landscape · Light | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days |
| iPad simulator · native · Landscape · Dark | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · web · Portrait · Light | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · web · Portrait · Dark | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · web · Landscape · Light | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · web · Landscape · Dark | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · native · Portrait · Light | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · native · Portrait · Dark | 13643a1f2cc5…2026-08-28 · 29 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · native · Landscape · Light | d17100cb8e9c…2026-09-03 · 23 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |
| Android emulator · native · Landscape · Dark | d17100cb8e9c…2026-09-03 · 23 days | 6961e50b685d…2026-08-21 · 36 days | 13643a1f2cc5…2026-08-28 · 29 days |