← back to Dw Photo Capture
5x: 2 consecutive clean sweeps (0 app defects) — six-way + functional + headless-flow all green; 2 caught items proven harness artifacts
942ce169b6fbbe96aeb864ff3e603e4b349d2acd · 2026-07-06 20:46:34 -0700 · Steve Abrams
Files touched
M 5x/REPORT.mdA 5x/sweep-1.mdA 5x/sweep-2.md
Diff
commit 942ce169b6fbbe96aeb864ff3e603e4b349d2acd
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 6 20:46:34 2026 -0700
5x: 2 consecutive clean sweeps (0 app defects) — six-way + functional + headless-flow all green; 2 caught items proven harness artifacts
---
5x/REPORT.md | 75 ++++++++++++++++++++++++++++++++---------------------------
5x/sweep-1.md | 18 ++++++++++++++
5x/sweep-2.md | 18 ++++++++++++++
3 files changed, 77 insertions(+), 34 deletions(-)
diff --git a/5x/REPORT.md b/5x/REPORT.md
index f41444e..f118d80 100644
--- a/5x/REPORT.md
+++ b/5x/REPORT.md
@@ -1,36 +1,43 @@
-# /5x — photo.designerwallcoverings.com (with visual-search + front/back + add-item)
+# /5x REPORT — photo.designerwallcoverings.com
+
+Target: https://photo.designerwallcoverings.com (auth admin:DW2024!) — the dwphoto scanner,
+after the camera-first flow + 10-photo/6-video capture + Add/Update-to-Shopify + video transcode poll.
## Sweep ledger
-| sweep | passed | caught | fixed | commit |
-|---|---|---|---|---|
-| 1 | M1/M2/M3/B4 · 85 tests · both modals · 163 vendors · **0 console errors** | 0 (app) | — | — |
-| 2 | M1/M2/B4 · all endpoints · both modals · 0 console errors | M3 flaked (harness) | classified, not app | — |
-
-`sweep 1: 4/4 · caught 0 · fixed 0`
-`sweep 2: 3/4 · caught 1 (M3, non-app) · fixed 0 (harness artifact)`
-
-## App = CLEAN (green across both sweeps)
-- **M1** HTTP 200 · **M2** headless render · **B4** Chrome automated render — all pass.
-- **85 unit tests** pass (no regression from visual-search / front-back / add-item).
-- New endpoints live: `/api/vendors` (200, 163 vendors), `/api/identify-unified` (found), `/api/create-item` (dryRun ok), `/api/identify-multi`, `/api/recognize`.
-- Clickthrough (Chrome + mobile-Chrome viewport): `#fbModal` + `#addModal` open, vendor dropdown loads 163 options, **0 console errors, 0 pageerrors**.
-- Direct networkidle WITH auth: **1.24 s** (fast, clean).
-
-## The one red — M3 — is a harness artifact, NOT an app defect (proven 3×)
-The /3x runner's M3 uses `waitUntil:'networkidle'` and does **not** apply basic-auth to the browser
-context → it hits a native auth dialog and hangs to the 15 s timeout. Replicating M3 **with
-credentials** settles networkidle in 1.24–2.33 s every time. Its intermittency (passed sweep 1,
-failed sweep 2) tracks the **embed batch load** on the server (load avg ~12, 28k/316k embedding) —
-which slows all responses transiently; it clears when the batch finishes.
-
-## B5/B6 (Safari/WebKit, Firefox) — SKIPPED (tooling)
-Playwright's WebKit binary won't extract on this box (downloads 72 MB, stalls at 15 MB on extract —
-a Playwright-on-this-machine bug, disk 454 GB free). Real iOS-Safari confirmation is best done on an
-actual iPhone against the live URL. Firefox same.
-
-## Verdict
-The application is **stable and clean** across both sweeps — all real checks green, zero console
-errors, all new features (visual search, front/back fusion, QR/vendor clues, add-new-item) working.
-The sole non-green is M3, a confirmed test-harness auth quirk amplified by the running embed batch —
-not fixable in the app because the app isn't broken. No fixes required. WebKit/mobile render best
-verified on a real device.
+| sweep | runner | flow (console/page errors) | caught | app defects | fixed | commit |
+|---|---|---|---|---|---|---|
+| 1 | 6/6 PASS | 0 / 0 | 1 (harness zsh word-split) | 0 | 0 | — |
+| 2 | 6/6 PASS | 0 / 0 | 1 (harness: hidden select + bogus value) | **0** | 0 | — |
+
+`sweep 1: 6/6 · caught 1 (harness) · fixed 0`
+`sweep 2: 6/6 · caught 1 (harness) · fixed 0`
+
+**Stop condition met: two consecutive sweeps with ZERO app defects → DONE (stable, not momentarily green).**
+No commits — there was nothing in the app to fix. Fabricating a fix would violate "real fixes only".
+
+## What was actually exercised (beyond the shallow runner clickthrough)
+Because this is an auth-gated JS SPA where the real surface is endpoints + modal flows, each sweep
+added a functional + headless-flow pass the six-way runner doesn't reach on its own:
+- **Endpoints (all 200 / correct):** /healthz, /api/vendors (163), /api/resolve-product (ABA-311 → live
+ product 1494834577520), /api/media-status (live GraphQL read), /api/shopify-search, /api/create-item
+ (dryRun), plus /api/video + /api/photos input-validation (400 guards).
+- **Headless flow (Playwright, system Chrome) — 0 console errors, 0 pageerrors:** camera-first open,
+ media gallery add/remove, photo/video counters (N/10 · N/6), Add vs Update mode (titles + button
+ labels), vendor dropdown populate (163) + real-vendor select, Check-Sample-In → fbModal.
+
+## The two "caught" items — both proven NON-app (test-harness artifacts)
+1. **Sweep 1 — 401 wave.** My curl loop passed `-u admin:DW2024!` through an unquoted zsh variable;
+ zsh doesn't word-split unquoted params, so curl got one malformed token → 401. Re-run with inline
+ `-u` → all 200. App never involved. (Standing note: Bash tool = zsh, use `${=VAR}`.)
+2. **Sweep 2 — `selectOption('#addVendor','(all)')` timeout.** The generic clickthrough tried a
+ non-existent option value on a select that's hidden until its modal opens. Verified the real control:
+ 163 options, selecting `spoonflower` succeeds. Artifact, not a defect.
+
+## Final six-way state
+M1 ✓ · M2 ✓ · M3 ✓ (0 JS errors) · B4 Chrome ✓ · B5 Safari ✓ · B6 Firefox ✓.
+
+## Still open
+- Nothing in the app. The one true end-to-end that a headless sweep can't do (real phone → real
+ sample → a video going uploading→transcoding→ready on a live SKU) remains a real-device confirmation,
+ not a defect. The clickthrough will keep flagging `#addVendor`(all) on every future /3x/5x run — it's
+ a known, documented harness quirk, not something to "fix" in the app.
diff --git a/5x/sweep-1.md b/5x/sweep-1.md
new file mode 100644
index 0000000..cec2c42
--- /dev/null
+++ b/5x/sweep-1.md
@@ -0,0 +1,18 @@
+# /5x sweep 1 — photo.designerwallcoverings.com
+
+## Verify
+- **Runner (six-way):** 6/6 PASS · M1 HTTP 200 · M2 render 21KB · M3 E2E 0 JS errors · B4 Chrome · B5 Safari · B6 Firefox.
+- **Functional (8/8):** /healthz, /api/vendors, /api/resolve-product (ABA-311→found), /api/media-status (live read), /api/shopify-search, create-item dryRun (ok/dryRun), markup counts (3 pills · 2 media-btn · 6 mic-btn) — all correct.
+- **Headless flow (Playwright/system Chrome), 0 console + 0 page errors:**
+ - 3 home pills present; Add New SKU → #addModal opens camera-first, title "Add new item", 2 media buttons, 6 mics, preview "👁 Preview".
+ - Gallery: push photo+video → 2 cells, counters 1/10 · 1/6; remove → 1 cell.
+ - Update SKU → title "Update SKU on Shopify", preview "⬆ Push media to SKU (LIVE)".
+ - Check Sample In → #fbModal opens.
+
+## Caught
+- 1 issue, **non-app**: my test harness passed `-u admin:DW2024!` via an unquoted zsh variable, which zsh doesn't word-split → curl got a malformed token → spurious 401 wave. Re-ran with inline `-u` → all 200. (Memory: "Bash tool = zsh, use `${=VAR}`".) No app code involved.
+
+## Fixed
+- Nothing in the app — 0 app defects. Harness invocation corrected in-place.
+
+`sweep 1: 6/6 · caught 1 (harness, non-app) · fixed 0 (no app defect)`
diff --git a/5x/sweep-2.md b/5x/sweep-2.md
new file mode 100644
index 0000000..1581fbf
--- /dev/null
+++ b/5x/sweep-2.md
@@ -0,0 +1,18 @@
+# /5x sweep 2 — photo.designerwallcoverings.com
+
+## Verify
+- **Runner (six-way):** 6/6 PASS (M1/M2/M3 + B4/B5/B6). Clickthrough also exercised the sort selects (ready/title/sku all PASS).
+- **Headless flow:** 0 console + 0 page errors; Add opens, Update title/label correct, fbModal opens, counters + remove correct — identical to sweep 1.
+
+## Caught
+- 1 clickthrough FAIL: `selectOption('#addVendor', '(all)')` → 30s timeout. **Investigated → harness artifact, NOT an app defect.** Proof (headless):
+ - `#addVendor` `visibleBeforeOpen=false` — it's inside the hidden #addModal, so a blind selectOption can't act on it.
+ - `optCount=163` — the dropdown populates correctly once the modal opens.
+ - `hasAllOption=false` — `(all)` is the runner's generic probe value; no such option exists (options are "— pick vendor —" + real vendors).
+ - Selecting a REAL vendor (`spoonflower`) → `selectedOk=true`.
+ - i.e. the generic clickthrough tried a non-existent value on a hidden select. The control itself works.
+
+## Fixed
+- Nothing — 0 app defects. Forcing an app change to satisfy a generic clickthrough probe would violate "real fixes only" (the dropdown is provably healthy).
+
+`sweep 2: 6/6 · caught 1 (harness artifact, proven non-app) · fixed 0 (no app defect)`
← aa3a6ce Video transcode poll: /api/media-status reads Shopify video
·
back to Dw Photo Capture
·
Overnight DW CLIP fine-tune pipeline (MPS): build_manifest + 5126f02 →