[object Object]

← back to CelebritySignatures

auto-data-snapshot: 2026-08-08T09:04:57 (14 data files) — screenrecord/DEBUG-REPORT-murals.md screenrecord/debug-log-murals.jsonl screenrecord/debug-log.jsonl screenrecord/rec-murals/run0/page@f5767eef11026eca613976f1e51c40d4.webm screenrecord/rec-murals/run1/page@28e5339b4fca63b10de68d86e54f6561.webm

6b43f506e98f268dd32f7d8204659fc37edb16f7 · 2026-08-08 09:06:11 -0700 · auto-commit-fleet

Files touched

Diff

commit 6b43f506e98f268dd32f7d8204659fc37edb16f7
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date:   Sat Aug 8 09:06:11 2026 -0700

    auto-data-snapshot: 2026-08-08T09:04:57 (14 data files) — screenrecord/DEBUG-REPORT-murals.md screenrecord/debug-log-murals.jsonl screenrecord/debug-log.jsonl screenrecord/rec-murals/run0/page@f5767eef11026eca613976f1e51c40d4.webm screenrecord/rec-murals/run1/page@28e5339b4fca63b10de68d86e54f6561.webm
---
 screenrecord/DEBUG-REPORT-murals.md                |  75 ++++++++++++++++
 screenrecord/debug-log-murals.jsonl                | 100 +++++++++++++++++++++
 screenrecord/debug-log.jsonl                       |  20 +++++
 .../page@f5767eef11026eca613976f1e51c40d4.webm     | Bin 0 -> 385970 bytes
 .../page@28e5339b4fca63b10de68d86e54f6561.webm     | Bin 0 -> 476636 bytes
 .../page@b2d5bd379b9da4c626270bf6bb05dac3.webm     | Bin 0 -> 441495 bytes
 .../page@47869e2ce41271f09fd13dcf20293cb0.webm     | Bin 0 -> 533211 bytes
 .../page@7bc7359118a2478262dbfa13caf06804.webm     | Bin 0 -> 365953 bytes
 .../page@18cc0bfa6319b00b95683470f76d7e1c.webm     | Bin 0 -> 5436835 bytes
 .../page@4a7ce857bca83b517734da3cf22964d9.webm     | Bin 0 -> 4704025 bytes
 .../page@2c794c461b3fbbe49ec39c825c35cc9d.webm     | Bin 0 -> 4825882 bytes
 .../page@1642a63e4146ff4e0795b1c9e6dfeb96.webm     | Bin 0 -> 4787458 bytes
 .../page@c1c05c8d559cf45ecf4556c300bd232a.webm     | Bin 0 -> 4816233 bytes
 screenrecord/verify2-out.txt                       |   4 +
 14 files changed, 199 insertions(+)

diff --git a/screenrecord/DEBUG-REPORT-murals.md b/screenrecord/DEBUG-REPORT-murals.md
new file mode 100644
index 0000000..1dc3482
--- /dev/null
+++ b/screenrecord/DEBUG-REPORT-murals.md
@@ -0,0 +1,75 @@
+# CelebritySignatures /murals — 5-Pass Screen-Record Debug Report
+Ticket: **TK-10193**
+Date: 2026-08-08
+Target: `public/murals.html` — the "design-your-own celebrity-signature mural wall" storefront
+Run env: app booted locally on **:9933 in Stripe TEST mode** (no `STRIPE_LIVE`, no real charge). `:9920`
+(the ticket's original port) has since been reassigned to `idea-loop`; there is no live web process for
+CelebritySignatures anymore (it is now the submitted iOS app, `apps/mobile`). Title "murals storefront :9920"
+was a batch-creation mislabel — `/murals` is the real, distinct surface (siblings: /upload=TK-10194 DONE,
+front=TK-10191, /game=TK-10192).
+
+Artifacts:
+- `screenrecord/rec-murals/run{0..4}/*.webm` — 5 screen recordings (one per unique click-order combination)
+- `screenrecord/debug-log-murals.jsonl` — 100 append-only action rows across the 5 passes
+- `screenrecord/murals-debug.mjs` — the 5-pass harness · `verify2-murals.mjs` — phase-isolated confirmation
+
+---
+
+## HIGHEST-LEVERAGE FIX (top item)
+
+### BUG 1 — "Request a quote instead" wipes name+email, so a following "Pay & order" is blocked
+**Severity: Medium (UX friction on a real purchase path)** — order-dependent / state-leak.
+
+The order form has two buttons: **`#payBtn` "Pay & order →"** (Stripe checkout) and
+**`<button type="submit">Request a quote instead</button>"`**. On a successful quote submit the handler calls
+**`f.reset()`** (`murals.html:664`), which clears every field including name + email. `#payBtn` then hard-guards
+on those fields (`murals.html:670-671`): if empty it returns early with *"Enter your name and a valid email
+first."* and never calls `/api/mural-checkout`.
+
+Reproduced (fresh page, phase-isolated):
+1. Fill name + email → click **"Request a quote instead"** → `POST /api/mural-order` 200, "request #1024 received"; **fields now `name:"" email:""`**.
+2. Click **"Pay & order →"** → **no `/api/mural-checkout` call**, message *"Enter your name and a valid email first."*
+
+Real-user impact: someone who requests a quote and then decides to buy is bounced and must retype name+email.
+Both buttons live in the same form, so this path is reachable in normal use.
+
+**Recommended fix (pick one, ~2–5 lines in `murals.html`):**
+- Don't `f.reset()` the whole form on quote success — instead clear only `notes` and keep name/email/dims; or
+- Preserve name+email across the reset (`const {value:n}=f.name,{value:e}=f.email; f.reset(); f.name.value=n; f.email.value=e;`); or
+- Have `#payBtn` fall back to a light modal/prompt for name+email instead of a dead-end error when they're blank.
+
+---
+
+## Verified WORKING (no defects found across all 5 passes)
+
+- **Catalog + selector** — `/api/murals-catalog` loads; `#selMural` populated with **33 options**.
+- **Gallery** — renders `[data-place]` "Place on wall" buttons + `[data-roster]` drawers; "Place on wall" sets the active mural and scrolls to the studio.
+- **Wall/mural sliders** — `#wallW/#wallH/#wallWnum/#wallHnum` and `#murW/#murH` all drive `drawScene()`; slider↔number sync works; values clamp on commit.
+- **Scene presets** — `#scenePresets` buttons toggle the active class and redraw.
+- **Center-on-wall** — `#btnCenter` re-centers the mural.
+- **Provenance modal** — opens; closes on **Escape**, on **✕ (`#provX`)**, and on backdrop click.
+- **Signature finder** — `#finderInput` requires ≥2 chars (by design); a real 2+ char query filters `SIGS` and renders hits / a "not in the archive yet — request a custom mural" miss state.
+- **Order form ("Request a quote instead")** — `POST /api/mural-order` → 200, returns a request # (verified #1015, #1024).
+- **Pay & order (fields intact)** — `#payBtn` → `POST /api/mural-checkout` → **HTTP 200** in test mode (real Stripe checkout session created; navigation to Stripe was intentionally blocked by the harness nav-guard, never paid).
+- **JS health** — **zero `console.error` and zero `pageerror`** across all 5 passes / all click orders.
+
+---
+
+## NOTES / non-bugs
+
+- **AdSense + reCAPTCHA third-party frames** load on the page; the harness nav-guard aborted their off-host
+  iframe navigations (`googleads.g.doubleclick.net`, `ep2.adtrafficquality.google`, `recaptcha/api2`). Not a
+  defect — expected for a page with an AdSense unit; flagged only so a future reviewer knows those aborts in the
+  log are the guard, not a page error.
+- **Harness selector gap (honest disclosure):** the first 5-pass harness used `.gallery .place` / `.gallery .r-item`,
+  which don't match the real classes (`[data-place]` buttons; `.r-item` only exists after a roster drawer is
+  opened). Those two steps logged "none present." A separate phase-isolated check confirmed the gallery IS
+  populated and interactive — so this was a harness selector miss, **not** an empty-gallery bug. The recordings
+  still captured the gallery rendering.
+
+---
+
+## Per-run recordings
+`screenrecord/rec-murals/run0..run4/` — run0 logical order · run1 reverse · run2 sliders-first · run3 seeded
+shuffle · run4 prior-error-first. BUG 1 manifested in every run where the quote-submit step preceded the pay
+step (the harness always fills-then-submits before paying), consistent with the source-level cause.
diff --git a/screenrecord/debug-log-murals.jsonl b/screenrecord/debug-log-murals.jsonl
new file mode 100644
index 0000000..ca146f1
--- /dev/null
+++ b/screenrecord/debug-log-murals.jsonl
@@ -0,0 +1,100 @@
+{"run":0,"ts":"2026-08-08T15:47:24.865Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/html/r20260806/r20190131/zrt_lookup.html","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:24.874Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5278231299883833&output=html&adk=1812271804&adf=3025194257&","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:25.086Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://ep2.adtrafficquality.google/sodar/sodar2/255/runner.html","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:25.087Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://www.google.com/recaptcha/api2/aframe","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:26.255Z","selector":"#finderInput","label":"signature-finder-type","action":"type","ok":true,"effect":"finderRes children=0","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:26.761Z","selector":"#selMural","label":"select-mural-dropdown","action":"selectFirst","ok":true,"effect":"options=33","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:27.898Z","selector":"#scenePresets button","label":"scene-preset","action":"clickEach","ok":true,"effect":"clicked=4","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:28.541Z","selector":"#wallW","label":"wall-width-slider","action":"range","ok":true,"effect":"32->62","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:29.188Z","selector":"#wallH","label":"wall-height-slider","action":"range","ok":true,"effect":"14->25","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:29.501Z","selector":"#wallWnum","label":"wall-width-num","action":"fillNum","ok":true,"effect":"val=80","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:29.819Z","selector":"#wallHnum","label":"wall-height-num","action":"fillNum","ok":true,"effect":"val=30","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:30.470Z","selector":"#murW","label":"mural-width-slider","action":"range","ok":true,"effect":"24->31","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:31.142Z","selector":"#murH","label":"mural-height-slider","action":"range","ok":true,"effect":"12->13","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:31.469Z","selector":"#btnCenter","label":"center-mural-btn","action":"click","ok":true,"effect":null,"errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:31.471Z","selector":".gallery .place","label":"gallery-place-mural","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:31.472Z","selector":".gallery .r-item","label":"gallery-signature-item","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:32.148Z","selector":"#provModal","label":"provenance-modal-open+escape","action":"provModal","ok":true,"effect":"open=true escClose=true xClose=true","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:32.909Z","selector":"#orderForm","label":"order-form-fill+submit","action":"orderForm","ok":true,"effect":"orderMsg=\"Thank you — request #1015 received. We’ll email you a proof and quote.\"","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:34.446Z","selector":"#payBtn","label":"pay-and-order-checkout","action":"pay","ok":true,"effect":"checkout=null onPage=true msg=\"12 × 24 ftheight × width\n    150 DPI21,600 × 43,200 px maste\"","errors":[]}
+{"run":0,"ts":"2026-08-08T15:47:34.446Z","selector":"RUN-END","label":"run-complete","action":"summary","ok":true,"effect":"durationMs=10085","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:35.010Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/html/r20260806/r20190131/zrt_lookup.html","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:35.017Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5278231299883833&output=html&adk=1812271804&adf=3025194257&","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:35.193Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://ep2.adtrafficquality.google/sodar/sodar2/255/runner.html","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:35.193Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://www.google.com/recaptcha/api2/aframe","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:37.513Z","selector":"#payBtn","label":"pay-and-order-checkout","action":"pay","ok":true,"effect":"checkout=null onPage=true msg=\"12 × 24 ftheight × width\n    150 DPI21,600 × 43,200 px maste\"","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:38.273Z","selector":"#orderForm","label":"order-form-fill+submit","action":"orderForm","ok":true,"effect":"orderMsg=\"Thank you — request #1016 received. We’ll email you a proof and quote.\"","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:38.951Z","selector":"#provModal","label":"provenance-modal-open+escape","action":"provModal","ok":true,"effect":"open=true escClose=true xClose=true","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:38.952Z","selector":".gallery .r-item","label":"gallery-signature-item","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:38.952Z","selector":".gallery .place","label":"gallery-place-mural","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:39.280Z","selector":"#btnCenter","label":"center-mural-btn","action":"click","ok":true,"effect":null,"errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:39.934Z","selector":"#murH","label":"mural-height-slider","action":"range","ok":true,"effect":"12->7","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:40.564Z","selector":"#murW","label":"mural-width-slider","action":"range","ok":true,"effect":"24->15","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:40.872Z","selector":"#wallHnum","label":"wall-height-num","action":"fillNum","ok":true,"effect":"val=30","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:41.183Z","selector":"#wallWnum","label":"wall-width-num","action":"fillNum","ok":true,"effect":"val=80","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:41.832Z","selector":"#wallH","label":"wall-height-slider","action":"range","ok":true,"effect":"30->15","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:42.470Z","selector":"#wallW","label":"wall-width-slider","action":"range","ok":true,"effect":"80->30","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:43.526Z","selector":"#scenePresets button","label":"scene-preset","action":"clickEach","ok":true,"effect":"clicked=4","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:44.033Z","selector":"#selMural","label":"select-mural-dropdown","action":"selectFirst","ok":true,"effect":"options=33","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:44.451Z","selector":"#finderInput","label":"signature-finder-type","action":"type","ok":true,"effect":"finderRes children=0","errors":[]}
+{"run":1,"ts":"2026-08-08T15:47:44.451Z","selector":"RUN-END","label":"run-complete","action":"summary","ok":true,"effect":"durationMs=9815","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:45.040Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/html/r20260806/r20190131/zrt_lookup.html","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:45.048Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5278231299883833&output=html&adk=1812271804&adf=3025194257&","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:45.242Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://ep2.adtrafficquality.google/sodar/sodar2/255/runner.html","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:45.243Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://www.google.com/recaptcha/api2/aframe","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:46.696Z","selector":"#wallW","label":"wall-width-slider","action":"range","ok":true,"effect":"32->62","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:47.335Z","selector":"#wallH","label":"wall-height-slider","action":"range","ok":true,"effect":"14->25","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:47.970Z","selector":"#murW","label":"mural-width-slider","action":"range","ok":true,"effect":"24->31","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:48.608Z","selector":"#murH","label":"mural-height-slider","action":"range","ok":true,"effect":"12->13","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:49.039Z","selector":"#finderInput","label":"signature-finder-type","action":"type","ok":true,"effect":"finderRes children=0","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:49.545Z","selector":"#selMural","label":"select-mural-dropdown","action":"selectFirst","ok":true,"effect":"options=33","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:50.637Z","selector":"#scenePresets button","label":"scene-preset","action":"clickEach","ok":true,"effect":"clicked=4","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:50.947Z","selector":"#wallWnum","label":"wall-width-num","action":"fillNum","ok":true,"effect":"val=80","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:51.266Z","selector":"#wallHnum","label":"wall-height-num","action":"fillNum","ok":true,"effect":"val=30","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:51.592Z","selector":"#btnCenter","label":"center-mural-btn","action":"click","ok":true,"effect":null,"errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:51.593Z","selector":".gallery .place","label":"gallery-place-mural","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:51.594Z","selector":".gallery .r-item","label":"gallery-signature-item","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:52.267Z","selector":"#provModal","label":"provenance-modal-open+escape","action":"provModal","ok":true,"effect":"open=true escClose=true xClose=true","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:53.021Z","selector":"#orderForm","label":"order-form-fill+submit","action":"orderForm","ok":true,"effect":"orderMsg=\"Thank you — request #1017 received. We’ll email you a proof and quote.\"","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:54.564Z","selector":"#payBtn","label":"pay-and-order-checkout","action":"pay","ok":true,"effect":"checkout=null onPage=true msg=\"12 × 24 ftheight × width\n    150 DPI21,600 × 43,200 px maste\"","errors":[]}
+{"run":2,"ts":"2026-08-08T15:47:54.564Z","selector":"RUN-END","label":"run-complete","action":"summary","ok":true,"effect":"durationMs=9890","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:55.214Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/html/r20260806/r20190131/zrt_lookup.html","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:55.220Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5278231299883833&output=html&adk=1812271804&adf=3025194257&","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:55.401Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://ep2.adtrafficquality.google/sodar/sodar2/255/runner.html","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:55.401Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://www.google.com/recaptcha/api2/aframe","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:56.602Z","selector":"#selMural","label":"select-mural-dropdown","action":"selectFirst","ok":true,"effect":"options=33","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:57.258Z","selector":"#wallW","label":"wall-width-slider","action":"range","ok":true,"effect":"32->30","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:57.928Z","selector":"#provModal","label":"provenance-modal-open+escape","action":"provModal","ok":true,"effect":"open=true escClose=true xClose=true","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:58.597Z","selector":"#murW","label":"mural-width-slider","action":"range","ok":true,"effect":"24->15","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:58.598Z","selector":".gallery .r-item","label":"gallery-signature-item","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:58.923Z","selector":"#btnCenter","label":"center-mural-btn","action":"click","ok":true,"effect":null,"errors":[]}
+{"run":3,"ts":"2026-08-08T15:47:59.687Z","selector":"#orderForm","label":"order-form-fill+submit","action":"orderForm","ok":true,"effect":"orderMsg=\"Thank you — request #1018 received. We’ll email you a proof and quote.\"","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:00.131Z","selector":"#finderInput","label":"signature-finder-type","action":"type","ok":true,"effect":"finderRes children=0","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:00.442Z","selector":"#wallWnum","label":"wall-width-num","action":"fillNum","ok":true,"effect":"val=80","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:01.960Z","selector":"#payBtn","label":"pay-and-order-checkout","action":"pay","ok":true,"effect":"checkout=null onPage=true msg=\"12 × 24 ftheight × width\n    150 DPI21,600 × 43,200 px maste\"","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:01.961Z","selector":".gallery .place","label":"gallery-place-mural","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:02.609Z","selector":"#murH","label":"mural-height-slider","action":"range","ok":true,"effect":"12->7","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:02.919Z","selector":"#wallHnum","label":"wall-height-num","action":"fillNum","ok":true,"effect":"val=30","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:03.567Z","selector":"#wallH","label":"wall-height-slider","action":"range","ok":true,"effect":"30->15","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:04.676Z","selector":"#scenePresets button","label":"scene-preset","action":"clickEach","ok":true,"effect":"clicked=4","errors":[]}
+{"run":3,"ts":"2026-08-08T15:48:04.676Z","selector":"RUN-END","label":"run-complete","action":"summary","ok":true,"effect":"durationMs=9916","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:05.348Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/html/r20260806/r20190131/zrt_lookup.html","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:05.355Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-5278231299883833&output=html&adk=1812271804&adf=3025194257&","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:05.548Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://ep2.adtrafficquality.google/sodar/sodar2/255/runner.html","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:05.549Z","selector":"NAV-GUARD","label":"blocked-offhost-nav","action":"abort","ok":true,"effect":"blocked https://www.google.com/recaptcha/api2/aframe","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:06.686Z","selector":"#finderInput","label":"signature-finder-type","action":"type","ok":true,"effect":"finderRes children=0","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:07.198Z","selector":"#selMural","label":"select-mural-dropdown","action":"selectFirst","ok":true,"effect":"options=33","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:08.306Z","selector":"#scenePresets button","label":"scene-preset","action":"clickEach","ok":true,"effect":"clicked=4","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:08.942Z","selector":"#wallW","label":"wall-width-slider","action":"range","ok":true,"effect":"32->62","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:09.579Z","selector":"#wallH","label":"wall-height-slider","action":"range","ok":true,"effect":"14->25","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:09.889Z","selector":"#wallWnum","label":"wall-width-num","action":"fillNum","ok":true,"effect":"val=80","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:10.224Z","selector":"#wallHnum","label":"wall-height-num","action":"fillNum","ok":true,"effect":"val=30","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:10.859Z","selector":"#murW","label":"mural-width-slider","action":"range","ok":true,"effect":"24->31","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:11.504Z","selector":"#murH","label":"mural-height-slider","action":"range","ok":true,"effect":"12->13","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:11.824Z","selector":"#btnCenter","label":"center-mural-btn","action":"click","ok":true,"effect":null,"errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:11.825Z","selector":".gallery .place","label":"gallery-place-mural","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:11.826Z","selector":".gallery .r-item","label":"gallery-signature-item","action":"clickFirst","ok":false,"effect":"none present","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:12.497Z","selector":"#provModal","label":"provenance-modal-open+escape","action":"provModal","ok":true,"effect":"open=true escClose=true xClose=true","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:13.269Z","selector":"#orderForm","label":"order-form-fill+submit","action":"orderForm","ok":true,"effect":"orderMsg=\"Thank you — request #1019 received. We’ll email you a proof and quote.\"","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:14.807Z","selector":"#payBtn","label":"pay-and-order-checkout","action":"pay","ok":true,"effect":"checkout=null onPage=true msg=\"12 × 24 ftheight × width\n    150 DPI21,600 × 43,200 px maste\"","errors":[]}
+{"run":4,"ts":"2026-08-08T15:48:14.807Z","selector":"RUN-END","label":"run-complete","action":"summary","ok":true,"effect":"durationMs=9924","errors":[]}
diff --git a/screenrecord/debug-log.jsonl b/screenrecord/debug-log.jsonl
index 0354d46..0d080a6 100644
--- a/screenrecord/debug-log.jsonl
+++ b/screenrecord/debug-log.jsonl
@@ -2757,3 +2757,23 @@
 {"run":4,"ts":1786204430762,"selector":"div.sig","label":"Open details for Edward Rutledge","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
 {"run":4,"ts":1786204431713,"selector":"div.sig","label":"Open details for George Read","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
 {"run":4,"ts":1786204432687,"selector":"div.sig","label":"Open details for Thomas McKean","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204433569,"selector":"div.sig","label":"Open details for Benjamin Harrison V","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204434500,"selector":"div.sig","label":"Open details for Samuel Huntington","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204435448,"selector":"div.sig","label":"Open details for Stephen Hopkins","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204436412,"selector":"div.sig","label":"Open details for Francis Hopkinson","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204437291,"selector":"div.sig","label":"Open details for Samuel Chase","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204438197,"selector":"div.sig","label":"Open details for George Clymer","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204439117,"selector":"div.sig","label":"Open details for William Ellery","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204439957,"selector":"div.sig","label":"Open details for Robert Treat Paine","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204440851,"selector":"div.sig","label":"Open details for George Wythe","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204441783,"selector":"div.sig","label":"Open details for Button Gwinnett","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204442668,"selector":"div.sig","label":"Open details for Caesar Rodney","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204443603,"selector":"div.sig","label":"Open details for George Walton","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204444503,"selector":"div.sig","label":"Open details for Carter Braxton","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204445337,"selector":"div.sig","label":"Open details for William Floyd","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204446174,"selector":"div.sig","label":"Open details for Francis Lewis","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204447052,"selector":"div.sig","label":"Open details for Oliver Wolcott","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204447985,"selector":"div.sig","label":"Open details for John Witherspoon","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204448882,"selector":"div.sig","label":"Open details for Thomas Nelson","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204449788,"selector":"div.sig","label":"Open details for William Paca","action":"click","ok":true,"effect":"text 191226->191567","errors":[]}
+{"run":4,"ts":1786204449862,"selector":"(cap)","label":"capped at 60 actions","action":"skip","ok":true,"errors":[]}
diff --git a/screenrecord/rec-murals/run0/page@f5767eef11026eca613976f1e51c40d4.webm b/screenrecord/rec-murals/run0/page@f5767eef11026eca613976f1e51c40d4.webm
new file mode 100644
index 0000000..464f840
Binary files /dev/null and b/screenrecord/rec-murals/run0/page@f5767eef11026eca613976f1e51c40d4.webm differ
diff --git a/screenrecord/rec-murals/run1/page@28e5339b4fca63b10de68d86e54f6561.webm b/screenrecord/rec-murals/run1/page@28e5339b4fca63b10de68d86e54f6561.webm
new file mode 100644
index 0000000..5a1fee8
Binary files /dev/null and b/screenrecord/rec-murals/run1/page@28e5339b4fca63b10de68d86e54f6561.webm differ
diff --git a/screenrecord/rec-murals/run2/page@b2d5bd379b9da4c626270bf6bb05dac3.webm b/screenrecord/rec-murals/run2/page@b2d5bd379b9da4c626270bf6bb05dac3.webm
new file mode 100644
index 0000000..ac5fcdd
Binary files /dev/null and b/screenrecord/rec-murals/run2/page@b2d5bd379b9da4c626270bf6bb05dac3.webm differ
diff --git a/screenrecord/rec-murals/run3/page@47869e2ce41271f09fd13dcf20293cb0.webm b/screenrecord/rec-murals/run3/page@47869e2ce41271f09fd13dcf20293cb0.webm
new file mode 100644
index 0000000..a0aed78
Binary files /dev/null and b/screenrecord/rec-murals/run3/page@47869e2ce41271f09fd13dcf20293cb0.webm differ
diff --git a/screenrecord/rec-murals/run4/page@7bc7359118a2478262dbfa13caf06804.webm b/screenrecord/rec-murals/run4/page@7bc7359118a2478262dbfa13caf06804.webm
new file mode 100644
index 0000000..9d8ea73
Binary files /dev/null and b/screenrecord/rec-murals/run4/page@7bc7359118a2478262dbfa13caf06804.webm differ
diff --git a/screenrecord/rec/run0/page@18cc0bfa6319b00b95683470f76d7e1c.webm b/screenrecord/rec/run0/page@18cc0bfa6319b00b95683470f76d7e1c.webm
new file mode 100644
index 0000000..4ad40f4
Binary files /dev/null and b/screenrecord/rec/run0/page@18cc0bfa6319b00b95683470f76d7e1c.webm differ
diff --git a/screenrecord/rec/run1/page@4a7ce857bca83b517734da3cf22964d9.webm b/screenrecord/rec/run1/page@4a7ce857bca83b517734da3cf22964d9.webm
new file mode 100644
index 0000000..e0d2cd6
Binary files /dev/null and b/screenrecord/rec/run1/page@4a7ce857bca83b517734da3cf22964d9.webm differ
diff --git a/screenrecord/rec/run2/page@2c794c461b3fbbe49ec39c825c35cc9d.webm b/screenrecord/rec/run2/page@2c794c461b3fbbe49ec39c825c35cc9d.webm
new file mode 100644
index 0000000..6495896
Binary files /dev/null and b/screenrecord/rec/run2/page@2c794c461b3fbbe49ec39c825c35cc9d.webm differ
diff --git a/screenrecord/rec/run3/page@1642a63e4146ff4e0795b1c9e6dfeb96.webm b/screenrecord/rec/run3/page@1642a63e4146ff4e0795b1c9e6dfeb96.webm
new file mode 100644
index 0000000..cc26f13
Binary files /dev/null and b/screenrecord/rec/run3/page@1642a63e4146ff4e0795b1c9e6dfeb96.webm differ
diff --git a/screenrecord/rec/run4/page@c1c05c8d559cf45ecf4556c300bd232a.webm b/screenrecord/rec/run4/page@c1c05c8d559cf45ecf4556c300bd232a.webm
new file mode 100644
index 0000000..3f78173
Binary files /dev/null and b/screenrecord/rec/run4/page@c1c05c8d559cf45ecf4556c300bd232a.webm differ
diff --git a/screenrecord/verify2-out.txt b/screenrecord/verify2-out.txt
new file mode 100644
index 0000000..074c92a
--- /dev/null
+++ b/screenrecord/verify2-out.txt
@@ -0,0 +1,4 @@
+(B) PAY with fields intact -> checkoutCalls=[{"status":200,"body":""}] | orderMsgBeforeNavGuard=""
+(C) after "Request a quote instead": fields={"name":"","email":"","msg":"Thank you — request #1024 received. We’ll email you a proof and quote."}
+(C) then PAY -> checkoutCalls=[] | orderMsg="Enter your name and a valid email first."
+DONE

← 05236a4 TK-10191: screenrecord front-page UI debug (5-pass) — report  ·  back to CelebritySignatures  ·  auto-data-snapshot: 2026-08-08T09:36:16 (1 data files) — scr ea8763a →